392
3
부
스파크 스트리밍
파티션당 최대 속도×토픽당 파티션×배치 간격
(
maxRatePerPartition × partitionsPerTopic × batchinterval
)
이 동작에는 그 자체로 신호가 포함되지 않는다는 점에 주목하자. 스파크는 제한된 양의 요소를
허용하고 다음 배치 간격에서 새 요소를 읽는다. 이는 스파크에 데이터를 공급하는 시스템에 영
향을 미친다.
●
카프카, 플룸 등의 풀 기반 시스템인 경우 입력 시스템은 오버플로 데이터를 읽고 관리하는 요소 수를 사용자
지정 방식으로 계산할 수 있다.
●
입력 시스템이 보다 실질적으로 버퍼(파일 버퍼,
TCP
버퍼)인 경우 스트림이 스로틀보다 처리량이 많기 때
문에 몇 번의 블록 간격 후 오버플로가 발생하며 이 경우 주기적으로 플러시 (삭제 )된다.
결과적으로 스파크에서 ‘늦게
late
’ 요소의 큐로 사용되는 기본
TCP
또는 파일 버퍼가 용량에 도
달하고 전체적으로 플러시될 때까지 스파크는 모든 요소를 읽으므로 스파크에서 조절된 수집
으로 요소 읽기에서 ‘지터
jitter
’가 발생할 수 있다. 이것의 효과는 입력 스트림이 일정한 크기
(예를 들면 하나의
TCP
버퍼 )의 홀즈
holes
(드롭된 요소 )와 산재된 처리 요소의 큰 간격으로
분리되는 것이다.
26.6
백프레셔
고정 속도 스로틀링으로 설명한 큐 기반 시스템은 전체 파이프라인이 비효율성이 있는 곳을 이
해하지 못하게 한다는 단점을 가지고 있다. 실제로 스파크가 애플리케이션 레벨 버퍼 (스파크 스
트리밍의
RDD
)에서 ...