话不多说,直接上脚本。
启动hadoop:
#!/bin/sh
#start hdfs
echo "hdfs is starting..."
ssh hadoop102 "/opt/module/hadoop-2.7.2/sbin/start-dfs.sh"
#start yarn
echo "yarn is starting..."
ssh hadoop103 "/opt/module/hadoop-2.7.2/sbin/start-yarn.sh"
这里需要注意我的主节点是hadoop102,子节点是hadoop103和hadoop104 hdfs在102上,yarn在103上。
关闭hadoop:
#!/bin/sh
#stop yarn
echo "yarn is stoping..."
ssh hadoop103 "/opt/module/hadoop-2.7.2/sbin/stop-yarn.sh"
#stop hdfs
echo "hdfs is stoping..."
ssh hadoop102 "/opt/module/hadoop-2.7.2/sbin/stop-dfs.sh"
echo "hadoop is stopped"
启动zookeeper
#!/bin/sh
for i in root@hadoop102 root@hadoop103 root@hadoop104
do
echo "the zookeeper in $i is start..."
ssh $i "source /etc/profile;/opt/module/zookeeper-3.4.10/bin/zkServer.sh start"
done
关闭zookeeper
#!/bin/bash
for i in root@hadoop102 root@hadoop103 root@hadoop104
do
echo "the zookeeper in $i is stop..."
ssh $i "source /etc/profile;/opt/module/zookeeper-3.4.10/bin/zkServer.sh stop"
done
这里需要注意必须要source一下/etc/profile,因为zookeeper依赖于jdk,但是ssh登录并不读取jdk环境变量所在文件,所以source一下可以读取到JAVA_HOME.
一键查看所有节点的进程
#!/bin/sh
for i in root@hadoop102 root@hadoop103 root@hadoop104
do
echo "===================== $i ======================="
ssh $i '/opt/module/jdk1.8.0_144/bin/jps'
done
我们可以echo一下PATH
/usr/local/bin已经是在path里面的,所以我们可以将以上所有的脚本都放在这里目录下,这样不管我们在哪个目录执行都可以运行这些脚本了。