您的位置:首页 > 其它

Zookeeper+Kafka集群部署方案

2018-12-12 11:42 736 查看

先说明一下zookeeper+kafka集群的原理

搭建zookeeper和Kafka集群: 
本实验拥有3个节点,均为CentOS 7系统,且均有相同用户名 (本实验为 opadm)

主机规划:
192.168.137.211  Kafka+Zookeeper
192.168.137.14  Kafka+Zookeeper
192.168.137.15  Kafka+Zookeeper

开始操作前做的一步很重要的事:先把防火墙关了。

那先来看一下防火墙的状态:systemctl status firewalld

如果是下图所示开着的,那就把它给关了,不然这东西可以烦死你

暂时关闭操作:

systemctl stop firewalld
此时再次看一眼防火墙的状态

在这里最好把防火墙开机自启也关了,免了一些不必要的麻烦

systemctl disable firewalld.service

 

开始正式操作

首先更改一下host的值:

vim /etc/hosts

192.168.137.211 master

192.168.137.211 worker1

192.168.137.211 worker2

开始下载相关软件

cd /tmp(我喜欢把要得一些文件下载到tmp目录下)

wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

kafka的包我分享到百度云里面:链接:https://pan.baidu.com/s/1IEVqUahOec8h_datXoTjeQ 
提取码:mn61 

下载好后再传到centos7中

在这里还需要再安装一下java环境,JDK版本为1.8以上的。否则后期或有个报错。

可以看一下当前系统有没有安装JAVA,      JAVA -version

如果没有,可以详见这篇博客进行一下安装操作

https://www.geek-share.com/detail/2723704618.html

上面准备工作做完了,现在开始正式操作

(1) 在 master 节点上安装 zookeeper
解压安装包,并复制配置文件

# 在master节点中的tmp目录下

[opadm@master ~]$ tar -xzvf zookeeper-3.4.10.tar.gz

[opadm@master ~]$ cp -rf zookeeper-3.4.10 /usr/local

[opadm@master ~]$ cd /usr/local/zookeeper-3.4.10/conf/

[opadm@master conf]$ cp zoo_sample.cfg zoo.cfg

 

(3) 修改 zoo.cfg

[opadm@master conf]$ vi zoo.cfg

修改内容如下: 

...

# dataDir 最好不要在 /tmp 下

dataDir=/usr/local/zookeeper-3.4.10

...

# the port at which the clients will connect

clientPort=2181

 

# 添加节点,注:端口 8001、< 4000 /span>8002 不固定

server.0=master:8001:8002

server.1=worker1:8001:8002

server.2=worker2:8001:8002

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

# 在master节点上

[opadm@master ~]$ mkdir /tmp/zookeeper-3.4.10/data/

[opadm@master ~]$ touch /tmp/zookeeper-3.4.10/myid

[opadm@master ~]$ echo 0 > /tmp7/zookeeper-3.4.10/myid

(5) 将 zookeeper-3.4.10 文件夹复制到另外两个节点下

# 在master节点上

[opadm@master ~]$ scp -r zookeeper-3.4.10/ worker1:~/

[opadm@master ~]$ scp -r zookeeper-3.4.10/ worker2:~/

并在相同 dataDir 下创建 data 文件夹 和 myid 文件 
注:worker1 的 myid 文件内容为 1,worker2 的 myid 文件内容为 2(此处节点0、1、2分别对应上面配置文件中对应的server0,server1,server2)

# 登录 worker1

[opadm@worker1 ~]$ mkdir /tmp/zookeeper/data/

[opadm@worker1 ~]$ touch /tmp/zookeeper/myid

[opadm@worker1 ~]$ echo 1 > /tmp/zookeeper/myid

# 登录 worker2

[opadm@worker2 ~]$ mkdir /tmp/zookeeper/data/

[opadm@worker2 ~]$ touch /tmp/zookeeper/myid

[opadm@worker2 ~]$ echo 2 > /tmp/zookeeper/myid

 

二、 安装Kafka

 

在 master 节点上安装 kafka(一个broker) 
解压安装包

# 在master节点上

> [opadm@master ~]$ tar -xzvf kafka_2.11-0.10.0.1.tar.gz

> [opadm@master ~]$ cp -rf kafka_2.12-1.1.0 /usr/local/

 

(3) 修改 server.properties

# 在master节点上

[opadm@master ~]$ cd /usr/local/kafka_2.11-0.10.0.1/config/

[opadm@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节点上

[opadm@master ~]$ scp -r kafka_2.11-0.10.0.1/ worker1:~/

[opadm@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节点上

[opadm@master zookeeper-3.4.10]$ bin/zkServer.sh start

 

# 在worker1节点上

[opadm@worker1 zookeeper-3.4.10]$ bin/zkServer.sh start

 

# 在worker2节点上

[opadm@worker2 zookeeper-3.4.10]$ bin/zkServer.sh start

(2) 验证 zookeeper 集群

# 在master节点上

[opadm@master zookeeper-3.4.10]$ bin/zkServer.sh status

 

# 在worker1节点上

[opadm@worker1 zookeeper-3.4.10]$ bin/zkServer.sh status

 

# 在worker2节点上

[opadm@worker2 zookeeper-3.4.10]$ bin/zkServer.sh status

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

 

(3) 启动 Kafaka 集群

# 在master节点上

[opadm@master kafka_2.11-0.10.0.1]$ bin/kafka-server-start.sh config/server.properties &

 

# 在worker1节点上

[opadm@worker1 kafka_2.11-0.10.0.1]$ bin/kafka-server-start.sh config/server.properties &

 

# 在worker2节点上

[opadm@worker2 kafka_2.11-0.10.0.1]$ bin/kafka-server-start.sh config/server.properties &

(4) 测试 
创建 topic 和 显示 topic 信息

# 在master节点上 创建topic

[opadm@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信息

[opadm@master kafka_2.11-0.10.0.1]$ bin/kafka-topics.sh --describe --zookeeper master:2181,worker1:2181,worker2:2181 --topic test

# 在master节点上 列出topic

[opadm@master kafka_2.11-0.10.0.1]$ bin/kafka-topics.sh --list --zookeeper master:2181,worker1:2181,worker2:2181

创建 producer

# 在master节点上 测试生产消息

[opadm@master kafka_2.11-0.10.0.1]$ bin/kafka-console-producer.sh --broker-list master:9092 -topic test

创建 consumer

# 在worker1节点上 测试消费

[opadm@worker1 kafka_2.11-0.10.0.1]$ bin/kafka-console-consumer.sh --bootstrap-server worker1:9092 -topic test --from-beginning

 

# 在worker2节点上 测试消费

[opadm@worker2 kafka_2.11-0.10.0.1]$ bin/kafka-console-consumer.sh --bootstrap-server worker2:9092 -topic test --from-beginning

然后在 producer 里输入消息,consumer 中就会显示出同样的内容,表示消费成功 
(5) 删除 topic 和关闭服务

# 在master节点上 删除topic

[opadm@master kafka_2.11-0.10.0.1]$ bin/kafka-topics.sh --delete --zookeeper master:2181,worker1:2181,worker2:2181 --topic test

 

关闭kafka 和 zookeeper

# 在master节点上 关闭kafka

[opadm@master ~]$ ./kafka_2.11-0.10.0.1/bin/kafka-server-stop.sh

# 在worker1节点上 关闭kafka

[opadm@worker1 ~]$ ./kafka_2.11-0.10.0.1/bin/kafka-server-stop.sh

# 在worker2节点上 关闭kafka

[opadm@worker2 ~]$ ./kafka_2.11-0.10.0.1/bin/kafka-server-stop.sh

 

# 在master节点上 关闭zookeeper

[opadm@master ~]$ ./zookeeper-3.4.10/bin/zkServer.sh stop

# 在worker1节点上 关闭zookeeper

[opadm@worker1 ~]$ ./zookeeper-3.4.10/bin/zkServer.sh stop

# 在worker2节点上 关闭zookeeper

[opadm@worker2 ~]$ ./zookeeper-3.4.10/bin/zkServer.sh stop

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: