본문 바로가기

Kafka

(3)
[Kafka] 자주사용하는 Kafka 커맨드 1. __consumer_offsets 토픽에서 offset 정보 읽기 $ echo "exclude.internal.topics=false" > /tmp/consumer.config $ kafka-console-consumer \ --consumer.config /tmp/consumer.config \ --formatter "kafka.coordinator.group.GroupMetadataManager\$OffsetsMessageFormatter" \ --bootstrap-server localhost:9092 \ --topic __consumer_offsets \ --from-beginning 2. 카프카 데이터 읽기(console-kafka-consumer) : ' --topic: 토픽명 --boo..
[Spark Streaming] Kafka를 이용한 스트리밍 처리 시 메세지 중복되는 이유 Spark Streaming를 통해 Kafka에서 메세지를 읽어 HDFS에 저장하는 작업중에, 카프카 메세지가 중복으로 저장되는 이슈가 있어 원인 및 해결책을 알아보았다. 1. 상황 Kafka에서 HDFS에 파일로 저장한 후 CanCommitOffsets.commitAsync 를 이용하여 offset을 커밋중이다. 상단의 이미지는 Spark Streaming Kafka Integration의 Storing Offsets 부분이다. 2. 현상 Spark Streaming 잡을 종료 시킨뒤 다시 재시작하면 동일한 메세지가 중복되어 컨슈밍 된다. 그림에서 보는것과 같이 3번 마이크로 배치 수행시 offset:25~51의 데이터를 가져오는 것이 아니라 offset:10~51의 데이터를 가져오게 됨으로서 offs..
[Kafka] 파티션 Skew, Leader Skew 그리고 Reassign Partition kafka-manager에서 카프카를 운영하다보면 Skewed 혹은 Leader Skewed가 true가 된 것을 종종 볼수 있다. 그럼 Skew는 무엇일까? Skew는 카프카 토픽의 파티션들이 각 브로커 서버에 균등하게 나눠지는것이 아니라, 한쪽으로 치우친 현상으로 Skew라고 한다. 또한 각 파티션들의 리플리케이션에 의해 Leader Partition/Follower Partition 으로 나누는데, Leader Partition이 각 브로커에 균등하게 분산되지 않은것을 Leader Skew 라고 한다. 위 그림은 kafka broker : 3, partition: 3, replication factor: 2 일때 이상적으로 분산된 상태이다. 이 상태에서 일부 브로커서버를 재시작 하게 되면 파티션 들..