검색결과 리스트
kafka에 해당되는 글 1건
- 2019.06.04 카프카 주키퍼 설치
1. vmware 에서 가상머신에 centos를 설치한다.
hostname을 zk001로 한다.
** 호스트 네임 변경방법
"/etc/sysconfig/network" 파일을 수정후 재부팅한다.
NETWORKING=yes
HOSTNAME=zk001
2. root로 openjdk 1.8.0을 설치한다.
$> yum -y install java-1.8.0-openjdk
3. iptables 서비스를 종료한다.
$> service iptables stop
4. 서비스 자동시작을 해제한다.
$> chkconfig iptables off
5. 위의 가상머신을 clone 기능을 이용해 복제 하고
hostname을 kafka001로 한다.
** 호스트 네임 변경방법
"/etc/sysconfig/network" 파일을 수정후 재부팅한다.
NETWORKING=yes
HOSTNAME=kafka001
6. zk001서버에 주키퍼를 설치한다.
$>cd /usr/local/
$>wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz
- 압축을 해제한다.
$>tar xvfz apache-zookeeper-3.5.5-bin.tar.gz
- 소프트 링크를 생성한다.
$>ln -s apache-zookeeper-3.5.5-bin zookeeper
$>mkdir /data
7. zk001를 clone 기능을 이용하여 2대 복제하고 hostname을 zk002, zk003으로 수정한다.
zk001 서버에서 /data/myid에 1을 입력한다.
$> echo 1 > /data/myid
zk002 서버에서 /data/myid에 2을 입력한다.
$> echo 2 > /data/myid
zk003 서버에서 /data/myid에 3을 입력한다.
$> echo 3 > /data/myid
8. zk001, zk002, zk003 서버에서 환경설정파일을 생성한다.
$> cd /usr/local/zookeeper/conf
$> vi zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data
clientPort=2181
server.1=zk001:2888:3888
server.2=zk002:2888:3888
server.3=zk003:2888:388
9. zk001, zk002, zk003 서버에서 주키퍼가 정상적으로 수행되는지 확인한다.
$> cd /usr/local/zookeeper/bin/
$> ./zkServer.sh start
아래 명령어로 daemon이 떠있는지 확인한다.
$>ps -ef | grep zookeeper
10. 5번 step에서 복제한 kafka001에 kafka를 설치한다.
$> cd /usr/local/
$> wget https://archive.apache.org/dist/kafka/2.1.0/kafka_2.11-2.1.0.tgz
$> tar xvfz kafka_2.11-2.1.0.tgz
$> ln -s kafka_2.11-2.1.0 kafka
$> mkdir /data1
$> mkdir /data2
11. kafka001 서버를 2대 복제하고 hostname을 kafka002, kafka003으로 변경한다.
각서버에서 주키퍼 서버로 접속이 되는지 확인한다.
$> nc -v zk001 2181
Connection to zk001 2181 port [tcp/eforward] succeeded!
12. 각서버에서 환경설정 파일을 변경한다.
$> cd /usr/local/kafka/config/
vi 에디터로 아래 파일을 수정한다.
$> vi server.properties
아래 부분을 찾아서 서버에 맞게 수정해 준다.
############################# Server Basics #############################
# The id of the broker. This must be set to a unique integer for each broker.
broker.id=1
kafka001은 1로 수정
kafka002는 2로 수정
kafka003은 3으로 수정
13. log 디렉토리 설정 수정
아래 부분을 찾아서 각 서버에서 동일하게 수정을 한다.
log.dirs=/data1,/data2
14. zookeeper.connect부분을 찾아서 아래와 같이 모든 서버에서 수정해줍니다.
아래와 같이 입력하면 kafka가 주키퍼에 접속하여 /kafka라는 znode를 생성합니다.
zookeeper.connect=zk001:2181,zk002:2181,zk003:2181/kafka
15. 각 서버에서 카프카를 시작한다 이때 & 기호를 붙여서 백그라운드에서 실행이 되도록 합니다.
./kafka-server-start.sh /usr/local/kafka/config/server.properties &
16. 주키퍼와 카프카의 상태확인
zk001,zk002,zk003 서버에서 주키퍼 클라이언트 포트의 상태를 확인합니다.
$> ps -ef | grep 2181
root 12758 2653 0 23:09 pts/0 00:00:00 grep 2181
kafka001,kafka002,kafka003 서버에서 kafka 포트의 상태를 확인합니다.
$> ps -ef | grep 9092
root 9126 2459 0 23:09 pts/0 00:00:00 grep 9092
17. 주키퍼와 cli를 통해 주키퍼와 카프카가 잘연결 되었는지 확인
$> cd /usr/local/zookeeper/bin
$> ./zkCli.sh
[zk: localhost:2181(CONNECTED) 0] ls /
[kafka, zookeeper]
[zk: localhost:2181(CONNECTED) 1] ls /kafka/brokers/ids
[1,2,3]
18. 카프카 토픽 생성
$> cd /usr/local/kafka/bin/
$> ./kafka-topics.sh \
--zookeeper zk001:2181,zk002:2181,zk003:2181/kafka \
--replication-factor 1 --partitions 1 --topic kang-topic --create
- 참고로 토픽을 잘못 생성한 경우는 아래와 같이 삭제를 한다.
$> ./kafka-topics.sh \
--zookeeper zk001:2181,zk002:2181,zk003:2181/kafka \
--topic kang-topic --create
19. 카프카 메세지 퍼블리싱
아래 명령어를 수행하면 메세지를 입력할 수 있는 프롬프트가 뜹니다.
$> cd /usr/local/kafka/bin/
$> ./kafka-console-producer.sh \
--broker-list kafka001:9092,kafka002:9092,kafka003:9092 \
--topic kang-topic
프롬프트에 아래와 같이 입력합니다.
>first message
>second message
메세지 입력후 ctrl+c를 입력하면 입력창에서 나올 수 있습니다.
20. 카프카 메세지 수신
아래와 같이 입력하면 kang-topic에 퍼블리싱된 메세지를 아래와 같이 확인할 수 있다.
$>./kafka-console-consumer.sh \
--bootstrap-server kafka001:9092,kafka002:9092,kafka003:9092 \
--topic kang-topic --from-beginning
first message
second message
RECENT COMMENT