部署分布式kafka集群

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了部署分布式kafka集群相关的知识,希望对你有一定的参考价值。

一、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

技术分享

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

技术分享


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

[[email protected] zookeeper-3.4.8]# cd zk_data/
[[email protected] zk_data]# echo 1 > myid
[[email protected] 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

技术分享

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

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

2.启动zookeeper集群

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

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

zookeeper-3.4.8/bin/zkServer.sh start

技术分享

使用jps命令查看Zookeeper进程

5607 Jps
5470 QuorumPeerMain

Server2的主机为leader

[[email protected] 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

[[email protected] 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:出现以下提示是因为该主题没有事先创建好,配置文件中也没有开启自动创建主题,可以手动创建。

技术分享

去其他服务器上消费消息

技术分享

技术分享

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


本文出自 “清风与你” 博客,请务必保留此出处http://super12138.blog.51cto.com/12190541/1950885

以上是关于部署分布式kafka集群的主要内容,如果未能解决你的问题,请参考以下文章

zookeeper集群+kafka集群 部署

Kafka集群部署

kafka集群部署文档(转载)

apache-kafka集群部署

kafka单机和集群(全分布)的安装部署过程

kafka集群管理工具kafka-manager部署安装