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

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

在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

创建 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 中就会显示出同样的内容,表示消费成功

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值