美文网首页
Centos7集群常用命令

Centos7集群常用命令

作者: Yobhel | 来源:发表于2023-10-26 13:54 被阅读0次

    一、xsync集群分发脚本

    需求

    循环复制文件到所有节点的相同目录下

    分析

    • rsync命令原始拷贝:
    rsync -av /opt/module root@hadoop102:/opt/
    
    • 期望脚本:期望脚本xsync要同步的文件名称
    • 说明:在/home/yobhel/bin这个目录下存放的脚本,yobhel用户可以在系统任何地方直接执行。

    实现

    • 在用的家目录/home/yobhel下创建bin文件夹
    [yobhel@hadoop101 ~]$ mkdir bin
    
    • 在/home/yobhel/bin目录下创建xsync文件,以便全局调用
    [yobhel@hadoop101 ~]$ cd /home/yobhel/bin
    [yobhel@hadoop101 ~]$ vim xsync
    

    在该文件中编写如下代码

    #!/bin/bash
    #1. 判断参数个数
    if [ $# -lt 1 ]
    then
      echo Not Enough Arguement!
      exit;
    fi
    #2. 遍历集群所有机器
    for host in hadoop101 hadoop102 hadoop103
    do
      echo ====================  $host  ====================
      #3. 遍历所有目录,挨个发送
      for file in $@
      do
        #4 判断文件是否存在
        if [ -e $file ]
        then
          #5. 获取父目录
          pdir=$(cd -P $(dirname $file); pwd)
          #6. 获取当前文件的名称
          fname=$(basename $file)
          ssh $host "mkdir -p $pdir"
          rsync -av $pdir/$fname $host:$pdir
        else
          echo $file does not exists!
        fi
      done
    done
    
    • 修改脚本xsync具有执行权限
    [yobhel@hadoop101 bin]$ chmod +x xsync
    
    • 测试脚本
    [yobhel@hadoop101 bin]$ xsync xsync
    

    二、Hadoop群起脚本

    [yobhel@hadoop101 bin]$ pwd
    /home/yobhel/bin
    [yobhel@hadoop101 bin]$ vim hdp.sh
    

    输入如下内容:

    #!/bin/bash
    if [ $# -lt 1 ]
    then
        echo "No Args Input..."
        exit ;
    fi
    case $1 in
    "start")
            echo " =================== 启动 hadoop集群 ==================="
    
            echo " --------------- 启动 hdfs ---------------"
            ssh hadoop101 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
            echo " --------------- 启动 yarn ---------------"
            ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
            echo " --------------- 启动 historyserver ---------------"
            ssh hadoop101 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
    ;;
    "stop")
            echo " =================== 关闭 hadoop集群 ==================="
    
            echo " --------------- 关闭 historyserver ---------------"
            ssh hadoop101 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"
            echo " --------------- 关闭 yarn ---------------"
            ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
            echo " --------------- 关闭 hdfs ---------------"
            ssh hadoop101 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
    ;;
    *)
        echo "Input Args Error..."
    ;;
    esac
    
    [yobhel@hadoop101 bin]$ chmod 777 hdp.sh
    

    三、ZK集群启动停止脚本

    1)在hadoop101的/home/yobhel/bin目录下创建脚本

    [yobhel@hadoop101 bin]$ vim zk.sh
    

    在脚本中编写如下内容

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

    2)增加脚本执行权限

    [yobhel@hadoop101 bin]$ chmod +x zk.sh
    

    3)Zookeeper集群启动脚本

    [yobhel@hadoop101 module]$ zk.sh start
    

    4)Zookeeper集群停止脚本

    [yobhel@hadoop101 module]$ zk.sh stop
    

    3.kafka集群启停脚本

    1)在/home/yobhel/bin目录下创建文件kf.sh脚本文件

    [yobhel@hadoop101 bin]$ vim kf.sh
    

    脚本如下:

    #! /bin/bash
    
    case $1 in
    "start"){
        for i in hadoop101 hadoop102 hadoop103
        do
            echo " --------启动 $i Kafka-------"
            ssh $i "/opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties"
        done
    };;
    "stop"){
        for i in hadoop101 hadoop102 hadoop103
        do
            echo " --------停止 $i Kafka-------"
            ssh $i "/opt/module/kafka/bin/kafka-server-stop.sh "
        done
    };;
    esac
    

    2)添加执行权限

    [yobhel@hadoop101 bin]$ chmod +x kf.sh
    

    3)启动集群命令

    [yobhel@hadoop101 ~]$ kf.sh start
    

    4)停止集群命令

    [yobhel@hadoop101 ~]$ kf.sh stop
    

    注意:停止Kafka集群时,一定要等Kafka所有节点进程全部停止后再停止Zookeeper集群。因为Zookeeper集群当中记录着Kafka集群相关信息,Zookeeper集群一旦先停止,Kafka集群就没有办法再获取停止进程的信息,只能手动杀死Kafka进程了。

    相关文章

      网友评论

          本文标题:Centos7集群常用命令

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