shell脚本中一键部署zookeeper集群服务的方法

目录
  • 一键部署zookeeper集群服务
    • 1. 编写脚本情况分析
    • 2. 脚本代码部分
    • 3. 实验测试部分

一键部署zookeeper集群服务

1. 编写脚本情况分析

  • Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。
  • Zookeeper适合安装奇数台服务器。
  • 脚本完成后将会产生:一个领导者(Leader) ,多个跟随者(Follower) 组成的集群。
  • 此脚本默认的安装包为:apache-zookeeper-3.5.7-bin.tar.gz,如果使用其他版本,自行修改部分代码。

2. 脚本代码部分

#!/bin/bash
#一键部署zookeeper集群服务器脚本
# 判断/opt目录下是否有指定安装包
if [ -e /opt/apache-zookeeper-3.5.7-bin.tar.gz ];then
    continue
else
    echo -e '\033[35m /opt目录中没有安装包[apache-zookeeper-3.5.7-bin.tar.gz]\033[0m'
    exit
fi
# 配置yum本地源
yumm (){
        if ls /etc/yum.repos.d/ | grep repo.bak &> /dev/null
        then
            mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo.bak/
        else
            mkdir /etc/yum.repos.d/repo.bak/
            mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo.bak/
        fi
        echo -e "[local]\nname=local\nbaseurl=file:///mnt\nenable=1\ngpgcheck=0" > /etc/yum.repos.d/local.repo
        if df -h | grep /dev/sr0 &> /dev/null
        then
            umount /dev/sr0
            mount /dev/cdrom /mnt &> /dev/null
        else
            mount /dev/cdrom /mnt &> /dev/null
            if [ $? -ne 0 ]
            then
                echo "光盘不存在,检查是否加载镜像,状态是否已连接!"
                exit
            fi
        fi
}
yumm
if yum clean all &> /dev/null
then
    if yum makecache &> /dev/null
    then
        echo "yum本地源配置完成!可以正常安装程序!"
    else
        echo "yum缓存建立失败!"
    fi
else
    echo "yum缓存清除失败......"
fi
read -p "当前服务器的myid为:" num
read -p "输入要设置的zookeeper服务器1的ip:" ip1
read -p "输入要设置的zookeeper服务器2的ip:" ip2
read -p "输入要设置的zookeeper服务器3的ip:" ip3
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
cd /opt/
tar zxvf apache-zookeeper-3.5.7-bin.tar.gz
mv apache-zookeeper-3.5.7-bin /usr/local/zookeeper-3.5.7 &> /dev/null
cd /usr/local/zookeeper-3.5.7/conf/
/usr/bin/cp zoo_sample.cfg zoo.cfg
sed -i '12 s/tmp\/zookeeper/usr\/local\/zookeeper-3.5.7\/data/' /usr/local/zookeeper-3.5.7/conf/zoo.cfg
sed -i '13c dataLogDir=\/usr\/local\/zookeeper-3.5.7\/logs' /usr/local/zookeeper-3.5.7/conf/zoo.cfg
sed -i '15c server.1='$ip1':3188:3288' /usr/local/zookeeper-3.5.7/conf/zoo.cfg
sed -i '16c server.2='$ip2':3188:3288' /usr/local/zookeeper-3.5.7/conf/zoo.cfg
sed -i '17c server.3='$ip3':3188:3288' /usr/local/zookeeper-3.5.7/conf/zoo.cfg
mkdir /usr/local/zookeeper-3.5.7/data &> /dev/null
mkdir /usr/local/zookeeper-3.5.7/logs &> /dev/null
echo $num > /usr/local/zookeeper-3.5.7/data/myid
echo '#!/bin/bash
#chkconfig:2345 20 90
#description: Zookeeper Service Control Script
ZK_HOME='/usr/local/zookeeper-3.5.7'
case $1 in
start)
echo "-----zookeeper启动-----"
$ZK_HOME/bin/zkServer.sh start
;;
stop)
echo "----zookeeper停止-------"
$ZK_HOME/bin/ zkServer.sh stop
;;
restart)
echo "----zookeeper重启-------"
$ZK_HOME/bin/zkServer.sh restart
;;
status)
echo  "-----zookeeper状态------"
$ZK_HOME/bin/zkServer.sh status
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
esac' > /etc/init.d/zookeeper
chmod +x /etc/init.d/zookeeper
chkconfig --add zookeeper
echo "所有服务执行完脚本后执行 service zookeeper start 开启服务"
echo "所有服务执行完脚本后执行 service zookeeper status 查看状态"

3. 实验测试部分

1.在三台服务器的/opt目录下放入指定zookeeper安装包apache-zookeeper-3.5.7-bin.tar.gz和一键部署脚本。

2.执行脚本,输入myid和服务器IP

3.验证结果

到此这篇关于shell脚本之一键部署zookeeper集群服务的文章就介绍到这了,更多相关shell脚本部署zookeeper集群内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 使用shell脚本一键部署LNMP架构的方法

    LNMP架构介绍 LNMP:Linux系统下Nginx+MySQL+PHP这种网站服务器架构.Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器.Mysql是一个小型关系型数据库管理系统.PHP是一种在服务器端执行的嵌入HTML文档的脚本语言. 原理:浏览器发送http request请求到服务器(Nginx),服务器响应并处理web请求,将一些静态资源(CSS,图片,视频等)保存服务器上,然后将php脚本通过接口传输协议(网关协议)PHP-FCGI

  • Shell脚本实现自动安装zookeeper

    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: 复

  • Jar包一键重启的Shell脚本及新服务器部署的一些经验分享

    前言 最近公司为客户重新部署了一套新环境,由我来完成了基础环境的配置,配置过程中总结了一些经验,分享给各位园友 使用 curl 命令检查网络 拿到新服务器后,首先检查服务器网络是否通畅.我们常用的 ping 命令使用的是 ICMP 协议,大部分服务器都设置了域名出入站规则,即使某些地址可以 ping 通,也存在服务器无法访问的情况.这时可以使用 curl host:port 命令来测试该服务器能否正常发送 http 请求到外部服务器 安装 JDK 新服务器一般没有 JDK ,可以使用 java

  • shell脚本中一键部署zookeeper集群服务的方法

    目录 一键部署zookeeper集群服务 1. 编写脚本情况分析 2. 脚本代码部分 3. 实验测试部分 一键部署zookeeper集群服务 1. 编写脚本情况分析 Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目. Zookeeper适合安装奇数台服务器. 脚本完成后将会产生:一个领导者(Leader) ,多个跟随者(Follower) 组成的集群. 此脚本默认的安装包为:apache-zookeeper-3.5.7-bin.tar.gz,如果使用其他版本,自

  • shell脚本中echo显示内容带颜色的实现方法

    shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e 格式如下: 复制代码 代码如下: echo -e "\033[字背景颜色:文字颜色m字符串\033[0m" 例如: 复制代码 代码如下: echo -e "\033[41;36m something here \033[0m" 其中41的位置代表底色, 36的位置是代表字的颜色 注: 1.字背景颜色和文字颜色之间是英文的"" 2.文字颜色后面有个m 3.字符串前后可

  • docker部署rabbitmq集群的实现方法

    拉取rabbitmq management镜像 docker pull rabbitmq:3.7-rc-management 若不使用Rabbitmq的management功能,可以拉取镜像:rabbitmq:3.7-rc 参考: https://hub.docker.com/_/rabbitmq/ 创建网络 创建rabbitmq私有网络 # docker network create rabbitmqnet # docker network ls NETWORK ID NAME DRIVER

  • Shell脚本中判断变量为数字的3种方法

    方法1:通过expr 计算变量与一个整数值相加,如果能正常执行则为整数,否则执行出错,$?将是非0的值 复制代码 代码如下: expr $args + 0 &>/dev/null 方法2:打印变量通过sed替换的方式,将变量中的数字替换为空,如果执行替换后变量为空,则为整数 复制代码 代码如下: echo $args | sed 's/[0-9]//g' 如果判断负数则再用sed过滤负号 复制代码 代码如下: echo $args | sed 's/[0-9]//g' | sed 's/-/

  • 利用MySQL Shell安装部署MGR集群的详细过程

    目录 1. 安装准备 2. 利用MySQL Shell构建MGR集群 3. MySQL Shell接管现存的MGR集群 4. 小结 参考资料.文档 免责声明 本文介绍如何利用MySQL Shell + GreatSQL 8.0.25构建一个三节点的MGR集群. MySQL Shell是一个客户端工具,可用于方便管理和操作MySQL,支持SQL.JavaScript.Python等多种语言,也包括完善的API.MySQL Shell支持文档型和关系型数据库模式,通过X DevAPI可以管理文档型数

  • 使用docker快速部署Elasticsearch集群的方法

    本文将使用Docker容器(使用docker-compose编排)快速部署Elasticsearch 集群,可用于开发环境(单机多实例)或生产环境部署. 注意,6.x版本已经不能通过 -Epath.config 参数去指定配置文件的加载位置,文档说明: For the archive distributions, the config directory location defaults to $ES_HOME/config. The location of the >config direc

  • 使用docker部署hadoop集群的详细教程

    最近要在公司里搭建一个hadoop测试集群,于是采用docker来快速部署hadoop集群. 0. 写在前面 网上也已经有很多教程了,但是其中都有不少坑,在此记录一下自己安装的过程. 目标:使用docker搭建一个一主两从三台机器的hadoop2.7.7版本的集群 准备: 首先要有一台内存8G以上的centos7机器,我用的是阿里云主机. 其次将jdk和hadoop包上传到服务器中. 我安装的是hadoop2.7.7.包给大家准备好了,链接:https://pan.baidu.com/s/15n

  • 在K8s上部署Redis集群的方法步骤

    一.前言 架构原理:每个Master都可以拥有多个Slave.当Master下线后,Redis集群会从多个Slave中选举出一个新的Master作为替代,而旧Master重新上线后变成新Master的Slave. 二.准备操作 本次部署主要基于该项目:https://github.com/zuxqoj/kubernetes-redis-cluster 其包含了两种部署Redis集群的方式: StatefulSet Service&Deployment 两种方式各有优劣,对于像Redis.Mong

  • Ansible部署K8s集群的方法

    目录 检查网络:k8s-check.yaml检查k8s各主机的网络是否可达; 检查k8s各主机操作系统版本是否达到要求: 配置k8s集群dns解析:k8s-hosts-cfg.yaml 配置yum源:k8s-yum-cfg.yaml 时钟同步:k8s-time-sync.yaml 禁用iptable.firewalld.NetworkManager服务 禁用SElinux.swap:k8s-SE-swap-disable.yaml 修改内核:k8s-kernel-cfg.yaml 配置ipvs:

  • 聊聊docker 单机部署redis集群的问题

    目录 docker部署redis集群 1.创建redis网卡 2.创建redis配置 使用cluster集群配置 3.创建redis集群 测试 docker 部署redis集群 1.创建redis网卡 docker network create redis --subnet 172.38.0.0/16 查看网卡信息 docker network ls docker network inspect redis 2.创建redis配置 #使用脚本创建6个redis配置 for port in $(s

随机推荐