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,已测试完美通过。 (编辑:拼字网 - 核心网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐

