设置启动脚本
vi /etc/init.d/hadoop
#!/bin/bash
#chkconfig:35 95 1
#description:script to start/stop hadoop
case $1 in
start)
bash /usr/local/hadoop/sbin/start-all.sh
sh /usr/local/hbase-2.5.5/bin/start-hbase.sh
;;
stop)
bash /usr/local/hadoop/sbin/stop-all.sh
sh /usr/local/hbase-2.5.5/bin/stop-hbase.sh
;;
*)
echo "Usage:$0(start|stop)"
;;
esac
exit
!
sudo chmod +x /etc/init.d/hbase
chkconfig --add hbase
可能遇到的问题
Hadoop启动报错,但是在hadoop目录下可以执行
因为在脚本中使用了 sh /start-all.sh,所以我将脚本中的sh调整至bash
/bin/sh是/bin/bash的软连接,使用sh调用执行脚本相当于打开了bash的POSIX标准模式,也就是说 /bin/sh 相当于 /bin/bash --posix
hbase启动遇到的问题
在尝试运行HBase master时,发现某些slave节点(例如slave1和slave2)上的region server已经在运行,导致HBase无法正常启动。
# 针对每个奴隶节点进行操作
# slave2上的操作
kill 1694
# slave1上的操作
kill 1688
这些命令会强制终止正在运行的region server进程。在你尝试重新启动HBase之前,确保已经关闭了所有这些进程。可能是HBase配置有误,或者之前尝试启动HBase时未能成功关闭。
我这里是之前没有启动HBase成功导致的。