centos7/redhat7离线安装kafka+zookeeper集群并测试生产和消费消息

离线安装包链接:https://pan.baidu.com/s/1E74h0BH3ZYO3uxl825p-fw 
提取码:1012

本文搭建三节点kafka+zk集群(需配置JAVA环境以及ZK的环境变量)
一、下载zk安装包apache-zookeeper-3.7.0-bin.tar.gz,上传到服务器/root下
关闭selinux和防火墙

二、在第一个节点安装zk:
1.解压zk安装包:tar xvf /root/apache-zookeeper-3.7.0-bin.tar.gz -C /usr/local/
2.修改解压后的zk名:
cd /usr/local/
mv apache-zookeeper-3.7.0-bin zookeeper
3.创建zk的data和log路径:
mkdir /usr/local/zookeeper/data
4.在data文件夹下新建myid文件,添加myid的内容为1:
vi /usr/local/zookeeper/data/myid
5.拷贝一份zk的配置文件:
cd /usr/local/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
6.修改zoo.cfg:
vi  zoo.cfg
# 修改以下配置
dataDir=/usr/local/zookeeper/data
autopurge.snapRetainCount=3 #去掉注释
autopurge.purgeInterval=1 #去掉注释
# 在配置文件最底下增加如下三行,然后保存退出
server.1=10.127.0.38:2888:3888
server.2=10.127.0.39:2888:3888
server.3=10.127.0.40:2888:3888

三、在第二个、第三个节点上安装zk:
到slave1上:修改myid为:2
到slave2上:修改myid为:3

四、配置zookeeper开机自启:
vi /usr/lib/systemd/system/zookeeper.service
[Unit]
Description=Zookeeper Service unit Configuration
After=network.target

[Service]
Type=forking
Environment=JAVA_HOME=/usr/local/jdk1.8.0_311
ExecStart=/usr/local/zookeeper/bin/zkServer.sh start /usr/local/zookeeper/conf/zoo.cfg
ExecStop=/usr/local/zookeeper/bin/zkServer.sh stop
PIDFile=/usr/local/zookeeper/data/zookeeper_server.pid
KillMode=none
User=root
Group=root
Restart=on-failure
[Install]
WantedBy=multi-user.target

systemctl daemon-reload

五、安装JAVA环境以及配置ZK的环境变量:
JAVA环境配置不再说明,参考另一篇文章‘centos7/redhat7 离线安装jdk1.8’:
export JAVA_HOME=/usr/local/jdk1.8.0_311
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
ZK环境变量配置:
vi /etc/profile
export ZK_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZK_HOME/bin
使用source /etc/profile生效环境变量:source /etc/profile
vi /usr/local/zookeeper/bin/zkEnv.sh
# 在这行前(if [[ -n "$JAVA_HOME" ]] && [[ -x "$JAVA_HOME/bin/java" ]];  then)添加(JAVA_HOME=/usr/local/jdk1.8.0_311)
JAVA_HOME=/usr/local/jdk1.8.0_311
if [[ -n "$JAVA_HOME" ]] && [[ -x "$JAVA_HOME/bin/java" ]];  then

保存退出后重启zookeeper:systemctl restart zookeeper
查看zookeeper服务:systemctl status zookeeper
设置开机自启:systemctl enable zookeeper
(Zookeeper 提供了一个内嵌的Jetty容器来运行 AdminServer,默认占用的是 8080端口,如果机器上有其他程序(比如:Tomcat)占用了 8080 端口,也会导致 Starting zookeeper … FAILED TO START 的问题。可以直接在 zoo.cfg 配置文件中修改端口号即可

# admin port
admin.serverPort=9000)

六、查看集群状态:
zkServer.sh status
三个节点中,一个节点为leader,另外两个为follower,则表示集群运行成功。

kafka集群部署(三节点)
一、准备离线安装包:
去kafka官网下载zookeeper3.7.0适配的kafka:kafka_2.12-2.7.0.tgz

二、kafka集群部署:
1.将下载的压缩包放至/usr/local下,解压:
cd /usr/local
tar xvf kafka_2.12-2.7.0.tgz
mv kafka_2.12-2.7.0 kafka
2.新建文件夹存储数据文件:
cd kafka && mkdir logs
3.修改配置文件:
vi config/server.properties
# 每个broker 的id必须唯一,且每个节点不能相同
broker.id=1
#监听端口,IP需要填写,否则服务无法远程交互
listeners=PLAINTEXT://10.127.0.38:9092
# 数据存储地址
log.dirs=/usr/local/kafka/logs
# zookeeper地址
zookeeper.connect=10.127.0.38:2181,10.127.0.39:2181,10.127.0.40:2181
4.配置kafka开机自启:
vi /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka server (broker)
Documentation=http://kafka.apache.org/documentation.html
Requires=network.target remote-fs.target
After=network.target remote-fs.target zookeeper.service
[Service]
Type=simple
User=root
Group=root
Environment=JAVA_HOME=/usr/local/jdk1.8.0_311
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh
[Install]
WantedBy=multi-user.target
5.启动kafka集群:
systemctl daemon-reload
systemctl enable kafka
systemctl start kafka
6.kafka集群测试(先启动zookeeper集群,再启动kafka,再测试kafka集群):
6.1、在10.127.0.38机器中创建topic:/usr/local/kafka/bin/kafka-topics.sh --create --zookeeper 10.127.0.38:2181,10.127.0.39:2181,10.127.0.40:2181 --partitions 3 --replication-factor 3 --topic test
6.2、在10.127.0.38运行,进入生产者模式:/usr/local/kafka/bin/kafka-console-producer.sh --broker-list 10.127.0.38:9092 --topic test
6.3、在10.127.0.39和10.127.0.40机器运行,进入消费者模式:/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server 10.127.0.38:9092 --topic test --from-beginning
6.4、在10.127.0.38的生产者界面随便输入一些数字、字母等并按回车键,可以在10.127.0.39/40的消费者界面看到这些数字、字母,则表示集群搭建成功。
 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维无止境

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值