返回顶部
首页 > 资讯 > 服务器 >Shell脚本实现自动安装zookeeper
  • 409
分享到

Shell脚本实现自动安装zookeeper

脚本Shellzookeeper 2022-06-04 21:06:52 409人浏览 薄情痞子
摘要

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

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

--结束END--

本文标题: Shell脚本实现自动安装zookeeper

本文链接: https://lsjlt.com/news/18345.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Shell脚本实现自动安装zookeeper
    A:本脚本运行的机器,Linux RHEL6 B,C,D,...:待安装zookeeper cluster的机器, Linux RHEL6 首先在脚本运行的机器A上确定可以ssh无密码登录到待安装zk的机器...
    99+
    2022-06-04
    脚本 Shell zookeeper
  • Shell脚本中怎么自动安装zookeeper
    这篇文章将为大家详细讲解有关Shell脚本中怎么自动安装zookeeper,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。A:本脚本运行的机器,Linux RHEL6B,C,D,...:待安装...
    99+
    2023-06-09
  • shell怎么实现自动安装python3的脚本
    这篇文章给大家分享的是有关shell怎么实现自动安装python3的脚本的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。root用户权限# vim install_python3.sh1#!/b...
    99+
    2023-06-09
  • mysql中如何实现自动化脚本安装的shell脚本
    这篇文章将为大家详细讲解有关mysql中如何实现自动化脚本安装的shell脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。脚本处理逻辑流程图    ...
    99+
    2024-04-02
  • shell脚本如何自动安装jdk
    这篇文章主要介绍shell脚本如何自动安装jdk,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.安装准备jdk-8u221-linux-x64.tar.gz jdk压缩包(需要放在opt目录下)2.shell脚本2...
    99+
    2023-06-09
  • Shell脚本实现在Linux系统中自动安装JDK
    A:本脚本运行的机器,Linux B:待安装JDK的机器, Linux 首先在脚本运行的机器A上确定可以ssh无密码登录到待安装jdk的机器B上,然后就可以在A上运行本脚本: $ ./install-jd...
    99+
    2022-06-04
    脚本 系统 Shell
  • 自动化安装Mysql5.6-脚本实现
    Mysql5.6新特性: 1.优化器的改进:主要体现在索引条件pushdown以及多范围的读取数据,可降低过载。2,InnoDB的改进:MySQL InnoDB 存储引擎团队主要提供了 NoSQL 的访问接...
    99+
    2024-04-02
  • shell自动安装python3的脚本写法
    root用户权限 # vim install_python3.sh 1 #!/bin/sh yum -y install zlib-devel bzip2-devel openssl-devel ncurses-de...
    99+
    2022-06-04
    shell 安装python3 shell 安装python3 pip
  • 如何实现vtune自动安装脚本
    本篇内容介绍了“如何实现vtune自动安装脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码如下:#!/bin/bash#!/usr/b...
    99+
    2023-06-09
  • mydumper如何实现自动化安装脚本
    这篇文章主要介绍了mydumper如何实现自动化安装脚本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。#!/usr/bin/expect -fset hname [linde...
    99+
    2023-06-04
  • 如何实现vtune自动化安装脚本
    本篇内容介绍了“如何实现vtune自动化安装脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码如下:#!/bin/bash#!/usr/...
    99+
    2023-06-09
  • shell脚本自动安装jdk的方法示例
    1.安装准备 1.jdk-8u221-linux-x64.tar.gz jdk压缩包(需要放在opt目录下) 2.shell脚本 2.shell命令 Sed 对字符的处理 -p  显示,将某个选择的数据打印显示。通常...
    99+
    2022-06-04
    shell自动安装jdk shell安装jdk
  • MySQL如何实现各版本自动安装脚本
    这篇文章主要介绍MySQL如何实现各版本自动安装脚本,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 描述:    1 . 所有版本都...
    99+
    2024-04-02
  • 如何配置Shell脚本实现在Linux系统中自动安装JDK
    这篇文章主要介绍“如何配置Shell脚本实现在Linux系统中自动安装JDK”,在日常操作中,相信很多人在如何配置Shell脚本实现在Linux系统中自动安装JDK问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答...
    99+
    2023-06-09
  • 如何实现全自动安装LNMP服务器环境的Shell脚本
    这篇文章主要介绍“如何实现全自动安装LNMP服务器环境的Shell脚本”,在日常操作中,相信很多人在如何实现全自动安装LNMP服务器环境的Shell脚本问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何实现全...
    99+
    2023-06-09
  • Shell脚本实现监控kingate并自动启动
    自己在vps做的kingate服务端,估计最近占用流量太大了,老是被服务商把我vps重启,但kingate这个东西是一旦被强制结束掉,是无法开机启动的,因为要把kingate.pid这个文件删除了才能启动,...
    99+
    2022-06-04
    脚本 自动启动 Shell
  • vtune自动化安装脚本
    #!/bin/bash#!/usr/bin/expect -f#!/usr/bin/env bashyum install -y expect wgetcd /rootwget http://172.16...
    99+
    2022-06-04
    脚本 vtune
  • MySQL8.0 Mgr自动安装脚本
    MySQL8.0 自动安装脚本mysql8_install.shmy_test.cnfmysql-8.0.18-linux-glibc2.12-x86_64.tar.xz三个文件放在同一个目录下,例如/ro...
    99+
    2024-04-02
  • MySQL一键安装Shell脚本的实现
    目录一、脚本说明1、linux系统版本2、MySQL版本3、运行方式二、脚本内容一、脚本说明 1、linux系统版本 EL6, EL7, EL8, and EL9-based pla...
    99+
    2023-01-08
    MySQL安装Shell脚本 MySQL安装Shell
  • linux下实现ftp自动备份shell脚本
    利用here文档 #!/bin/sh ftp -ivn 210.29.28.124 <<EOF user yun yun2011 lcd /home/veyun cd /home/veyun/...
    99+
    2022-06-04
    脚本 自动备份 linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作