더북(TheBook)

스트리밍 상태를 저장하려면 체크포인팅 기능을 반드시 사용해야 한다. 이를 사용하지 않으면 RDD 계보가 너무 길어져서 결국 스택 오버플로 오류가 발생한다.

윈도 연산은 미니배치의 슬라이딩 윈도를 기반으로 수행한다. 슬라이딩 윈도는 윈도의 길이와 이동 거리로 정의한다. 이 슬라이딩 윈도를 이용해 일정 시간 범위로 한정된 상태를 유지하고, 윈도 내로 유입된 데이터만 대상으로 연산을 수행할 수 있다.

외부 데이터 소스를 사용하기 전에 해당 데이터 소스의 메이븐 패키지를 스파크의 클래스패스에 추가해야 한다.

스파크는 리시버 기반 카프카 커넥터와 카프카 다이렉트 커넥터를 지원한다. 다이렉트 커넥터는 입력 메시지를 정확히 한 번만 처리할 수 있다.

카프카에 메시지를 전송하는 가장 좋은 방법은 JVM 하나에 오직 Producer 객체 한 개만 초기화하도록 싱글톤 객체를 생성하는 것이다. 이 방법으로 각 실행자는 단일 커넥션 객체를 스트리밍 애플리케이션을 실행하는 동안 계속 재사용할 수 있다.

스파크 웹 UI의 Streaming 페이지는 여러 유용한 그래프를 제공해 최적의 미니배치 주기를 결정하는 데 도움을 줄 수 있다.

스트리밍 애플리케이션의 스케줄링 지연 시간을 줄이려면 처리 시간을 단축하거나, 병렬화를 확대하거나, 더 많은 리소스를 추가하거나, 입력 속도를 제한해야 한다.

스파크 스트리밍 잡이 장애 내성을 갖추려면 드라이버 프로세스가 자동으로 재시작하도록 설정하고, StreamingContext.getOrCreateStreamingContext를 초기화하도록 구현해야 한다. 리시버 기반 커넥터를 사용할 때는 선행 기입 로깅을 활용해야 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.