搭建zookeeper和Kafka集群

搭建zookeeper和Kafka集群:
本实验拥有3个节点,均为CentOS 7系统,分别对应IP为10.211.55.11、10.211.55.13、10.211.55.14,且均有相同用户名 (本实验为 jiecxy)
 
为了方便,先在三台节点上 /etc/hosts 文件内容均添加:
 
10.211.55.11 master
10.211.55.13 worker1
10.211.55.14 worker2123
 
一、 安装zookeeper
 
1. 下载 zookeeper-3.4.8.tar.gz
 
2. 在 master 节点上安装 zookeeper
解压安装包,并复制配置文件
 
# 在master节点上
[jiecxy@master ~]$ tar -xzvf zookeeper-3.4.8.tar.gz
[jiecxy@master ~]$ cd zookeeper-3.4.8/conf/
[jiecxy@master conf]$ cp zoo_sample.cfg zoo.cfg1234
 
3. 修改 zoo.cfg
 
[jiecxy@master conf]$ vi zoo.cfg1
修改内容如下:
 
...
# dataDir 最好不要在 /tmp 下
dataDir=/tmp/zookeeper
...
# the port at which the clients will connect
clientPort=2181
# 添加节点,注:端口2888、3888不固定
server.0=master:2888:3888
server.1=worker1:2888:3888
server.2=worker2:2888:3888
...123456789101112
 
 
4. 在 dataDir 目录下创建 data 文件夹 和 myid 文件(内容为0)
# 在master节点上
[jiecxy@master ~]$ mkdir /tmp/zookeeper/data/
[jiecxy@master ~]$ touch /tmp/zookeeper/myid
[jiecxy@master ~]$ echo 0 > /tmp/zookeeper/myid1234
 
5. 将 zookeeper-3.4.8 文件夹复制到另外两个节点下
 
# 在master节点上
[jiecxy@master ~]$ scp -r zookeeper-3.4.8/ worker1:~/
[jiecxy@master ~]$ scp -r zookeeper-3.4.8/ worker2:~/123
并在相同 dataDir 下创建 data 文件夹 和 myid 文件
注:worker1 的 myid 文件内容为 1,worker2 的 myid 文件内容为 2
 
# 登录 worker1
[jiecxy@worker1 ~]$ mkdir /tmp/zookeeper/data/
[jiecxy@worker1 ~]$ touch /tmp/zookeeper/myid
[jiecxy@worker1 ~]$ echo 1 > /tmp/zookeeper/myid1234
 
# 登录 worker2
[jiecxy@worker2 ~]$ mkdir /tmp/zookeeper/data/
[jiecxy@worker2 ~]$ touch /tmp/zookeeper/myid
[jiecxy@worker2 ~]$ echo 2 > /tmp/zookeeper/myid1234
 
6. 关闭防火墙
 
# 关闭防火墙
service iptables stop
# 启动防火墙
service iptables start
# 重启防火墙
service iptables restart
# 查看防火墙状态
service iptables status
# 永久关闭防火墙
chkconfig iptables off
# 永久关闭后启用
chkconfig iptables on
12345678910111213
 
 
二、 安装Kafka
 
1. 下载 kafka_2.11-0.10.0.1.tar.gz
 
2. 在 master 节点上安装 kafka(一个broker)
解压安装包
 
# 在master节点上
[jiecxy@master ~]$ tar -xzvf kafka_2.11-0.10.0.1.tar.gz12
 
3. 修改 server.properties
 
# 在master节点上
[jiecxy@master ~]$ cd kafka_2.11-0.10.0.1/config/
[jiecxy@master config]$ vi server.properties123
修改内容如下:
 
...
# master为0
broker.id=0   
...
# 连接
zookeeper.connect=master:2181,worker1:2181,worker2:2181
# 可删除topic
delete.topic.enable=true
...123456789
 
 
 
4. 将 kafka_2.11-0.10.0.1 文件夹复制到另外两个节点下
# 在master节点上
[jiecxy@master ~]$ scp -r kafka_2.11-0.10.0.1/ worker1:~/
[jiecxy@master ~]$ scp -r kafka_2.11-0.10.0.1/ worker2:~/123
并修改每个节点对应的 server.properties 文件的 broker.id: master为0,worker1为1,worker2为2
 

三、 启动集群和测试
 
注:启动时:先启动 zookeeper,后启动 kafka;关闭时:先关闭 kafka,后关闭zookeeper
 
1. 分别在每个节点上启动 zookeeper
 
# 在master节点上
[jiecxy@master zookeeper-3.4.8]$ bin/zkServer.sh start
# 在worker1节点上
[jiecxy@worker1 zookeeper-3.4.8]$ bin/zkServer.sh start
# 在worker2节点上
[jiecxy@worker2 zookeeper-3.4.8]$ bin/zkServer.sh start12345678
 
2. 验证 zookeeper 集群
 
# 在master节点上
[jiecxy@master zookeeper-3.4.8]$ bin/zkServer.sh status
# 在worker1节点上
[jiecxy@worker1 zookeeper-3.4.8]$ bin/zkServer.sh status
# 在worker2节点上
[jiecxy@worker2 zookeeper-3.4.8]$ bin/zkServer.sh status12345678
显示结果为:有一个是 leader,剩下的都是 follower 
 

 
 
3. 启动 Kafaka 集群
 
# 在master节点上
[jiecxy@master kafka_2.11-0.10.0.1]$ bin/kafka-server-start.sh config/server.properties &
# 在worker1节点上
[jiecxy@worker1 kafka_2.11-0.10.0.1]$ bin/kafka-server-start.sh config/server.properties &
# 在worker2节点上
[jiecxy@worker2 kafka_2.11-0.10.0.1]$ bin/kafka-server-start.sh config/server.properties &12345678
 
4. 测试
创建 topic 和 显示 topic 信息
 
# 在master节点上 创建topic
[jiecxy@master kafka_2.11-0.10.0.1]$ bin/kafka-topics.sh --create --zookeeper master:2181,worker1:2181,worker2:2181 --replication-factor 3 --partitions 3 --topic test12
 
 
# 在master节点上 显示topic信息
[jiecxy@master kafka_2.11-0.10.0.1]$ bin/kafka-topics.sh --describe --zookeeper master:2181,worker1:2181,worker2:2181 --topic test12
 
 
# 在master节点上 列出topic
[jiecxy@master kafka_2.11-0.10.0.1]$ bin/kafka-topics.sh --list --zookeeper master:2181,worker1:2181,worker2:218112
 
 
创建 producer
 
# 在master节点上 测试生产消息
[jiecxy@master kafka_2.11-0.10.0.1]$ bin/kafka-console-producer.sh --broker-list master:9092 -topic test12
 
 
创建 consumer
 
# 在master节点上 测试消费
[jiecxy@master kafka_2.11-0.10.0.1]$ bin/kafka-console-consumer.sh --zookeeper master:2181,worker1:2181,worker2:2181 -topic test --from-beginning
# 在worker1节点上 测试消费
[jiecxy@worker1 kafka_2.11-0.10.0.1]$ bin/kafka-console-consumer.sh --zookeeper master:2181,worker1:2181,worker2:2181 -topic test --from-beginning
# 在worker2节点上 测试消费
[jiecxy@worker2 kafka_2.11-0.10.0.1]$ bin/kafka-console-consumer.sh --zookeeper master:2181,worker1:2181,worker2:2181 -topic test --from-beginning12345678
然后在 producer 里输入消息,consumer 中就会显示出同样的内容,表示消费成功
 
 
5. 删除 topic 和关闭服务
 
# 在master节点上 删除topic
[jiecxy@master kafka_2.11-0.10.0.1]$ bin/kafka-topics.sh --delete --zookeeper master:2181,worker1:2181,worker2:2181 --topic test12
关闭
 
# 在master节点上 关闭kafka
[jiecxy@master ~]$ ./kafka_2.11-0.10.0.1/bin/kafka-server-stop.sh
# 在worker1节点上 关闭kafka
[jiecxy@worker1 ~]$ ./kafka_2.11-0.10.0.1/bin/kafka-server-stop.sh
# 在worker2节点上 关闭kafka
[jiecxy@worker2 ~]$ ./kafka_2.11-0.10.0.1/bin/kafka-server-stop.sh
# 在master节点上 关闭zookeeper
[jiecxy@master ~]$ ./zookeeper-3.4.8/bin/zkServer.sh stop
# 在worker1节点上 关闭zookeeper
[jiecxy@worker1 ~]$ ./zookeeper-3.4.8/bin/zkServer.sh stop
# 在worker2节点上 关闭zookeeper
[jiecxy@worker2 ~]$ ./zookeeper-3.4.8/bin/zkServer.sh stop
 
 
--------------------- 
原文:https://blog.csdn.net/jiecxy/article/details/52348120

posted on 2019-01-16 16:21  兔大锤  阅读(335)  评论(0编辑  收藏  举报

导航