安徽十一选五

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

    RHEL自动安装Zookeeper的shell脚本

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

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

    安徽十一选五 www.p122k.cn A:本脚本运行的机器,Linux RHEL6

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

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

    $ ./install_zookeeper

    前提:

    B, C, D机器必须配置好repo,安徽十一选五,本脚本使用的是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脚本的方法都有一定的了解了吧,好了,如果大家还想了解更多的资讯,那就赶紧点击安徽十一选五吧。

    本文来自装机员安徽十一选五 www.p122k.cn如需转载请注明!

    Tag标签| RSS订阅 | 网站地图
    装机员系统之家提供安徽十一选五xp系统下载、win7系统下载、最新Windows10系统下载,专为装机修机员奉上最好的软件、系统、U盘pe、安徽十一选五平台
    请勿发布违反国家法律法规的内容,会员观点不代表本站立场.本站发布的系统与软件仅为个人学习测试使用,请在下载后24小时内删除,不得用于任何商业用途,
    否则后果自负,请支持购买微软正版软件! 如侵犯到您的权益,请及时通知我们,我们会及时处理。 粤ICP备15116662号
  • 马克思主义何以改变人类历史发展进程 2018-12-19
  • 赋予妇女更多权利!沙特首次向女性发驾照 2018-12-19
  • 人民网发布2017企业社会责任报告 热衷搭平台成企业履责新特色 2018-12-18
  • 2018——一起同行 拥抱希望 2018-12-17
  • 人为财死鸟为食亡,看起来很朴素的道理。所谓领袖,就是能把各向异性的人为财死的行为变为各向同性的人为志亡的行动,基础就是靠着为人提供安居乐业的机会,让人不再有分散 2018-12-16
  • 现代都市的繁华和诱惑 Elie Saab2016秋冬高定发布 2018-12-16
  • [网连中国]赛龙舟 包粽子 办诗会……全国各地品民俗迎端午 2018-12-15
  • 楼市下半年或持续降温 房地产长效机制加速推进 2018-12-15
  • 专家:便血是结直肠癌常见症状 应高度重视及时检查 2018-12-14
  • 不忘初心继续前进——七集政论专题片 2018-12-12
  • 【诗会马克思】第四期 :《怪影》节选 2018-12-12
  • [鄙视]江湖片子又脑残瞎举例了,尔幼稚到连“顺应民心就是人民主导”这个简单的道理都不懂?! 2018-12-10
  • 【両会】第13期全人代第1回会議、北京で閉幕 2018-12-09
  • 今年西安新登记市场主体突破200000户 2018-12-09
  • 面向新时代的政治宣言和行动纲领 2018-12-08
  • 197| 778| 780| 219| 886| 554| 140| 798| 364| 857|