ukula 发表于 2019-1-31 10:51:50

部署分布式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(重命名只是个人习惯)
  https://s1.运维网.com/wyfs02/M02/9C/DC/wKiom1l3BH7x7VHQAABjfuLhAQw057.png-wh_500x0-wm_3-wmp_4-s_3887952385.png
https://s5.运维网.com/wyfs02/M00/9C/DD/wKiom1l3BJ6hlMQ9AAAxHw9-dag765.png
  使环境变量生效,并测试
https://s5.运维网.com/wyfs02/M01/9C/DD/wKioL1l3BMzjJ8xeAAAtX0uhbZI651.png
  3.安装配置zookeeper
https://s3.运维网.com/wyfs02/M00/9C/DD/wKioL1l3BLXCQWEMAAASQyouoTQ630.png-wh_500x0-wm_3-wmp_4-s_1914501127.png
  重命名zookeeper主配置文件,因为官方zookeeper主配文件命名规则就是zoo.cfg
  https://s2.运维网.com/wyfs02/M02/9C/DD/wKioL1l3BSGynW2gAAAmyda78YU324.png

  

  执行以下命令创建zookeeper数据目录和日志目录:
# cd zk_data/
# echo 1 > myid
# 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
  
https://s3.运维网.com/wyfs02/M00/9C/DD/wKiom1l3BZKyY9fGAAE7w4M7iWI678.png
  拷贝配置文件到其他节点。
  注意:每个节点的myid不能相同!!!!
  2.启动zookeeper集群
为zookeeper开启相应端口或关闭防火墙!!!
  在Zookeeper集群中各节点执行以下命令启动Zookeeper服务:
  zookeeper-3.4.8/bin/zkServer.sh start
https://s3.运维网.com/wyfs02/M01/9C/DD/wKiom1l3BoWizw6CAAAi6koacBE130.png
  使用jps命令查看Zookeeper进程
5607 Jps
5470 QuorumPeerMain
  Server2的主机为leader
# ./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
# ./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.解压安装包
https://s2.运维网.com/wyfs02/M01/9C/DD/wKiom1l3BxGCY0S6AAASQzf4w1Q421.png
  修改配置文件,简单配置只需要修改/config/server.properties文件即可。
  需要修改的内容:
  broker.id(标示当前server在集群中的id,唯一性);port;host.name(当前的server host name或主机ip);zookeeper.connect(连接的zookeeper集群);log.dirs(log的存储目录,需要提前创建)。
  Eg:
  https://s5.运维网.com/wyfs02/M01/9C/DD/wKioL1l3B03T4ibZAABIbsI2OEk262.png
  https://s5.运维网.com/wyfs02/M02/9C/DD/wKiom1l3B2HDy3feAAAaPTZEqiw889.png
https://s3.运维网.com/wyfs02/M00/9C/DD/wKioL1l3B33heEvfAAAVzh5Mhmk586.png
  把配置好的kafka上传到其他节点上
  for ip in 217 218 ;do scp /usr/local/kafka_2.10-0.9.0.0/config/server.properties root@192.168.1.$ip ; done
  二、
  (1).首先启动Zookeeper,之后使用一下命令启动Kafka(其他两个节点相同配置),启动成功之后会有信息提示
  出现以下信息说明启动成功
  https://s5.运维网.com/wyfs02/M00/9C/DD/wKioL1l3B-Wxqk1tAADff-AQQvc848.png
  2.对Kafka进行测试。分别创建topic,producer,consumer,最好是在不同的节点上创建。在producer的控制台上输入信息,观察consumer控制台是否能够接收到。
https://s2.运维网.com/wyfs02/M01/9C/DD/wKiom1l3CCCD2sYgAAB9MhshGuE515.png
  (server1能够收到,再看其他的)
https://s5.运维网.com/wyfs02/M01/9C/DD/wKiom1l3CIvjQYyTAAAyXHGg39c470.png
  Server2也可以
https://s1.运维网.com/wyfs02/M01/9C/DD/wKiom1l3CQDiczzQAAA0-xPrWGE984.png
  server3同样
  经过以上配置和测试,Kafka已经初步部署好了,接下来可以根据具体的需求配置和操作Kafka。
  在server2上生产消息。
  PS:出现以下提示是因为该主题没有事先创建好,配置文件中也没有开启自动创建主题,可以手动创建。
https://s3.运维网.com/wyfs02/M00/9C/DD/wKiom1l3CSPg90FIAADKBkyi1-o656.png
  去其他服务器上消费消息
https://s4.运维网.com/wyfs02/M01/9C/DD/wKiom1l3CUWjgB3YAAAsvKd21rY091.png
https://s4.运维网.com/wyfs02/M02/9C/DD/wKiom1l3CVqDTFrBAAArjYj9Y2E837.png
  OK!至此为止完整的kafka分布式集群就配置好啦~
  




页: [1]
查看完整版本: 部署分布式kafka集群