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)