新疆福彩35选7

  • 热门搜索:
  • 装机系统
  • 雨林木风系统
  • 深度系统
  • 电脑公司系统
  • win7装机版
  • 教程分类

    RHEL自动安装Zookeeper的shell脚本

    来源:装机员┆发布时间:2018-02-13 11:00┆点击:

    装机员为您提供RHEL自动安装Zookeeper的shell脚本的文章咨询供您阅读,如何使用RHEL自动安装Zookeeper的shell脚本的方法对您有帮助也请您举手之劳分享给您身边的人。

    新疆福彩35选7 www.22kc.com.cn A:本脚本运行的机器,Linux RHEL6

    B,C,D,...:待安装zookeeper cluster的机器, Linux RHEL6

    首先在脚本运行的机器A上确定可以ssh无密码登录到待安装zk的机器B,C,D,...上,然后就可以在A上运行本脚本:

    $ ./install_zookeeper

    前提:

    B, C, D机器必须配置好repo,新疆福彩35选7,本脚本使用的是cdh5的repo, 下面的内容保存到:/etc/yum.repos.d/cloudera-cdh5.repo:

    [cloudera-cdh5]
    # Packages for Cloudera's Distribution for Hadoop, Version 5, on RedHat or CentOS 6 x86_64
    name=Cloudera's Distribution for Hadoop, Version 5
    baseurl=//archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/5/
    gpgkey =    
    gpgcheck = 1
    enabled  = 1

    自动安装脚本将自动在B,C,D机器上安装好zookeeper, 配置好相关配置文件。但没有启动它们。支持1,3,5,7个服务器。

    #!/bin/bash
    #
    # @file
    #  install_zookeeper.sh
    #
    # @date
    #  2014-12-21
    #
    # @author
    [email protected]
    #
    # @version
    #  0.0.1pre
    #
    # @usage
    #  ./install_zookeeper.sh
    ################################################################################

    #***********************************************************
    # split_to_array
    #  split string into array
    #***********************************************************
    function split_to_array() {
        OLD_IFS="$IFS"
        IFS="$2"
        array=($1)
        IFS="$OLD_IFS"
    }


    #***********************************************************
    # install_zookeeper
    #  install zookeeper on 1, 3 or 5 servers
    #
    # Parameters:
    #  clientPort - the port at which the clients will connect to
    #  servers - varying arguments: 1, 3, 5, up to 7
    #    "zkServer:serverPort:appPort"
    #    zkServer - ipaddr of zookeeper server
    #    serverPort - communication port for zookeeper servers
    #    appPort - communication port between zookeeper with other applications
    #
    # Example:
    #  1) install_zookeeper 2181 zk1 zk2 zk3
    #  2) install_zookeeper 2181 192.168.122.201 192.168.122.202 192.168.122.203
    #  3) install_zookeeper "2181" "192.168.122.201:2888:3888" "192.168.122.202:2888:3888" "192.168.122.203:2888:3888"
    #  4) install_zookeeper "2181:/var/lib/zookeeper" "192.168.122.201:2888:3888" "192.168.122.202:2888:3888" "192.168.122.203:2888:3888"
    #***********************************************************
    ERR_INVALID_ZK_SERVERS=1001

    function install_zookeeper() {
        echo -e "<INFO> install zookeeper on cluster ..."
        #chk_root

    local ret clientPort dataDir len i ZOO_CFG server serverPort appPort destip destlogin

    serverPort=2888
        appPort=3888

    # parse the first argument
        split_to_array $1 ":"

    # the port at which the clients will connect
        clientPort=${array[0]}

    # the directory where the snapshot is stored
        dataDir="/var/lib/zookeeper"
        if [ ${#array[*]} -eq 2 ]; then
            dataDir=${array[1]}
        fi

    echo -e "<INFO> clientPort: $clientPort"
        echo -e "<INFO> dataDir: $dataDir"

    # zookeeper configure file
        ZOO_CFG="/usr/lib/zookeeper/conf/zoo.cfg"

    # get list of servers: args
        shift
        local argc=$#

    if [ $argc -eq 1 -o $argc -eq 3 -o $argc -eq 5 -o $argc -eq 7 ]; then
            echo -e "<INFO> zookeeper servers in cluster: [$argc]"
        else
            echo -e "<ERROR> invalid zookeeper servers: [$argc]"
            exit $ERR_INVALID_ZK_SERVERS;
        fi

    local argv="[email protected]"

    OLD_IFS="$IFS"
        IFS=" "
        local args=($argv)
        IFS="$OLD_IFS"

    # array variable
        local ipaddrs=()
        local servers=()

    local sid=0
        for a in ${args[@]}
        do
            let sid++

    # check if server format is either of:
            #  serverIP
            # or:
            #  serverIP:serverPort:appPort
            split_to_array $a ":"
            serverIP=${array[0]}

    if [ ${#array[*]} -ne 3 ]; then
                a="$serverIP:$serverPort:$appPort";
            fi

    local server="server.$sid=$a"
            servers[sid-1]=$server
            echo $server

    ipaddrs[sid-1]=$serverIP
        done

    # output array to one line string: echo ${servers[@]}
        # get length of array
        len=${#servers[*]}
        i=0
        while [ $i -lt $len ]
        do
            let sid=i+1
            destip=${ipaddrs[$i]}
            [email protected]$destip
            echo -e "<INFO> configuring server.$sid: $destip ...\c"

    ret=`ssh $destlogin "yum install -y zookeeper zookeeper-server && service zookeeper-server init --myid=$sid"`

    ret=`ssh $destlogin "echo '#!{{[email protected]==>' >> $ZOO_CFG"`

    for s in ${servers[*]}
            do
                ret=`ssh $destlogin "echo '$s' >> $ZOO_CFG"`
            done

    ret=`ssh $destlogin "echo '#!<[email protected]}}' >> $ZOO_CFG"`

    echo -e "OK."

    let i++
        done

    echo "<INFO> zookeeper cluster installation completed successfully!"
    }

    #=======================================================================
    install_zookeeper "2181" "192.168.122.201" "192.168.122.202" "192.168.122.203"

    根据配置修改最后一行:

    install_zookeeper "2181" "192.168.122.201" "192.168.122.202" "192.168.122.203"

    注意:需要把zk-cluster的每台机器上的防火墙停掉,再启动zookeeper:

    $ /usr/lib/zookeeper/bin/zkServer.sh start-foreground

    --------------------------------------分割线 --------------------------------------

    ZooKeeper集群配置

    使用ZooKeeper实现分布式共享锁

    分布式服务框架 ZooKeeper -- 管理分布式环境中的数据

    ZooKeeper集群环境搭建实践

    ZooKeeper服务器集群环境配置实测

    ZooKeeper集群安装

    --------------------------------------分割线 --------------------------------------


    以上就是装机员给大家介绍的如何使用RHEL自动安装Zookeeper的shell脚本的方法了,如何使用RHEL自动安装Zookeeper的shell脚本的方法到这里也全部结束了相信大家对如何使用RHEL自动安装Zookeeper的shell脚本的方法都有一定的了解了吧,好了,如果大家还想了解更多的资讯,那就赶紧点击新疆福彩35选7吧。

    本文来自装机员新疆福彩35选7 www.22kc.com.cn如需转载请注明!

    Tag标签| RSS订阅 | 网站地图
    装机员系统之家提供新疆福彩35选7xp系统下载、win7系统下载、最新Windows10系统下载,专为装机修机员奉上最好的软件、系统、U盘pe、新疆福彩35选7平台
    请勿发布违反国家法律法规的内容,会员观点不代表本站立场.本站发布的系统与软件仅为个人学习测试使用,请在下载后24小时内删除,不得用于任何商业用途,
    否则后果自负,请支持购买微软正版软件! 如侵犯到您的权益,请及时通知我们,我们会及时处理。 粤ICP备15116662号