一分钟搭建好Zookeeper集群之shell脚本自动化

1 篇文章 0 订阅
1 篇文章 0 订阅

   鉴于每次搭建zk集群都需要重复那些操作,所以这次写了几个Shell脚本,目前写的Shell脚本有,linux安装配置jdk、tomcat、zookeeper等、后续如果可以继续的话就写 solr,hadoop等的自动部署shell脚本。

   Shell脚本有什么好处吗?答案当然是好处多了去了,就比如说给你3台机器,你手动搭建jdk.tomcat.zookeeper这3样最常用的,

3台机器,少说10多分钟,慢则30分钟,特别是菜鸟,没搭过几回可能用的时间更久,而对于老鸟来说已经滚瓜烂熟了,这样的工作重重复复,每次都是重复重复,一点意思都没有。而通过shell脚本,你只需要不到1分钟就可以把3台集群搭出来,何乐而不为。

这次介绍的是用Shell脚本写的搭建 Zookeeper集群的,如需要jdk.或tomcat的脚本可以移步我其他几篇博客

Shell命令教程:http://www.runoob.com/linux/linux-command-manual.html

这里 3台机器 zk1,zk2,zk3

各位同学可以自己修改host文件配置

在这里修改你服务器的ip地址,zk版本

直接上脚本内容:

		#!/bin/bash
		#server_addr
		ip_addr1=zk1
		ip_addr2=zk2
		ip_addr3=zk3
		zk_version=zookeeper-3.4.10
		server_port=2888:3888
		#需要换版本或地址 只需要把上面参数更换即可

		
		#zk的压缩包名字
		zk_tar=$zk_version.tar.gz
		url=https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/$zk_version/$zk_version.tar.gz

		home_dir1=/usr/local/src/zk1
		home_dir2=/usr/local/src/zk2
		home_dir3=/usr/local/src/zk3
		zk_home1=$home_dir1/$zk_version
		zk_home2=$home_dir2/$zk_version
		zk_home3=$home_dir3/$zk_version
		conf_dir1=$zk_home1/conf/zoo.cfg
		conf_dir2=$zk_home2/conf/zoo.cfg
		conf_dir3=$zk_home3/conf/zoo.cfg
		#创建文件夹
		 	mkdir $home_dir1
		 	mkdir $home_dir2
		 	mkdir $home_dir3
		cd $home_dir1
		#下载zk
		wget $url
		#解压 
		tar -xvf $zk_tar
		rm -rf $zk_tar
		cp $zk_home1/conf/zoo_sample.cfg $conf_dir1
		 	#创建 log data文件夹
		mkdir $zk_home1/logs
	   	mkdir $zk_home1/data
	   	  	#追加服务配置
		        sed -i '$a \server.1='$ip_addr1':'$server_port'\nserver.2='$ip_addr2':'$server_port'\nserver.3='$ip_addr3':'$server_port'' $conf_dir1
		cp -rf $home_dir1/* $home_dir2/
		cp -rf $home_dir1/* $home_dir3/
		
		 	#---update file--更改zk1的文件
		        sed -i 's#/tmp/zookeeper#'$zk_home1'/data#' $conf_dir1
		        #添加log日志
		        sed -i '/^dataDir/a\dataLogDir='$zk_home1'/logs\' $conf_dir1
		        #设定ip
		        #sed -i 's/2181/'$3'/g'  $new_file_path
		        
		       	#---update file--更改zk2的文件	
	 			sed -i 's#/tmp/zookeeper#'$zk_home2'/data#' $conf_dir2
		        #添加log日志
		        sed -i '/^dataDir/a\dataLogDir='$zk_home2'/logs\' $conf_dir2
			
				 	#---update file--更改zk1的文件
				sed -i 's#/tmp/zookeeper#'$zk_home3'/data#' $conf_dir3
		        #添加log日志
		        sed -i '/^dataDir/a\dataLogDir='$zk_home3'/logs\' $conf_dir3
		 	#配置myid 	
			touch $zk_home1/data/myid
			touch $zk_home2/data/myid
			touch $zk_home3/data/myid 
		    echo 1 >$zk_home1/data/myid
		    echo 2 > $zk_home2/data/myid
		    echo 3 > $zk_home3/data/myid
		    

运行脚本 :

sh zk_install.sh

运行后在/usr/local/src目录下会有3个文件

里面的配置以及完全配置好了

我们看看zk1文件里的conf下的zoo.cfg文件

再看看zk2文件里的conf下的zoo.cfg文件

同样的zk1 zk2 zk3下/data/myid文件 内容分别为

到此为止 我们总共用了 一条命令就完成这个集群搭配了,只花了十多秒,但是还没有结束,

我们继续来输入两条命令 

分别把zk2、zk3发送到服务器2、服务器3

复制目录: 

命令格式: 

scp -r local_folder remote_username@remote_ip:remote_folder 

输入以下两条命令

 

scp -r /usr/local/src/zk2 root@zk2:/usr/local/src/
scp -r /usr/local/src/zk3 root@zk3:/usr/local/src/

由于有的人没有配置ssh免密登陆,所以没有吧这两条命令写进去脚本,这样适用范围更广。

经过上述3条命令之后,就可以启动zk集群了。

运行zookeeper
./zookeeper-3.4.10/bin/zkServer.sh start
./zookeeper-3.4.10/bin/zkServer.sh status
./zookeeper-3.4.10/bin/zkServer.sh stop

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值