본문 바로가기
System/Kafka

Kafka Default install test




1.서버 환경 구성 

Hostname
Private IP
CPU
Memory
OS
CY3
192.168.0.203
Xeon(R)L5630 @ 2.13GHz
2G
Centos 6.8 64bit
CY4
192.168.0.204
Xeon(R)L5630 @ 2.13GH
2G
Centos 6.8 64bit
CY5
192.168.0.205
Xeon(R)L5630 @ 2.13GH
2G
Centos 6.8 64bit
※ VM ware nat interface 환경

2.환경 설정

# 모든 node에 각 hostname 과 ip 를 hosts 파일에 추가

[root@CY4 ~]#  echo " 192.168.0.203 CY3" >> /etc/hosts
[root@CY4 ~]#  echo " 192.168.0.204 CY4" >> /etc/hosts
[root@CY4 ~]#  echo " 192.168.0.205 CY5" >> /etc/hosts

[root@CY3 ~]#  echo " 192.168.0.203 CY3" >> /etc/hosts
[root@CY3 ~]#  echo " 192.168.0.204 CY4" >> /etc/hosts
[root@CY3 ~]#  echo " 192.168.0.205 CY5" >> /etc/hosts

[root@CY5 ~]#  echo " 192.168.0.203 CY3" >> /etc/hosts
[root@CY5 ~]#  echo " 192.168.0.204 CY4" >> /etc/hosts
[root@CY5 ~]#  echo " 192.168.0.205 CY5" >> /etc/hosts


# kafka 와 zookeeper 실행을 위한 jre 설치 (모든 node에 동일하게 설치)
[root@CY3 ~]# rpm -Uvh /tmp/jre-8u144-linux-x64.rpm
[root@CY4 ~]# rpm -Uvh /tmp/jre-8u144-linux-x64.rpm
[root@CY5 ~]# rpm -Uvh /tmp/jre-8u144-linux-x64.rpm
# kafka 소스 파일 다운로드후 /usr/local 로 이동 (모든 node에 동일하게 진행)

[root@CY4 ~]# cd /usr/local/src
[root@CY4 src]# tar xvzf kafka_2.12-0.11.0.1.tgz
[root@CY4 src]# cp -r kafka_2.12-0.11.0.1  /usr/local/
[root@CY4 src]# ln -s /usr/local/kafka_2.12-0.11.0.1/ /usr/local/kafka

# kafka 를 위한 zookeeper 는 내장 되어 있는 zookeeper 이용하며 아래와 같이 cluster 될 node 추가 및 설정 변경 (모든 node에 동일하게 진행)
[root@CY4 src]# cd /usr/local/kafka
[root@CY4 kafka]# vi config/zookeeper.properties
dataDir=/tmp/zookeeper
clientPort=2181
maxClientCnxns=0

initLimit=5
syncLimit=2
server.1=CY4:15000:16000
server.2=CY3:15000:16000
server.3=CY4:15000:16000

# 위 zookeeper 설정의 기본 디렉토리인 /tmp/zookeeper 를 생성 및 위 설정 각 node 별 설정 된 zookeeper id 를 각각 추가 한다.
[root@CY4 kafka]# mkdir -p /tmp/zookeeper
[root@CY4 kafka]#  echo 1 > /tmp/zookeeper/myid
[root@CY4 kafka]#  cat /tmp/zookeeper/myid
1

[root@CY3 kafka]# mkdir -p /tmp/zookeeper
[root@CY3 kafka]#  echo 2 > /tmp/zookeeper/myid
[root@CY3 kafka]#  cat /tmp/zookeeper/myid
2

[root@CY5 kafka]# mkdir -p /tmp/zookeeper
[root@CY5 kafka]#  echo 3 > /tmp/zookeeper/myid
[root@CY5 kafka]#  cat /tmp/zookeeper/myid
3


# zookeeper 시작 스크립트 작성 및 실행 (모든 node에 동일하게 진행)
[root@CY4 kafka]# install -m 700 /dev/null  zk-start.sh
[root@CY4 kafka]# vi zk-start.sh
#!/bin/bash
nohup bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
[root@CY4 kafka]# ./zk-start.sh

# zookeeper 종료시 아래 스크립트를 실행 하여 종료를 한다.
[root@CY4 kafka]# install -m 700 /dev/null  zk-stop.sh
[root@CY4 kafka]# vi zk-stop.sh
#!/bin/bash
KAFKA_HOME=/usr/local/kafka
$KAFKA_HOME/bin/zookeeper-server-stop.sh

# kafka cluster 설정을 수정한다. broker id 는 각각 node 별로 zookeeper id 와 동일하게 수정 
[root@CY4 kafka]# vi config/server.properties
20 # The id of the broker. This must be set to a unique integer for each broker.
21 #broker.id=0
22 broker.id=0

126 #zookeeper.connect=localhost:2181
127 zookeeper.connect=CY4:2181,CY3:2181,CY5:2181

[root@CY3 kafka]# vi config/server.properties
20 # The id of the broker. This must be set to a unique integer for each broker.
21 #broker.id=0
22 broker.id=2

126 #zookeeper.connect=localhost:2181
127 zookeeper.connect=CY4:2181,CY3:2181,CY5:2181

[root@CY5 kafka]# vi config/server.properties
20 # The id of the broker. This must be set to a unique integer for each broker.
21 #broker.id=0
22 broker.id=3

126 #zookeeper.connect=localhost:2181
127 zookeeper.connect=CY4:2181,CY3:2181,CY5:2181


# kafka시작 스크립트 작성 및 실행 (모든 node에 동일하게 진행)
[root@CY4 kafka]# install -m 700 /dev/null  kafka-start.sh
[root@CY4 kafka]# vi kafka-start.sh
#!/bin/bash
KAFKA_HOME=/usr/local/kafka
$KAFKA_HOME/bin/kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties

[root@CY4 kafka]# ./kafka-start.sh

# 정상적으로 동작시 아래와 같이 로그를 통해서 확인 가능 
[root@CY4 kafka]# tail -f /usr/local/kafka/logs/kafkaServer.out
[2017-09-27 09:01:03,545] INFO [Kafka Server 0], started (kafka.server.KafkaServer)
[2017-09-27 09:01:04,075] INFO Replica loaded for partition cy2-0 with initial high watermark 0 (kafka.cluster.Replica)
[2017-09-27 09:01:04,094] INFO Replica loaded for partition cy2-0 with initial high watermark 431 (kafka.cluster.Replica)
[2017-09-27 09:01:04,123] INFO Replica loaded for partition cy-0 with initial high watermark 116701 (kafka.cluster.Replica)
[2017-09-27 09:01:04,123] INFO Replica loaded for partition cy-0 with initial high watermark 0 (kafka.cluster.Replica)
[2017-09-27 09:01:04,126] INFO [ReplicaFetcherManager on broker 0] Removed fetcher for partitions cy2-0,cy-0 (kafka.server.ReplicaFetcherManager)
[2017-09-27 09:01:04,190] INFO [ReplicaFetcherThread-0-2]: Starting (kafka.server.ReplicaFetcherThread)

#  내장 되어 있는 kafka-topics.sh 스크립트를 통하여 topic을 생성 한다.
# --create 지시자를 통하여 topic을 생성 하며, zookeeper node 를 선택 하고   --replication-factor 지시자로 총 3개의  node 이기 때문에 2를 선택(0,1,2  의 의미) 하여 생성
[root@CY4 kafka]# /usr/local/kafka/bin/kafka-topics.sh --create --zookeeper CY4 --replication-factor 2 --partitions 1 --topic cy
Created topic "cy".

# --describe 지시자를 통하여 해당 topic 을 확인 한다.
[root@CY4 kafka]# /usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper CY4          
Topic:cy        PartitionCount:1        ReplicationFactor:2     Configs:
        Topic: cy       Partition: 0    Leader: 0       Replicas: 0,2   Isr: 0,2
# test를 위하여 -console-producer.sh 스크립트로 produser 를 띄어 shell 환경에서 message 를 전송 한다.
[root@CY4 kafka]#/usr/local/kafka/bin/kafka-console-producer.sh --broker-list  CY4:9092  --topic cy
>sdsd
>sd
>xcxc


# 다른 shell 에서 cosumer 를 통하여 기존 shell 에서 보낸 message 를 확인 한다.
[root@CY4 ~]# /usr/local/kafka/bin/kafka-console-consumer.sh --zookeeper CY4 --topic cy --from-beginning  
Using the ConsoleConsumer with old consumer is deprecated and will be removed in a future major release. Consider using the new consumer by passing [bootstrap-server] instead of [zookeeper].
sdsd
sd
xcxc

# cosumer shell 에서 zookeeper 지시자 대신 --bootstrap-server 지시자를 사용 하면 warring message 가 발생 하지 않는다.
[root@CY4 ~]# /usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server CY4 --topic cy --from-beginning  
Using the ConsoleConsumer with old consumer is deprecated and will be removed in a future major release. Consider using the new consumer by passing [bootstrap-server] instead of [zookeeper].
sdsd
sd
xcxc


참조 사이트  : https://kafka.apache.org/





반응형

'System > Kafka' 카테고리의 다른 글

kafka manager  (0) 2018.07.08
kafka partition, replication(ISR)  (0) 2018.07.07
zookeeper-kafka cluster install  (0) 2018.07.07