출처 : 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.
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.
연결이 상태가 안 좋다면 아래글 참고
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 |