출처 : https://kafka.apache.org/quickstart /


궁극적으로 BIG DATA 실시간 분석이 목적인데,


Spark Streaming 하기 위한 전단계 중 Kafka Infra 를 앞단에 놓고 실시간 Streaming 을 사용 하여 구현하게된다.


Kafka 는 개략적으로

이런 모양을 하고 cluseter, 즉 broker 가 중간 역할을 하여 data 를 전달 한다.


프로듀서 - 컨슈머 동작을 하기위해선 아래 순서로 설치한다.

1.일단 KAFKA 설치 (직접설치 또는 ambari 등을 이용)


2.zookeeper 환경설치 (직접설치 또는 ambari 등을 이용)


3.Kafka 경로의 server.properties 파일에서 설정 확인


Listener = PLAINTEXT://localhost:6667 또는 9092포트

advertisment.Listener(deprecated)

>>으로 설정 이후 Zookeeper 는 6667 포트를 기준으로 consumer / producer 를 보내게 된다.

default.replication.factor = 1

offsets.topic.replication.factor  = 1 (3 으로설정되어있으면 consumer 가 topic 이 3개 기준으로 동작하기 때문에 추후 조정)


4. 토픽 생성 

/usr/bin/kafka-topics.sh --create --zookeeper localhost:6667 --replication-factor 1 --partitions 1 --topic test



5. 프로듀서 테스트

/usr/hdp/2.6.5.0-292/kafka/bin/kafka-console-producer.sh --broker-list swinno01.cs9046cloud.internal:6667 --topic Hello 


6.컨슈머 테스트

/usr/hdp/2.6.5.0-292/kafka/bin/kafka-console-consumer.sh --zookeeper swinno01:2181 --topic Hello

/usr/hdp/2.6.5.0-292/kafka/bin/kafka-console-consumer.sh --bootstrap-server swinno01.cs9046cloud.internal:6667 --topic Hello --from-beginning 


이때 컨슈머가 제대로 윗라인으론 동작을 하는데, 아래 bootstrap 옵션으로 동작 안하는 경우가있다.

그땐 다수의 삽질과 / 구글링등을 통해서 아래를 확인해보자

a.broker 의 netstat -tnlp 를 통해 6667 (9092) 포트가 오픈되있는지 확인

b.실행환경에서 브로커ip:port 로 telnet 확인

c. zookeeper 스크립트를 통한 브로커 상태확인

/usr/hdp/2.6.5.0-292/kafka/bin/zookeeper-shell.sh localhost:2181   

 get /brokers/ids/1001  (ids num 은 확인필요)

d. topic/ broker 모두 삭제후 KAFKA 재시작

e.  offsets.topic.replication.factor  = 1 확인


연결이 상태가 안 좋다면 아래글 참고

https://github.com/wurstmeister/kafka-docker/wiki/Connectivity


지금도 forum / stackoverflow 등에는 위의 이유등으로 컨슈머가 bootstrap 에서 안된다는 이슈는 꾸준히 나오고있다 -_-ㅋ



이런 설정문제이거나/ 연결문제이거나 / 브로커 잔재 문제이거나


컨슈머까지 스크립트에서 동작하는것을 확인하면

spark 를 이용한 streaming 하기 위한 전단계 까지 완료 !





'spark,kafka,hadoop ecosystems > apache.kafka' 카테고리의 다른 글

kafka connect  (0) 2018.11.20
kafka vs flink vs esper vs storm vs spark  (0) 2018.11.20
kafka-개요  (0) 2018.11.20
kafka 로그 설정 에 대하여  (0) 2018.10.17
Kafka Connector , Simple Connector 구현  (0) 2018.07.16

+ Recent posts