美文网首页
hadoop集群一键启停组件命令汇总

hadoop集群一键启停组件命令汇总

作者: 等你下课_星晴 | 来源:发表于2022-11-24 23:09 被阅读0次

1.一键启停hadoop集群

#! /bin/bash
if [ $# -lt 1 ]
then
      echo "No Args Input..."
      exit ;
fi
case $1 in
"start")
        echo " =================== START Hadoop Cluster ==================="

        echo " --------------- START hdfs ---------------"
        ssh hadoop01 "/opt/module/hadoop-3.3.0/sbin/start-dfs.sh"
        echo " --------------- START yarn ---------------"
        ssh hadoop02 "/opt/module/hadoop-3.3.0/sbin/start-yarn.sh"
        echo " --------------- START historyserver ---------------"
        ssh hadoop02 "/opt/module/hadoop-3.3.0/bin/mapred --daemon start historyserver"
        ssh hadoop01
;;
"stop")
        echo " =================== STOP Hadoop Cluster ==================="

        echo " --------------- STOP historyserver ---------------"
        ssh hadoop02 "/opt/module/hadoop-3.3.0/bin/mapred --daemon stop historyserver"
        echo " --------------- STOP yarn ---------------"
        ssh hadoop02 "/opt/module/hadoop-3.3.0/sbin/stop-yarn.sh"
        echo " --------------- STOP hdfs ---------------"
        ssh hadoop01 "/opt/module/hadoop-3.3.0/sbin/stop-dfs.sh"
;;
*)
    echo "Input Args Error..."
;;
esac

给脚本权限:

chmod 777  cluster.sh

执行命令:
sh cluster.sh

2.编写所有服务器进程查看脚本

vim jpsall.sh
添加内容如下:

#!/bin/bash 
for host in hadoop102 hadoop103 hadoop104 
do 
        echo =============== $host =============== 
        ssh $host jps  
done 

赋予权限:

chmod 777 jpsall.sh

执行命令:
sh jpsall.sh

注意: 执行时报错:-bash: jps: command not found

错误原因:在shell脚本写的ssh到其他节点的时候默认是不加载配置文件的。linux并不能去找到java中jps的命令。

解决方案一:在ssh到其他节点的时候source 一下配置文件。

                         具体操作为:ssh $i “source /etc/profile;$*”

解决方案二:在ssh到其他节点的时候输入jps命令下的绝对路径。

                          在笔者的linux的jdk的绝对路径为:/opt/module/jdk1.8.0_144/bin这个目录下就有jps的命令。
                         具体操作为:ssh $i “/opt/module/jdk1.8.0_144/bin/$*”

解决方案三:在当前用户的家目录中输入命令ll -a会显示隐藏文件,修改配置文件.bashrc。

                         .bashrc 是当你登入shell时执行
                          在.bashrc里面加入source /etc/profile就行了。
                          但是这种方法不推荐,容易出错

原文链接:https://blog.csdn.net/wwg18895736195/article/details/125531860

3.zk集群启动脚本

#!/bin/bash
case $1 in
"start"){
    for i in hadoop01 hadoop02 hadoop03
    do
        echo ---------- zookeeper $i 启动 ------------
        ssh $i "source /etc/profile;/opt/module/zookeeper-3.5.7/bin/zkServer.sh start"
    done
};;
"stop"){
    for i in hadoop01 hadoop02 hadoop03
    do
        echo ---------- zookeeper $i 停止 ------------    
        ssh $i "source /etc/profile;/opt/module/zookeeper-3.5.7/bin/zkServer.sh stop"
    done
};;
"status"){
    for i in hadoop01 hadoop02 hadoop03
    do
        echo ---------- zookeeper $i 状态 ------------    
        ssh $i "source /etc/profile;/opt/module/zookeeper-3.5.7/bin/zkServer.sh status"
    done
};;
esac

4.kafka集群启动

#! /bin/bash

case $1 in
"start"){
    for i in hadoop01 hadoop02 hadoop03
    do
        echo " --------启动 $i Kafka-------"
        ssh $i "source /etc/profile;/opt/module/kafka3/bin/kafka-server-start.sh -daemon /opt/module/kafka3/config/server.properties"
    done
};;
"stop"){
    for i in hadoop01 hadoop02 hadoop03
    do
        echo " --------停止 $i Kafka-------"
        ssh $i "/opt/module/kafka3/bin/kafka-server-stop.sh stop"
    done
};;
esac

相关文章

网友评论

      本文标题:hadoop集群一键启停组件命令汇总

      本文链接:https://www.haomeiwen.com/subject/mttffdtx.html