小脚本,废话不多说直接来
#!/bin/bash
flag=$1
DfsOrAll=$2
#启动zookeeper
#这里 hadoop01 hadoop02 hadoop03 都是节点别名,取代ip地址,可在/etc/hosts配置
for i in hadoop01 hadoop02 hadoop03
do
echo --------------------------zookeeper $i ${flag} -------------------
ssh $i "/opt/app/zookeeper-3.4.10/bin/zkServer.sh ${flag}"
done
#启动hdfs相关
if [ ${DfsOrAll} == "hdfs" ];then
ssh root@hadoop01 "/opt/app/hadoop-2.7.2/sbin/${flag}-dfs.sh"
elif [ ${DfsOrAll} == "yarn" ];then
ssh root@hadoop02 "/opt/app/hadoop-2.7.2/sbin/${flag}-yarn.sh"
elif [ ${DfsOrAll} == "all" ];then
ssh root@hadoop01 "/opt/app/hadoop-2.7.2/sbin/${flag}-all.sh"
else
echo "无启动hdfs相关"
fi
#kafka相关
#等等
具体都在带注释里,脚本差不多,随你发挥
主要问题:
1.启动脚本跑完后,显示成功,却发现zookeeper没起来。
解决方案:在zookeeper的bin目录下找到zkEnv.sh ,在文件前几行找个位置添加java的环境变量,如下(自己的java版本可能和我的不一样,具体进入自己节点的/etc/profile看)
export JAVA_HOME=/opt/app/jdk1.8.0_181
2.运行zkServer.sh status 后报错
解决方案:有的部分节点zookeeper启动失败,找到并启动就好了