1.搭建kafka集群(我是3台虚拟机分别为n1,n2,n3)
1.将kafka的安装包上传到虚拟机,并解压(这里我用的是kafka2.12版本)
cd /export/software
tar -zxvf kafka_2.12-2.4.1.tgz -C ../server/
配置软连接
cd /export/server
ln -s kafka_2.12-2.4.1 kafka
2.修改server.properties
cd /export/server/kafka/config
vim server.properties
# 指定broker的id
broker.id=0
#指定kafka的绑定监听的地址(域名通过cat /etc/hosts 查看)
listeners=PLAINTEXT://xxx(域名):9092
#指定kafka数据的位置
log.dirs=/export/server/kafka/data
# 配置zk的三个节点(分别为n1n2n3域名)
zookeeper.connect=xxxn1:2181,xxxn2:2181,xxxn3:2181
3.将安装好的kafka复制到另外两台服务器
cd /export/server
scp -r kafka_2.12-2.4.1/ n2:$PWD
scp -r kafka_2.12-2.4.1/ n3:$PWD
在 n2 和 n3 分别配置 软连接
cd /export/server
scp -r kafka_2.12-2.4.1/ n2:$PWD
scp -r kafka_2.12-2.4.1/ n3:$PWD
修改另外两个节点的broker.id分别为1和2
---------n2.itcast.cn--------------
cd /export/server/kafka/config
vim server.properties
broker.id=1
listeners=PLAINTEXT://n2xxx:9092
--------n3.itcast.cn--------------
cd /export/server/kafka/config
vim server.properties
broker.id=2
listeners=PLAINTEXT://n3xxx:9092
4.配置KAFKA HOME环境变量
vim /etc/profile
内容如下:
#KAFKA_HOME
export KAFKA_HOME=/export/server/kafka
export PATH=:$PATH:${KAFKA_HOME}
加载环境变量
source /etc/profile
其他的两个节点也是一样的处理
5.启动服务器(前台方法与后台方法)
5.1前台方法
# 启动ZooKeeper
cd /export/server/zookeeper/bin
./zkServer.sh start
对n2,n3同样操作(3台机子的zookeeper都要启动)
# 启动Kafka
cd /export/server/kafka
./kafka-server-start.sh ../config/server.properties
对n2,n3同样操作(3台机子的kafka都要启动)
这个方法会占用前台页面,如要操作需要再开一个窗口,好处就是能直接看到有没报错,建议先用前台打开,如果没有报错再采用后台方法,按住ctrl c 关闭前台
5.2后台方法(同样3台虚拟机都要启动)
此处kafka 2>&1 代表如果有报错,会把报错报错信息重定向到日志里面,方便查看错误(可以不加,建议加上)
# 启动ZooKeeper
nohup bin/zookeeper-server-start.sh config/zookeeper.properties &
# 启动Kafka
cd /export/server/kafka
nohup bin/kafka-server-start.sh config/server.properties 2>&1 &
# 测试Kafka集群是否启动成功 :
使用 jps 查看各个节点 是否出现有kafka
或者通过 zookeeper查看 brokers节点目录下, 是否有三个ids
6.kafka一键启动/关闭脚本
为了方便将来进行一键启动、关闭Kafka,我们可以编写一个shell脚本来操作。将来只要执行一次该脚本就可以快速启动/关闭Kafka。(新手建议多利用命令进行开关,熟练后可以通过脚本一键开启关闭)
6.1.在节点1中创建 /export/onekey 目录
cd /export/onekey
6.2.准备slave配置文件,用于保存要启动哪几个节点上的kafka(n1,n2.n3域名)
n1.cn
n2.cn
n3.cn
6.3.编写start-kafka.sh脚本
vim start-kafka.sh
cat /export/onekey/slave | while read line
do
{
echo $line
ssh $line "source /etc/profile;export JMX_PORT=9988;nohup ${KAFKA_HOME}/bin/kafka-server-start.sh ${KAFKA_HOME}/config/server.properties >/dev/nul* 2>&1 & "
}&
wait
done
6.4.编写stop-kafka.sh脚本
vim stop-kafka.sh
cat /export/onekey/slave | while read line
do
{
echo $line
ssh $line "source /etc/profile;jps |grep Kafka |cut -d' ' -f1 |xargs kill -s 9"
}&
wait
done
6.5.给start-kafka.sh、stop-kafka.sh配置执行权限
chmod u+x start-kafka.sh
chmod u+x stop-kafka.sh
6.6.执行一键启动、一键关闭(注意:一键启动前需要先把zookeeper启动,因为这里我没配,有能力的可以模仿这个代码把zookeeper也弄了)
./start-kafka.sh
./stop-kafka.sh