关闭

Zookeeper+Kafka集群搭建

标签: centoszookeeper集群kafkacluster
1125人阅读 评论(0) 收藏 举报
分类:

说明

搭建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 worker2



一、 安装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.cfg



3. 修改 zoo.cfg

[jiecxy@master conf]$ vi zoo.cfg

修改内容如下:

...
# 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
...



4. 在 dataDir 目录下创建 data 文件夹 和 myid 文件(内容为0

# 在master节点上
[jiecxy@master ~]$ mkdir /tmp/zookeeper/data/
[jiecxy@master ~]$ touch /tmp/zookeeper/myid
[jiecxy@master ~]$ echo 0 > /tmp/zookeeper/myid



5. 将 zookeeper-3.4.8 文件夹复制到另外两个节点下

# 在master节点上
[jiecxy@master ~]$ scp -r zookeeper-3.4.8/ worker1:~/
[jiecxy@master ~]$ scp -r zookeeper-3.4.8/ worker2:~/

并在相同 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/myid
# 登录 worker2
[jiecxy@worker2 ~]$ mkdir /tmp/zookeeper/data/
[jiecxy@worker2 ~]$ touch /tmp/zookeeper/myid
[jiecxy@worker2 ~]$ echo 2 > /tmp/zookeeper/myid



6. 关闭防火墙

# 关闭防火墙
service iptables stop 
# 启动防火墙
service iptables start 
# 重启防火墙
service iptables restart 
# 查看防火墙状态
service iptables status 
# 永久关闭防火墙
chkconfig iptables off 
# 永久关闭后启用
chkconfig iptables on



二、 安装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.gz



3. 修改 server.properties

# 在master节点上
[jiecxy@master ~]$ cd kafka_2.11-0.10.0.1/config/
[jiecxy@master config]$ vi server.properties

修改内容如下:

...
# master为0
broker.id=0    
...
# 连接
zookeeper.connect=master:2181,worker1:2181,worker2:2181
# 可删除topic
delete.topic.enable=true
...



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:~/

并修改每个节点对应的 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 start



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 status

显示结果为:有一个是 leader,剩下的都是 follower
验证

验证2

验证3


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 &



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 test

创建topic

# 在master节点上 显示topic信息
[jiecxy@master kafka_2.11-0.10.0.1]$ bin/kafka-topics.sh --describe --zookeeper master:2181,worker1:2181,worker2:2181 --topic test

显示

# 在master节点上 列出topic
[jiecxy@master kafka_2.11-0.10.0.1]$ bin/kafka-topics.sh --list --zookeeper master:2181,worker1:2181,worker2:2181

列出


创建 producer

# 在master节点上 测试生产消息
[jiecxy@master kafka_2.11-0.10.0.1]$ bin/kafka-console-producer.sh --broker-list master:9092 -topic test

producer


创建 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-beginning

然后在 producer 里输入消息,consumer 中就会显示出同样的内容,表示消费成功
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 test

关闭

# 在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
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:19777次
    • 积分:480
    • 等级:
    • 排名:千里之外
    • 原创:21篇
    • 转载:1篇
    • 译文:0篇
    • 评论:1条
    文章分类