配置zookeeper启动脚本的前提是hadoop集群配置完成,因为配置集群中会修改/etc/hosts文件,此shell脚本中会用到修改后的主机名
1.创建zkstart.sh脚本:
vi zkstart.sh
在哪创建都一样,我的是放在了zookeeper的bin目录下,记得配置好环境变量
2.脚本内容:
age="Usage: $0 (start|stop|status)"
if [ $# -lt 1 ]; then
echo $usage
exit 1
fi
behave=$1
echo "$behave zkServer cluster"
#主机名称
for i in 1 2 3 4
do
#使用ssh进行启动
ssh songnode$i "/home/zookeeper/zk/bin/zkServer.sh $behave"
done
exit
讲解一下:
因为我的主机名,所以进行ssh的时候前面写相同的,for循环参数是后面不同的数字。behave参数是你启动的时候传的参数:(start|stop|status)
3.修改权限
chmod u+x zkstart.sh
脚本需要有执行权限
4.启动
确保你的环境变量已经配好
zkstart.sh start
问题:
有的人当你start之后发现成功了,但是在你status的时候发现并没有启动,而且jps也没有进程
那是因为你出现了shell和非shell不同导致环境问题
解决:
在zookeeper的bin目录下修改zkEnv.sh文件
vi zkEnv.sh
在开头添加上你的jdk环境变量,而且每一个节点都要添加!!注意
之后再查看就完美了