一、kafka、zookeeper分布式集群简介

一句话概括kafka:

kafka是一个具备很强容错能力和实时处理能力的分布式流数据平台。

Kafka的应用场景:

kafka可在以下场景中应用:基于流数据的发布订阅消息系统、基于流数据的高效异步通信中间件、基于流数据的高可用分布式存储;可以替代传统的消息队列和企业级消息系统;


二、所需软件环境:

三台Redhat6.6主机

kafka_2.10-0.9.0.0.tgz 、 zookeeper-3.4.8.tar.gz 、jdk-8u131-linux-x64.tar.gz


三、安装步骤

①准备工作

1.修改主机名,配置各主机映射。修改hosts文件,添加各主机ip及主机名

2.安装jdk,配置系统环境变量(三台主机同样配置,这里以一台主机为例)

解压缩jdk到/usr/local下,并重命名为java(重命名只是个人习惯)

使环境变量生效,并测试

3.安装配置zookeeper

wKioL1l3BLXCQWEMAAASQyouoTQ630.png-wh_50

重命名zookeeper主配置文件,因为官方zookeeper主配文件命名规则就是zoo.cfg



执行以下命令创建zookeeper数据目录和日志目录:

[root@otms zookeeper-3.4.8]# cd zk_data/
[root@otms zk_data]# echo 1 > myid
[root@otms zk_data]# cat myid 
1

修改zookeeper配置文件zoo.cfg如下:

并添加以下选项:

server.1=192.168.1.216:2888:3888
server.2=192.168.1.217:2888:3888
server.3=192.168.1.218:2888:3888

部署分布式kafka集群_第1张图片

拷贝配置文件到其他节点。

注意:每个节点的myid不能相同!!!!

2.启动zookeeper集群

为zookeeper开启相应端口或关闭防火墙!!!

在Zookeeper集群中各节点执行以下命令启动Zookeeper服务:

zookeeper-3.4.8/bin/zkServer.sh start

wKiom1l3BoWizw6CAAAi6koacBE130.png

使用jps命令查看Zookeeper进程

5607 Jps
5470 QuorumPeerMain

Server2的主机为leader

[root@server2 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.8/bin/../conf/zoo.cfg
Mode: leader

杀死server2的zookeeper进程

Leader变成了server1

[root@server1 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.8/bin/../conf/zoo.cfg
Mode: leader

至此zookeeper集群搭建完成,准备工作完成。

②.配置kafka集群

1.解压安装包

修改配置文件,简单配置只需要修改/config/server.properties文件即可。

需要修改的内容:

broker.id(标示当前server在集群中的id,唯一性)porthost.name(当前的server host name或主机ip)zookeeper.connect(连接的zookeeper集群)log.dirs(log的存储目录,需要提前创建)

Eg:

把配置好的kafka上传到其他节点上

for ip in 217 218 ;do scp /usr/local/kafka_2.10-0.9.0.0/config/server.properties [email protected].$ip ; done

二、

(1).首先启动Zookeeper,之后使用一下命令启动Kafka(其他两个节点相同配置),启动成功之后会有信息提示

出现以下信息说明启动成功

2.Kafka进行测试。分别创建topicproducerconsumer,最好是在不同的节点上创建。在producer的控制台上输入信息,观察consumer控制台是否能够接收到。

(server1能够收到,再看其他的)

Server2也可以

server3同样

经过以上配置和测试,Kafka已经初步部署好了,接下来可以根据具体的需求配置和操作Kafka

在server2上生产消息。

PS:出现以下提示是因为该主题没有事先创建好,配置文件中也没有开启自动创建主题,可以手动创建。

部署分布式kafka集群_第2张图片

去其他服务器上消费消息

OK!至此为止完整的kafka分布式集群就配置好啦~