脚本代码:
#!/bin/bash
case $1 in
"start"){
for i in hadoop01 hadoop02 hadoop03
do
echo "-----------$i Kafka start------------------"
ssh $i "/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties"
done
};;
"stop"){
for i in hadoop01 hadoop02 hadoop03
do
echo "-----------$i Kafka stop------------------"
ssh $i "/opt/kafka/bin/kafka-server-stop.sh "
done
};;
esac
问题:脚本启动,查看进程,没有Kafka进程,查看kafka/logs/server.log没有任何反应
解决方法:
1、先测试 ssh hadoop02 "which java" 是否有反应
如果显示no found,需要下面的配置
2、需要配置 vim ~/.bashrc
添加代码:
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
将.bashrc文件分发到其他节点上
3、继续测试 ssh hadoop02 "which java" 成功后重启脚本,看进程是否存在
其他方法:
检查broker.id是否不一致
zookeeper.connect是否正确
Kafka的环境变量
参考:https://www.cnblogs.com/ttzz/p/13355567.html
登录式Shell,采用用户名比如xxx登录,会自动加载/etc/profile
非登录式Shell,采用ssh比如ssh hadoop103登录,不会自动加载/etc/profile,会自动加载~/.bashrc
版权声明:本文为weixin_45721882原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。