加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux搭建Kafka和Zookeeper集群(非伪集群)

发布时间:2022-11-15 11:27:17 所属栏目:Linux 来源:
导读:  最近一个项目对并发和数据量的要求比较高,但是对于数据的准确性没有很强的要求,所以考虑给他们上kafkka,顺便记录下做的一些工作和遇到的问题,安装kafka必须要装zookeeper,装zookeeper必须要装jdk,安装jdk我
  最近一个项目对并发和数据量的要求比较高,但是对于数据的准确性没有很强的要求,所以考虑给他们上kafkka,顺便记录下做的一些工作和遇到的问题,安装kafka必须要装zookeeper,装zookeeper必须要装jdk,安装jdk我这就不复述了,这个应该都是基本功了,下面进入主题。
 
  zookeeper安装部署
 
  再次强调:必须安装java环境,最好1.8版本的jdk,配好环境变量;
 
  准备环境
 
  先准备三台Linux服务器,我这准备的是三台阿里云服务器,低端配置:
 
  (以下IP为杜撰,仅供参考,如有雷同,纯属巧合,下同)
 
  内网外网
 
  172.10.10.9947.11.19.219
 
  172.10.10.9847.11.18.218
 
  172.10.10.9747.11.17.217
 
  zookeeper安装包:zookeeper-3.4.14.tar
 
  下载地址:
 
  安装zookeeper
 
  先把安装包拷入Linux系统中,目录为 /work/package/zookeeper-3.4.14.tar(该目录仅供参考,可自行定义)
 
  要安装的目录:/work/zookeeper-3.4.14
 
  cd /work 打开要解压的目录
 
  tar -xvf package/zookeeper-3.4.14.tar 解压文件
 
  cd zookeeper-3.4.14
 
  创建data目录??
 
  mkdir data
 
  创建log目录??
 
  mkdir log
 
  打开conf目录下
 
  cd conf
 
  复制zoo_sample.cfg为zoo.cfg??
 
  cp zoo_sample.cfg zoo.cfg
 
  打开zoo.cfg??
 
  vim zoo.cfg
 
  1、找到 dataDir 修改它的值为
 
  dataDir=/work/zookeeper-3.4.14/data
 
  2、并在下面加dataLogDir路径
 
  dataLogDir=/work/zookeeper-3.4.14/log
 
  3、在文件末尾加集群配置:(注意是内网地址)
 
  server.1=172.10.10.99:2188:3188
 
  server.2=172.10.10.98:2188:3188
 
  server.3=172.10.10.97:2188:3188
 
  常规操作,按ESC退出编辑模式,输入 :wq 保存退出文件
 
  cd .. 退出到上级目录
 
  touch data/myid data目录下新建myid文件
 
  echo 1 data/myid myid文件输入1 若cat没值 试试下面的
 
  或者 vim data/myid
 
  输入1
 
  按ESC退出编辑模式,输入 :wq 保存退出文件
 
  第一台服务器zookeeper安装结束。
 
  你可以复制一份刚刚改好的zookeeper到第二台和第三台机器,并且删掉刚刚新建的myid文件,重新按照同样的方法创建myid ,第二台的值为 2 ,第三台的值为 3,或者重复开始的工作,从头开始。
 
  温馨提示:
 
  启动zookeeper前请关闭使用的端口防火墙,或者在安全组添加端口的入口。
 
  cd /work/zookeeper-3.4.14/bin 进入zookeeper bin目录下
 
  ./zkServer.sh start zookeeper启动,显示STARED即为启动成功
 
  ./zkServer.sh status zookeeper状态查看,显示leader或者follower,三台只有一个为leader,其余俩为follower
 
  ./zkServer.sh stop zookeeper停止,显示STOP即为停止
 
  服务器的zookeeper已经完成部署。我们要开始安装kafka了。
 
  若遇到启动提示 拒绝链接的,请看下配置的集群地址是否正确,一般配置内网是没有问题的。
 
  kafka安装部署
 
  前提:在已经安装好zookeeper并且已经启动的情况下才能启动kafka。
 
  还是之前的那3台服务器。
 
  安装kafka
 
  先把安装包拷入Linux系统中,目录为 /work/package/kafka_2.11-2.1.1.tar
 
  要安装的目录:/work/kafka_2.11-1.1.1
 
  cd /work
 
  tar -xvf package/kafka_2.11-2.1.1.tar
 
  cd kafka_2.11-1.1.1
 
  集群linux_集群linux_用heartbeat配置linux高可用性集群
 
  mkdir logs
 
  cd config
 
  vim server.properties
 
  打开server.properties后编辑此配置文件,修改部分属性为:(以第一台机器为例)
 
  1、broker的ID??
 
  broker.id=1 (第二台为2,第三台为3,切勿重复)
 
  2、以下地址最好填写内网地址,保障内网能使用,外网地址需要其他设置才能使用。??
 
  listeners=PLAINTEXT://172.10.10.99:9092
 
  advertised.listeners=PLAINTEXT://172.10.10.99:9092 同上
 
  3、log路径??
 
  log.dirs=/work/kafka_2.11-1.1.1/logs
 
  4、zookeeper集群地址??
 
  zookeeper.connect=172.10.10.99:2181,172.10.10.98:2181,172.10.10.97:2181
 
  修改完后将此kafka_2.11-1.1.1复制一份到第二台第三台机器,或者重新安装一次
 
  配置修改参照第一台
 
  配置完事,可以启动kafka了。
 
  kafka启动
 
  cd /work/kafka_2.11-1.1.1
 
  ./bin/kafka-server-start.sh config/server.properties
 
  此种方式启动kafka日志会直接打印到控制台,并且kafka不会再后台运行,关闭日志打印界面kafka就停掉了,可用来查看是否启动成功,没问题我们用下面的命令:
 
  ./bin/kafka-server-start.sh config/server.properties 1>/dev/null 2>&1 &
 
  其中1>/dev/null 2>&1 是将命令产生的输入和错误都输入到空设备,也就是不输出的意思。/dev/null代表空设备。
 
  每次输入此命令很麻烦,可以写一个shell脚本启动,新建一个文件为start.sh,然后输入一下命令:
 
  #!/bin/bash
 
  ./bin/kafka-server-start.sh config/server.properties 1>/dev/null 2>&1 &
 
  将此文件拷贝至/work/kafka_2.11-1.1.1 目录下即可
 
  启动,先定位到/work/kafka_2.11-1.1.1目录下,
 
  cd /work/kafka_2.11-1.1.1
 
  ./start.sh
 
  OK,启动完成!其他两台机器同理!
 
  关闭kafka,在任何目录下输入命令: ps -ef | grep kafka 查看kafka进程pid,命令下面第一行root前面的第一个数字即为pid ,用命令:kill pid同样可以杀死该进程。zookeeper同理,若关不掉就用狠点的方法直接杀死其进程,其他应用一样。
 
  至此,Kafka和zookeeper集群的安装及部署就完成了,按当前教程部署可以实现服务器内的消息发送接收,但是本地无法连接到服务器的消息队列集群linux,在考虑是否要去改成外网也能访问的模式,个人觉得既然是线上的环境,不应该被本地的程序介入,看以后的需求吧,本地测试用的是单机的kafka+zookeeper,部署3台服务器用jenkins,已测试完美通过。
 

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!