• 搭建集群常用脚本


    rsync同步工具,编写xsync脚本

    yum install -y rsync
    
    • 1

    hostname处理:
    vim /etc/hosts

    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    
    192.168.0.81 server81
    192.168.0.82 server82
    192.168.0.83 server83
    ~                     
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    编写脚本:

    #!/bin/bash
    #1. 判断参数个数
    if [ $# -lt 1 ]
    then
        echo Not Enough Arguement!
        exit;
    fi
    
    #2. 遍历集群所有机器, 修改为自己的主机名
    #for host in managerhd.bigdata masterhd.bigdata workerhd.bigdata
    for host in server81 server82 server83
    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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    设置免登录

    cd ~/.ssh
    ssh-keygen -t rsa
    
    • 1
    • 2

    输入该命令后会有提示,一直回车即可
    如果提示 【-bash: cd: .ssh: 没有那个文件或目录】 直接 ssh-keygen -t rsa 生成密钥就行

    server82节点的公钥拷贝
    [root@server82 .ssh]# ssh-copy-id -i server82

    server83 节点的公钥拷贝
    [root@server83 .ssh]# ssh-copy-id -i server83

    免密码登录已经设定完成,注意第一次ssh登录时需要输入密码,再次访问时即可免密码登录

    集群服务器,批操作脚本

    1. zookeeper 脚本:

    在这里插入图片描述

    #!/bin/bash
    # zookeeper集群命令 
    
    if [ $# == 0 ]
    then
            echo " Not Arguement! | start | stop | status"
            exit;
    fi
    
    case $1 in
    
            "start")
                    for i in server81 server82 server83
                    do
                            echo  ------------- zookeeper $i start ------------
                            ssh $i "source /etc/profile;/opt/components/zookeeper/zookeeper-3.8.0/bin/zkServer.sh  start /opt/components/zookeeper/zookeeper-3.8.0/conf/zoo.cfg"
                    done
                    ;;
    
            "stop")
                    for i in server81 server82 server83
                    do
                            echo  ------------- zookeeper $i stop ------------
                            ssh $i "source /etc/profile;/opt/components/zookeeper/zookeeper-3.8.0/bin/zkServer.sh  stop "
                    done
                    ;;
    
            "status")
                    for i in server81 server82 server83
                    do
                            echo  ------------- zookeeper $i status ------------
                            ssh $i "source /etc/profile;/opt/components/zookeeper/zookeeper-3.8.0/bin/zkServer.sh  status "
                    done
                    ;;
    esac
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    1. Kafka 脚本
    #!/bin/bash
      
    # kafka集群命令  
    
    if [ $# == 0 ]
    then
            echo " Not Arguement! | start | stop | status "
            exit;
    fi
    
    case $1 in
    
            "start")
                    for i in server81 server82 server83
                    do
                            echo  ------------- kafka $i start ------------
                            ssh $i "source /etc/profile;/opt/components/kafka/kafka_2.13-3.2.1/bin/kafka-server-start.sh -daemon /opt/components/kafka/conf/server.properties"
                    done
                    ;;
    
            "stop")
                    for i in server81 server82 server83
                    do
                            echo  ------------- kafka $i stop ------------
                            ssh $i "source /etc/profile;/opt/components/kafka/kafka_2.13-3.2.1/bin/kafka-server-stop.sh "
                    done
                    ;;
    
            "status")
                    for i in server81 server82 server83
                    do
                            echo  ------------- kafka $i status ------------
                            ssh $i "source /etc/profile;jps | grep Kafka "
                    done
                    ;;
    
            esac
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    1. 通用脚本
    #!/bin/bash
    if [ $# == 0 ]
     then
            echo " Not Arguement! "
            exit;
    fi
    
    for host in server81 server82 server83
            do
                    echo =============== $host ===============
                    #在shell脚本写的ssh到 其他节点的时候 默认时不加载配置文件。 linux并不能去找到java中的jps命令。解决可以 先source一下
                    ssh $host  "source /etc/profile;$1"
            done
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  • 相关阅读:
    数学建模笔记-第三讲-插值
    【20-业务开发-基础业务-商品模块-分类管理-前端展示后端具有层级关系的目录数据-商品系统三级分类的逻辑删除前后端代码实现】
    跨模态神经搜索实践VCED Jina入门
    一文带你弄懂 CDN 技术的原理
    无线充,大功率小家电,智能家居,无人机快速充电等产品供电 LDR6328S芯片TYUPE-C PD诱骗电压 USB-C解决PD电源取电问题
    离散数学 --- 谓词逻辑 --- 谓词合式公式详解
    3分钟使用 WebSocket 搭建属于自己的聊天室(WebSocket 原理、应用解析)
    微服务项目:尚融宝(53)(核心业务流程:投标(1))
    Spring Boot中使用Spring Data JPA访问MySQL
    数字图像处理均衡化、规定化例题及解题思路
  • 原文地址:https://blog.csdn.net/ganquanzhong/article/details/128043946