shell脚本一键启动hadoop,zookeeper以及jps查看全部节点

    科技2022-07-11  93

    话不多说,直接上脚本。

    启动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里面的,所以我们可以将以上所有的脚本都放在这里目录下,这样不管我们在哪个目录执行都可以运行这些脚本了。

    Processed: 0.020, SQL: 8