编写kafka启动脚本
1.在hadoop的~目录下创建一个空文件kk.sh,编辑kk.sh
#!/bin/bash
case $1 in
"start"){
for i in hadoop102 hadoop103 hadoop104
do
echo ---------- kafka $i 启动 ------------
ssh $i "/opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties"
done
};;
"stop"){
for i in hadoop102 hadoop103 hadoop104
do
echo ---------- kafka $i 停止 ------------
ssh $i "/opt/module/kafka/bin/kafka-server-stop.sh"
done
};;
esac
2.给kk.sh赋权,并将文件移至/bin目录下,使命令在任何地方都可以用
3.启动kafka
编写zookeeper启动脚本
1.在hadoop的~目录下创建一个空文件zk,编辑zk
#!/bin/bash
case $1 in
"start"){
for i in hadoop102 hadoop103 hadoop104
do
echo ---------- zookeeper $i 启动 ------------
ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh start"
done
};;
"stop"){
for i in hadoop102 hadoop103 hadoop104
do
echo ---------- zookeeper $i 停止 ------------
ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh stop"
done
};;
"status"){
for i in hadoop102 hadoop103 hadoop104
do
echo ---------- zookeeper $i 状态 ------------
ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh status"
done
};;
esac
2.给zk赋权,并将文件移至/bin目录下,使命令在任何地方都可以用。
3.启动zookeeper
!!!一定先启动zk,在启动kafka
出现错误解决方法
-bash: /usr/bin/kk.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录
原因:
当脚本文件在windows下编辑过,windows下每一行的结尾是\n\r,而在linux下文件的结尾是\n,那么你在windows下编辑过的文件在linux下打开看的时候每一行的结尾就会多出来一个字符\r,
用cat -A filename时你可以看到这个\r字符被显示为^M
解决方法:
sed -i ‘s/\r$//’ kk.sh