hadoop集群一键自动启动和自动关闭shell脚本

当我们创建haoop集群时,为了远程更加方便的ssh管理我们的集群,一般会写脚本一键启动关闭集群。

一:一键启动集群脚本  start-cluster.sh

          #!/bin/bash
        echo "-------------------正在启动集群-------- "
        echo "-------------------正在启动NameNode-------- "
        ssh admin@hadoop102 '/opt/modules/hadoop-2.5.0-cdh5.3.6/sbin/hadoop-daemon.sh start namenode'
 
          echo "-------------------正在启动secodarynamenode-------- "
        ssh admin@hadoop104 ' /opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/sbin/hadoop-daemon.sh start secondarynamenode'
        echo "-------------------正在启动datanode-------- "
        for i in admin@hadoop102  admin@hadoop103 admin@hadoop104
        do
         ssh $i '/opt/modules/hadoop-2.5.0-cdh5.3.6/sbin/hadoop-daemon.sh start datanode'
        done

        echo "-------------------正在启动yarn-------------------- "
        echo "-------------------正在启动ResourceManager-------- "
        ssh @hadoop103 '/opt/modules/hadoop-2.5.0-cdh5.3.6/sbin/yarn-daemon.sh start resourcemanager'

        echo "-------------------正在启动NodeManager-------- "
        for i in admin@hadoop102  admin@hadoop103 admin@hadoop104
        do
         ssh $i '/opt/modules/hadoop-2.5.0-cdh5.3.6/sbin/yarn-daemon.sh start nodemanager'
        done

       echo "-------------------正在启动JobHistory-------- "
        ssh admin@hadoop102 '/opt/modules/hadoop-2.5.0-cdh5.3.6/sbin/mr-jobhistory-daemon.sh start historyserver'

        echo "---------------集群已经启动完毕,请用jps检查或者浏览器检查是否成功--------

二: 一键关闭集群脚本  stop-cluster.sh
         #!/bin/bash
        echo "-------------------正在关闭JobHistory--------------- "
        ssh admin@hadoop102 '/opt/modules/hadoop-2.5.0-cdh5.3.6/sbin/mr-jobhistory-daemon.sh stop historyserver'

        echo "-------------------正在关闭yarn-------------------- "
        echo "-------------------正在关闭ResourceManager-------- "
        ssh admin@hadoop103 '/opt/modules/hadoop-2.5.0-cdh5.3.6/sbin/yarn-daemon.sh stop resourcemanager'
        echo "-------------------正在关闭NodeManager-------- "
        for i in admin@hadoop102  admin@hadoop103 admin@hadoop104
        do
         ssh $i '/opt/modules/hadoop-2.5.0-cdh5.3.6/sbin/yarn-daemon.sh stop nodemanager'
        done

         echo "-------------------正在关闭NameNode------------------- "
        ssh admin@hadoop102 '/opt/modules/hadoop-2.5.0-cdh5.3.6/sbin/hadoop-daemon.sh stop namenode'
        
         echo "-------------------正在关闭secodarynamenode-------- "
        ssh admin@hadoop104 ' /opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/sbin/hadoop-daemon.sh stop  secondarynamenode'

        echo "-------------------正在启动datanode-------- "
        for i in admin@hadoop102  admin@hadoop103 admin@hadoop104
        do
         ssh $i '/opt/modules/hadoop-2.5.0-cdh5.3.6/sbin/hadoop-daemon.sh stop datanode'
        done

       echo "---------------集群已经关闭完毕,请用jps检查或者浏览器检查是否成功-------- "


----------------------------------------------------------------------------------------------------------------------------------------------------------
补充:shell脚本这里编写的注意要点: ‘’单号号和反单引号``的区别   
                             单引号表示执行完前面的语句,然后执行单引号的里的命令
                             反引里面的字符串必须是能执行的命令,否则会出错;它的作用是命令替换,将其中的字符串当成Shell命令执行,返回命令的执行结果;
                                   echo 'date -R' >> dmeo.txt  里面是date -R
                                   echo `date -R` >> demo.txt  里面传的时间
----------------------------------------------------------------------------------------------------------------------------------------------------------
         其次执行脚本的方式:      
            有shell
                粗放来讲,你手动使用CRT登录某个Linux系统时,是有shell的。需要
            无shell
                当你使用ssh访问某个系统(如linux上的hadoop集群)的时候,是无shell的:无法加载所登录系统的系统变量的。只能加载该用户的用户变量,而一般我们的配置文件都配置在系统变量里面。所以为了使用ssh时可以加载系统变量。  所以要一般用ssh时,要把用户变量配置了,(否则高可用时不一定用的了)
                  cat /etc/profile >> ~/.bashrc/    把系统变量追加到用户变量里  。每台机器都要这样做。
                 

你可能感兴趣的:(hadoop开发相关)