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]# wget http://mirror.apache-kr.org/kafka/0.11.0.1/kafka_2.12-0.11.0.1.tgz[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.propertiesdataDir=/tmp/zookeeperclientPort=2181maxClientCnxns=0initLimit=5syncLimit=2server.1=CY4:15000:16000server.2=CY3:15000:16000server.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/myid1[root@CY3 kafka]# mkdir -p /tmp/zookeeper[root@CY3 kafka]# echo 2 > /tmp/zookeeper/myid[root@CY3 kafka]# cat /tmp/zookeeper/myid2[root@CY5 kafka]# mkdir -p /tmp/zookeeper[root@CY5 kafka]# echo 3 > /tmp/zookeeper/myid[root@CY5 kafka]# cat /tmp/zookeeper/myid3
# zookeeper 시작 스크립트 작성 및 실행 (모든 node에 동일하게 진행)
[root@CY4 kafka]# install -m 700 /dev/null zk-start.sh[root@CY4 kafka]# vi zk-start.sh#!/bin/bashnohup 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/bashKAFKA_HOME=/usr/local/kafka$KAFKA_HOME/bin/zookeeper-server-stop.sh
# kafka cluster 설정을 수정한다. broker id 는 각각 node 별로 zookeeper id 와 동일하게 수정
[root@CY4 kafka]# vi config/server.properties20 # The id of the broker. This must be set to a unique integer for each broker.21 #broker.id=022 broker.id=0126 #zookeeper.connect=localhost:2181127 zookeeper.connect=CY4:2181,CY3:2181,CY5:2181[root@CY3 kafka]# vi config/server.properties20 # The id of the broker. This must be set to a unique integer for each broker.21 #broker.id=022 broker.id=2126 #zookeeper.connect=localhost:2181127 zookeeper.connect=CY4:2181,CY3:2181,CY5:2181[root@CY5 kafka]# vi config/server.properties20 # The id of the broker. This must be set to a unique integer for each broker.21 #broker.id=022 broker.id=3126 #zookeeper.connect=localhost:2181127 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/bashKAFKA_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 cyCreated topic "cy".
# --describe 지시자를 통하여 해당 topic 을 확인 한다.
[root@CY4 kafka]# /usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper CY4Topic: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-beginningUsing 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].sdsdsdxcxc
# cosumer shell 에서 zookeeper 지시자 대신 --bootstrap-server 지시자를 사용 하면 warring message 가 발생 하지 않는다.
[root@CY4 ~]# /usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server CY4 --topic cy --from-beginningUsing 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].sdsdsdxcxc
참조 사이트 : 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 |