亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Linux Shell > 正文

Shell腳本實現自動安裝zookeeper

2020-07-27 19:08:41
字體:
來源:轉載
供稿:網友

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=http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/5/ 
gpgkey = http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera     
gpgcheck = 1 
enabled  = 1 

自動安裝腳本將自動在B,C,D機器上安裝好zookeeper, 配置好相關配置文件。但沒有啟動它們。支持1,3,5,7個服務器。

復制代碼 代碼如下:

#!/bin/bash 

# @file 
#   install_zookeeper.sh 

# @date 
#   2014-12-21 

# @author 
#   cheungmine@hgdb.net 

# @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="$@" 
 
    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]} 
        destlogin=root@$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 '#!{{install_zookeeper@hgdb.net==>' >> $ZOO_CFG"` 
 
        for s in ${servers[*]} 
        do 
            ret=`ssh $destlogin "echo '$s' >> $ZOO_CFG"` 
        done 
 
        ret=`ssh $destlogin "echo '#!<==install_zookeeper@hgdb.net}}' >> $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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲女人天堂色在线7777| 成人性生交xxxxx网站| 成人福利视频网| 国产亚洲人成a一在线v站| 国产精品第七十二页| 久久亚洲国产精品| 日韩欧美国产骚| 亚洲精品一区久久久久久| 欧美日韩午夜激情| 日韩电影视频免费| 亚洲国产精品99久久| 久久国产精品影片| 欧美激情在线狂野欧美精品| 奇米四色中文综合久久| www.亚洲天堂| 91在线观看欧美日韩| 亚洲国产精品小视频| 一区二区国产精品视频| 亚洲福利在线视频| 国产精品视频免费观看www| 日韩av免费一区| 不卡伊人av在线播放| 九九视频直播综合网| 亚洲欧美国产一区二区三区| 黑人精品xxx一区一二区| 国产中文字幕亚洲| 久久久综合免费视频| 欧美日韩精品二区| 亚洲国产小视频在线观看| 亚洲欧美一区二区精品久久久| 精品久久中文字幕| 91精品91久久久久久| 亚洲欧美国产精品专区久久| 国产精品免费观看在线| 国产精品午夜视频| 免费99精品国产自在在线| 亚洲精品mp4| 亚洲爱爱爱爱爱| 亚洲精品欧美一区二区三区| 日韩精品在线视频| 欧美激情精品久久久久久| 欧美中文字幕在线视频| 国产欧美精品xxxx另类| 欧美午夜影院在线视频| 精品成人久久av| 成人免费在线视频网站| 91精品视频一区| 亚洲成人久久网| 国产色综合天天综合网| 亚洲美女性视频| 国产国语刺激对白av不卡| 伊人久久久久久久久久久久久| 欧美精品videos| 中文字幕日韩av电影| 日韩欧美中文在线| 国产精品久久久久久久久粉嫩av| 九九视频这里只有精品| 国产美女直播视频一区| 456亚洲影院| 日韩女优人人人人射在线视频| 91丨九色丨国产在线| 国产午夜精品一区二区三区| 18性欧美xxxⅹ性满足| 国产欧美久久一区二区| 久久久久久久久国产| 精品久久在线播放| 国产精品久久久久久中文字| 日韩在线观看免费高清完整版| 亚洲毛片在线观看.| 成人av色在线观看| www日韩中文字幕在线看| 亚洲天堂av在线免费| 国产欧美一区二区三区四区| 国产精品青青在线观看爽香蕉| 欧美激情va永久在线播放| 亚洲精品视频在线观看视频| 欧亚精品中文字幕| 色爱av美腿丝袜综合粉嫩av| 日韩av影视综合网| 黄色一区二区在线观看| 一区二区中文字幕| 精品国产自在精品国产浪潮| 国产精品综合久久久| 成人午夜在线视频一区| 国产成人精品网站| 色小说视频一区| 日韩成人在线网站| 久久久久久av| 日韩av手机在线观看| xxxx欧美18另类的高清| 精品日本高清在线播放| 自拍偷拍亚洲精品| 成人福利网站在线观看| 97成人在线视频| 日韩国产中文字幕| 成人综合国产精品| 亚洲最大在线视频| 亚洲黄色www网站| 欧美日韩激情网| 国模私拍一区二区三区| 亚洲欧美国产日韩中文字幕| 久久亚洲电影天堂| 亚洲一区www| 亚洲美女av在线播放| 伊人久久精品视频| 日本成人在线视频网址| 欧美日韩国产一中文字不卡| 久久这里有精品视频| 亚洲美女在线视频| 国产精品偷伦视频免费观看国产| 亚洲自拍偷拍色图| 91精品免费久久久久久久久| 一本一道久久a久久精品逆3p| 色青青草原桃花久久综合| 日韩av不卡在线| 国产精品久久二区| 亚洲日本aⅴ片在线观看香蕉| 日本精品在线视频| 亚洲天堂av电影| 久久久久久久久久久av| 亚洲精品福利免费在线观看| 亚洲欧美999| 欧美黑人国产人伦爽爽爽| 久久久国产视频| 日本成人精品在线| 在线精品高清中文字幕| 欧洲亚洲免费在线| 77777少妇光屁股久久一区| 欧美亚洲国产日韩2020| 国产精品成人久久久久| 久久久成人的性感天堂| 国产精品青青在线观看爽香蕉| 一区二区三区www| 中文字幕亚洲无线码在线一区| 欧美日韩美女在线观看| 日韩精品免费在线播放| 精品视频在线导航| 色999日韩欧美国产| 国产ts一区二区| 久久久久久久久国产精品| 久久精品人人做人人爽| 国产精品一区二区三区成人| 亚洲伊人一本大道中文字幕| 欧美电影在线观看高清| 在线观看亚洲区| 欧美一级淫片丝袜脚交| 一区二区三区动漫| 久久久久久九九九| 日韩在线观看免费高清完整版| 日韩免费视频在线观看| 欧美猛交ⅹxxx乱大交视频| 日本久久久久久| 久久久久免费视频| 亚洲深夜福利视频| 色七七影院综合| 欧美性xxxxxxx| 久久久久久亚洲精品不卡| 欧美第一黄网免费网站| 亚洲自拍中文字幕| 成人两性免费视频| 欧美激情一级欧美精品| 亚洲国产99精品国自产| 亚洲第一精品福利| 国产欧美日韩亚洲精品|