1、第一步
以Root账户为例:
cd /usr/local/bin
创建各个脚本名称如:群起脚本
touch startcluster.sh
(注意:如果是用远程连接工具如notepad++,可能会报错-bash: ./bin/start.sh: /bin/bash^M: bad interpreter: No such file or directory
问题原因: 文件的格式是dos,修改为unix 就好啦
解决方法:查看文件格式 用vim 打开出错的文件 按 ESC键 再按shift+冒号 输入 set ff=unix 回车
验证方法:可以按 shift + 冒号 set ff 查看是否为 fileformat=unix )
2、第二步
① 编写群起脚本
#!/bin/bash
echo "================ 开始启动所有节点服务 ==========="
echo "================ 正在启动Zookeeper ==========="
for i in root@hadoop1 root@hadoop2 root@hadoop3
do
ssh $i '/opt/module/zookeeper/bin/zkServer.sh start'
done
echo "================ 正在启动HDFS ==========="
ssh root@hadoop1 '/opt/module/cdh/hadoop-2.5.0-cdh5.3.6/sbin/start-dfs.sh'
echo "================ 正在启动YARN ==========="
ssh root@hadoop2 '/opt/module/cdh/hadoop-2.5.0-cdh5.3.6/sbin/start-yarn.sh'
echo "================ 正在开启JobHistoryServer ==========="
ssh root@hadoop1 '/opt/module/cdh/hadoop-2.5.0-cdh5.3.6/sbin/mr-jobhistory-daemon.sh start historyserver'
② 群关脚本
#!/bin/bash
echo "================ 开始关闭所有节点服务 ==========="
echo "================ 正在关闭Zookeeper ==========="
for i in root@hadoop1 root@hadoop2 root@hadoop3
do
ssh $i '/opt/module/zookeeper/bin/zkServer.sh stop'
done
echo "================ 正在关闭HDFS ==========="
ssh root@hadoop1 '/opt/module/cdh/hadoop-2.5.0-cdh5.3.6/sbin/stop-dfs.sh'
echo "================ 正在关闭YARN ==========="
ssh root@hadoop2 '/opt/module/cdh/hadoop-2.5.0-cdh5.3.6/sbin/stop-yarn.sh'
echo "================ 正在关闭JobHistoryServer ==========="
ssh root@hadoop1 '/opt/module/cdh/hadoop-2.5.0-cdh5.3.6/sbin/mr-jobhistory-daemon.sh stop historyserver'
~
③ 查看jps
#!/bin/bash
for i in root@hadoop1 root@hadoop2 root@hadoop3
do
echo "=========$i========"
ssh $i '/opt/module/jdk1.8.0_112/bin/jps'
done
3、第三步
给各脚本赋执行权限:
如查看jps脚本赋权限:
chmod a+x util.sh