1、编写运行脚本
[root@centos110 user]# cd /etc/init.d/
vim hadoop_service
#!/bin/bash
export JAVA_HOME=/opt/apps/jdk1.8.0_301
export PATH=$PATH:$JAVA_HOME/bin
#服务器列表(IP)
IPS=('centos110' 'centos112' 'centos113')
####检查所有服务器是否启动->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;
####在当前服务器启动hadoop集群
/opt/apps/hadoop-3.1.3/sbin/start-all.sh &>/dev/null
echo 'hadoop 启动成功!'
####在当前服务器启动spark集群
/opt/apps/spark-3.0.1/sbin/start-spark-all.sh &>/dev/null
echo 'spark 启动成功!'
####在当前服务器启动hive
nohup /opt/apps/hive-3.1.2/bin/hive --service metastore > metastore.log 2>&1 &
echo 'hive 启动成功!'
####通过远程连接的方式启动各服务器的zookeeper,tag=1表示全部启动
tag=0
while true
do
for ip in ${IPS[@]}
do
ssh -t root@$ip sh /etc/init.d/zookeeper start &>/dev/null
if [ $? -ne 0 ]; then
echo $ip+'节点zk未启动'
break;
else
tag=1
fi
done
if [ $tag -eq 1 ]; then
echo 'zk 启动成功!'
break;
fi
done
####通过远程连接的方式在其他的服务器上启动hbase
ssh root@centos112>/dev/null 2>&1 <<eeooff
/usr/lib/hbase/hbase/bin/start-hbase.sh
exit
eeooff
echo 'hbase 启动成功!'
2、可执行权限
chmod +x hadoop_service
3、测试
./hadoop_service
4、配置开机自启
查看开机自启动服务列表
chkconfig --list
将hadoop_service添加到开机自启列表
[root@centos110 init.d]# chkconfig --add hadoop_service
开机hadoop_service开机自启服务
[root@centos110 init.d]# chkconfig hadoop_service on
查看开机自启动服务列表
[root@centos110 init.d]# chkconfig --list
hadoop_service 0:off 1:off 2:on 3:on 4:on 5:on 6:off
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off