2017-10-20 4 views
0

나는 불꽃 소비자 (spa‌​rk-streaming-kafka_2‌​.10 버전 1.6.0)를 사용하고 있습니다.아파치 스파크 시간 기반 카프카 OFF 세트

내 스파크 발사기는 5 칸막이로 kafka 대기열의 메시지를 수신합니다. 내 스파크 애플리케이션을 중지 할 때 구성한 내용에 따라 가장 작은 오프셋 값 또는 가장 큰 오프셋 값을 읽습니다. 하지만 난 Saprk 응용 프로그램은 내가 stop.for 예를 들어 내가 3.00PM 프로세스를 중지하고 3.30PM에서 스파크 발사기를 시작 meesage를 읽어야합니다. 그럼 3.30PM 사이의 모든 메시지를 읽고 싶습니다.

+0

어떤 버전의 스파크 스트리밍을 사용합니까 (표준/구조화)? 표준 : 수신자 기반의 접근법이나 직접 스트리밍을 사용합니까? – Mariusz

+0

org.apache.spark, 스파 RK-스트리밍 kafka_2 0.10<버전 시온> 1.6.0 I 스파크 소비자 사용하고 – user1488378

답변

0

카프카 (Kafka) 라이브러리의 고급 소비자를 사용하길 바랍니다. 이 경우 그들은 주기적으로 오프셋을 유지할 것이고 Kafka는 사냥꾼이나 카프카 주제에서 오프셋 레코드를 유지합니다. 따라서 시간이 지나면 그룹의 소비자를 다시 시작하면 왼쪽에서 시작합니다. 오프셋 레코드는 재시작 또는 재조정의 경우 소비자가 소비하기 시작해야하는 곳의 마커 역할을합니다. 오프셋 커밋은 자동으로 발생하거나 명시 적으로 커밋 될 수 있습니다. 두 경우 모두 메시지 처리 및 오프셋 커미트가 원자 적으로 발생하지 않으므로 소비자 재시작시 다시 처리 할 메시지가 거의 없을 가능성이 있습니다.

가장 작은 오프셋 값과 가장 큰 오프셋 값은 소비자 그룹에서 처음으로 소비자를 시작할 때만 관련이 있습니다. 소비자가 오프셋 (파티션)의 오프셋 (offset)을 알 수있는 오프셋 레코드가 없으므로 시작 소비.

+0

( org.apache.spark, 스파크 스트리밍 - kafka_2.10 1.6.0) 그리고 만약 내가 기본적으로 "auto.offset.reset"= "가장 큰 오프셋을주지 않을 것입니다. 나는 프로세스를 중지하고 시작하는 시간 사이에 메시지를 소비 할 수 없습니다. 다시. – user1488378