Develope/Programming

[Kafka] 1. 카프카 설치 및 실행 (분산 클러스터링)

고로이 2018. 1. 4. 13:59
반응형

Kafka의 카테고리를 하나 팔까 했지만,


쉬운 개념인 만큼 많은 글이 올라올 것 같진 않다.


== 내가 깊게 코딩할꺼같지 않다 ^^


한치앞도 모르는 나년...


Kafka Stream 포스팅 예정...




1. Kafka 설치

1-1. 다운로드
0.10의 scala 2.11버전을 설치햇다.

tar -xvf kafka_2.11-0.10.2.1.tgz.gz

*현재 1.0버젼이다 0.10과는 매우매우매우 다르다. 특히 API쪽이

1-2. 환경설정
1) Zookeeper : config/zookeeper.properties
- Kafka는 zookeeper를 따로 실행할 수 있다.  
즉 카프카 내장 zookeeper가 있지만
보통은 zookeeper를 관리하기 위해 따로 설치한다.

dataDir=/home/centos/apps/zookeeper/data          <<zookeeper dir

# the port at which the clients will connect
clientPort=2181
# disable the per-ip limit on the number of connections since this is a non-production config
maxClientCnxns=0

server.1=server01:15000:16000
server.2=server02:15000:16000
server.3=server03:15000:16000



2) KafkaServer : config/server.properties
1) Server Basics
############################# Server Basics #############################

# The id of the broker. This must be set to a unique integer for each broker.
broker.id=1                << 서버마다 다른 아이디를 줘야 함

2) Zookeeper
############################# Zookeeper #############################

# Zookeeper connection string (see zookeeper docs for details).
# This is a comma separated host:port pairs, each corresponding to a zk
# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".
# You can also append an optional chroot string to the urls to specify the
# root directory for all kafka znodes.
zookeeper.connect=server01:2181,server02:2181,server03:2181


# Timeout in ms for connecting to zookeeper
zookeeper.connection.timeout.ms=6000


5-3. 실행
1) 실행하기 : bin/kafka-server-start.sh config/server.properties

2) 실행 확인 
[centos@server01 bin]$ jps
17904 NameNode
5729 QuorumPeerMain
18257 ResourceManager
19650 HRegionServer
20306 Kafka
20374 Jps
13959 Elasticsearch
18027 DataNode
18540 NodeManager
19502 HMaster

3) 실행 확인 - 2
- topic 생성 : ./kafka-topics.sh --create --zookeeper [ zookeeper 서버명 ] --replication-factor 1 --partitions 1 --topic [ Topic 명 ]

[centos@server01 bin]$ ./kafka-topics.sh --create --zookeeper server01:2181 --replication-factor 1 --partitions 1 --topic kafka-test

Created topic "kafka-test".

-topic list 확인
[centos@server01 bin]$ ./kafka-topics.sh --list --zookeeper server01
kafka-test

          -zookeeper에서 확인
[centos@server03 apps]$ ./zookeeper/bin/zkCli.sh

[zk: localhost:2181(CONNECTED) 7] ls /brokers/topics
[kafka-test]


          4) 실행 확인 -3
                    - 메세지 작성
[centos@server01 bin]$ ./kafka-console-producer.sh --broker-list server01:9092 --topic kafka-test
지금시간은 오전 10시 41분 입니다.
this is Message

-메세지 확인
[centos@server02 bin]$ ./kafka-console-consumer.sh --bootstrap-server server01:9092 --topic kafka-test --from-beginning --zookeeper server01
지금시간은 오전 10시 41분 입니다.
this is Message



반응형