Hadoop集群开机自启动脚本
需要设置相关的环境变量并先编写hive元数据和hiveserver2启动脚本,且调试通过
参考之前hive脚本:
创建脚本文件:touch /etc/init.d/hadoop
#!/bin/bash
#chkconfig:2345 95 96
#description:script to start/stop hadoop,flink,spark,hive,zookeeper,kafka,hbase
#引入导出环境变量
source /etc/profile.d/my_env.sh
if[ ! -f /etc/profile.d/my_env.sh ] ; then
echo "environment-variables is not set, please set it in /etc/profile.d/my_env.sh" >&2
exit 1
fi
if [ -z "$HADOOP_HOME" ] ; then
echo "environment is not set, please check it your hadoop environment" >&2
exit 1
fi
if [ $# -lt 1 ]
then
echo "Usage: $0{start|start|status}"
exit
fi
#服务器列表(IP)
IPS=(node1 node2 node3)
####检查所有服务器是否在线->tag=0表示没有全部在线,tag=1表示全部在线
while true
do
for ip in ${IPS[@]}
do
ping -c 2 $ip > /dev/null 2>&1
if [ $? -eq 0 ]; then
tag=1
echo $ip is UP
else
tag=0
echo $ip is DOWN
break;
fi;
done;
if [ $tag -eq 1 ]; then
break;
fi;
done;
case $1 in
start)
####在当前服务器启动hadoop集群
$HADOOP_HOME/sbin/start-all.sh &>/dev/null
echo hadoop start success!
####在当前服务器启动flink集群
$FLINK_HOME/bin/start-cluster.sh &>/dev/null
echo flink start success!
####在当前服务器启动spark集群
$SPARK_HOME/sbin/start-all.sh &>/dev/null
echo spark start success!
####在当前服务器启动hive
$HIVE_HOME/bin/hiveservice.sh start &>/dev/null
echo hive start success!
####通过远程连接的方式启动各服务器的zookeeper,tag=1表示全部启动
tag=0
for ip in ${IPS[@]}
do
ssh root@$ip $ZK_HOME/bin/zkServer.sh start &>/dev/null
if [ $? -ne 0 ]; then
echo $ip zookeeper start failed!
else
tag=1
fi
done
if [ $tag -eq 1 ]; then
echo zookeeper start success!
fi
sleep 3
####通过远程连接的方式启动各服务器的kafka,tag=1表示全部启动
tag=0
for ip in ${IPS[@]}
do
ssh root@$ip $KAFKA_HOME/bin/kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties
if [ $? -ne 0 ]; then
echo $ip kafka start failed!
else
tag=1
fi
done
if [ $tag -eq 1 ]; then
echo kafka start success!
fi
####通过远程连接的方式在其他的服务器上停止hbase
ssh root@node1>/dev/null 2>&1 <<eeooff
$HBASE_HOME/bin/stop-hbase.sh
exit
eeooff
echo hbase start success!
;;
stop)
####在当前服务器停止hive
$HIVE_HOME/bin/hiveservice.sh stop &>/dev/null
echo hive stop success!
####通过远程连接的方式停止各服务器的kafka,tag=1表示全部启动
tag=0
for ip in ${IPS[@]}
do
ssh root@$ip $KAFKA_HOME/bin/kafka-server-stop.sh &>/dev/null
if [ $? -eq 0 ]; then
tag=1
else
echo $ip kafka stop failed!
fi
done
if [ $tag -eq 1 ]; then
echo kafka stop success!
fi
####通过远程连接的方式在其他的服务器上停止hbase
ssh root@node1>/dev/null 2>&1 <<eeooff
$HBASE_HOME/bin/stop-hbase.sh
exit
eeooff
echo hbase stop success!
####在当前服务器停止flink集群
$FLINK_HOME/bin/stop-cluster.sh &>/dev/null
echo flink stop success!
####在当前服务器启动spark集群
$SPARK_HOME/sbin/stop-all.sh &>/dev/null
echo spark stop success!
####通过远程连接的方式停止各服务器的zookeeper,tag=1表示全部启动
tag=0
for ip in ${IPS[@]}
do
ssh root@$ip $ZK_HOME/bin/zkServer.sh stop &>/dev/null
if [ $? -eq 0 ]; then
tag=1
else
echo $ip zookeeper stop failed!
fi
done
if [ $tag -eq 1 ]; then
echo zookeeper stop success!
fi
####在当前服务器停止hadoop集群
$HADOOP_HOME/sbin/stop-all.sh &>/dev/null
echo hadoop stop success!
;;
status)
####查看所有集群的状态
$HADOOP_HOME/sbin/hadoop.sh status
;;
*)
echo "Usage:$0(start|stop|status)"
;;
esac
设置自启动:chkconfig --add hadoop 查看启动列表:chkconfig --list hadoop
开机启动运行如下:
参考网站:
上一篇:
JS实现多线程数据分片下载
下一篇:
简单的电商商品详情图片放大镜(vue)
