二 进击消息中间件系列:Kafka 单机与集群部署实践( 四 )


# 再次进行同步分发给其他服务器,不用再输入密码了[root@hadoop102 bin]# xsync /opt/module/kafka_2.12-3.0.0/
修改集群其他服务器的配置
分别在和上修改配置文件/opt//kafka\_2.12-3.0.0//.中的 .id=1、.id=2
注:.id 不得重复,整个集群中唯一 。更多关于消息中间件 Kafka 系列的学习文章,请参阅:消息中间件 Kafka,本系列持续更新中 。
[root@hadoop103 config]# vim server.properties修改:broker.id=1[root@hadoop104 config]# vim server.properties修改:broker.id=2
配置环境变量
#在/etc/profile.d/my_env.sh 文件中增加 kafka 环境变量配置[root@hadoop102 ~]# vim /etc/profile.d/my_env.sh#KAFKA_HOMEexport KAFKA_HOME=/opt/module/kafka_2.12-3.0.0export PATH=$PATH:$KAFKA_HOME/bin#刷新一下环境变量[root@hadoop102 ~]# source /etc/profile#分发环境变量文件到其他服务器,并source /etc/profile[root@hadoop102 ~]# xsync /etc/profile.d/my_env.sh[root@hadoop103 ~]$ source /etc/profile[root@hadoop104 ~]$ source /etc/profile
kafka启动集群
先启动集群,然后启动 Kafka 。
#先启动 Zookeeper 集群,然后启动 Kafka 。[root@hadoop102 kafka]$ zk.sh start#依次在 hadoop102、hadoop103、hadoop104 节点上启动 Kafka[root@hadoop102 kafka_2.12-3.0.0]# bin/kafka-server-start.sh -daemon config/server.properties[root@hadoop103 kafka_2.12-3.0.0]# bin/kafka-server-start.sh -daemon config/server.properties[root@hadoop104 kafka_2.12-3.0.0]# bin/kafka-server-start.sh -daemon config/server.properties
kafka关闭集群
【二进击消息中间件系列:Kafka 单机与集群部署实践】[root@hadoop102 kafka_2.12-3.0.0]$ bin/kafka-server-stop.sh [root@hadoop103 kafka_2.12-3.0.0]$ bin/kafka-server-stop.sh [root@hadoop104 kafka_2.12-3.0.0]$ bin/kafka-server-stop.sh
kafka集群启停脚本
#在/home/hadoop/bin 目录下创建文件 kf.sh 脚本文件[root@hadoop102 bin]$ vim kf.sh脚本如下:#! /bin/bashcase $1 in"start"){for i in hadoop102 hadoop103 hadoop104doecho " --------启动 $i Kafka-------"ssh $i "/opt/module/kafka_2.12-3.0.0/bin/kafka-server-start.sh -daemon /opt/module/kafka_2.12-3.0.0/config/server.properties"done};;"stop"){for i in hadoop102 hadoop103 hadoop104doecho " --------停止 $i Kafka-------"ssh $i "/opt/module/kafka_2.12-3.0.0/bin/kafka-server-stop.sh "done};;esac
添加执行权限
[root@hadoop102 bin]$ chmod +x kf.sh
启动集群命令
[root@hadoop102 ~]$ kf.sh start
停止集群命令
[root@hadoop102 ~]$ kf.sh stop
注意:停止Kafka集群时,一定要等Kafka所有节点进程全部停止后,再停止集群 。因为集群当中记录着Kafka集群相关信息,集群一旦先停止,Kafka集群就没有办法再获取停止进程的信息,只能手动杀死Kafka进程了 。更多关于消息中间件 Kafka 系列的学习文章,请参阅:消息中间件 Kafka,本系列持续更新中 。
Kafka 集群中,,HW
集群中谁来充当?
每个启动会向zk创建一个临时序号节点,获得的序号最小的那个将会作为集群的
作用
1.负责管理整个集群的分区和副本,当挂了之后,它可以从ISR中找到下一个中的分区副本作为新(选举新的) 。
2.当宕机后会将消息传递给其他分区副本(本质就是zk,感受ISR集合的变化并且传递变化消息——>利用watch机制观察ISR集合的节点) 。