ansible roles实践 zookeeper集群部署
1、下载解压
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz
tar -zxvf zookeeper-3.4.11.tar.gz && cd zookeeper-3.4.11
2、修改配置文件
cp conf/zoo_sample.cfg zoo.cfg
vim zoo.cfg
tickTime=2000
dataDir=/var/lib/zookeeper/
initLimit=5
syncLimit=2
clientPort=2181
server.1=172.16.2.116:2888:3888
server.2=172.16.2.225:2888:3888
server.3=172.16.2.115:2888:3888
server.4=172.16.2.240:2888:3888
server.5=172.16.2.241:2888:3888
- 2888端口号是服务器与集群中的leader服务器交换信息的端口
- 3888端口号是zookeeper与其他应用程序通信的端口,万一集群中的leader服务器挂了,需要一个端口来重新进行选举,选出新的leader,而这个端口就是用来执行选举时候服务器互相通信的端口
- initLimit:这个配置是用来配置zookeeper接受客户端(这里所说的客户端不是用户连接zookeeper服务器的客户端,而是zookeeper服务器集群中连接到leader的follower服务)初始化连接时最长能接受多少个心跳时间间隔数。当已经超过10个心跳的时间(也就是tickTime)长度之后zookeeper服务器还没有接收到客户端返回的信息,那么表示这个客户端连接失败。总时间长度是10*2000=20秒。
- syncLimit:这个配置标识leader与follower之间发送消息,请求和答应时间长度,最长不能超过多少个tickTime的时间长度,总时间长度是5*2000=10秒
- 如果是伪集群的配置方式,由于ip都是一样的,所以不同的zookeeper实例通信端口号不能一样,所以要给它们分配不同的端口号
3、创建/var/lib/zookeeper快照目录,并创建server id文件。
$sudo mkdir /var/lib/zookeeper
$ cd /var/lib/zookeeper
在该目录下创建名为myid的文件,内容为1(这个值随server而改变,后面会提到)。
4、将server1上已经配置好的/home/hanli/zookeeper-3.4.11/和/var/lib/zookeeper两个目录分别拷贝至server2和server3。然后将其上的/var/lib/zookeeper/myid的内容修改为2和3.
5、启动Zookeeper
一次启动三台服务器,进入Zookeeper-3.4.5目录下,执行如下启动命令:
[root@master] /home/hanli/zookeeper-3.4.11/bin$ ./zkServer.sh start
注:启动第一台的时候可能会报错,提示zoo2和zoo3,等全部启动完成之后就不会报错了。
ansible安装集群
1、tasks/main.yml
---- name: unzip zookeeper
unarchive: src=zookeeper-3.4.11.tar.gz dest=/usr/local- name: configuration file
copy: src=zoo.cfg dest=/usr/local/zookeeper-3.4.11/conf/zoo.cfg- name: mkdir dataDir
file: path=/var/lib/zookeeper state=directory- name: touch myid
file: path=/var/lib/zookeeper/myid state=touch- name: touch myid file
shell: echo {{ myid }} > /var/lib/zookeeper/myid
2、files/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/lib/zookeeper
dataLogDir=/var/lib/zookeeper
clientPort=2181
server.1=172.16.2.116:2888:3888
server.2=172.16.2.225:2888:3888
server.3=172.16.2.115:2888:3888
server.4=172.16.2.240:2888:3888
server.5=172.16.2.241:2888:3888
3、/etc/ansible/hosts
[test]
172.16.2.225 myid=2
172.16.2.115 myid=3
172.16.2.116 myid=1[backup]
172.16.2.240 myid=4
172.16.2.241 myid=5
4、入口zookeeper.yml
---- hosts: all
remote_user: root
roles:
- zookeeper
5、ansible all -m shell -u root -a '/usr/local/zookeeper-3.4.11/bin/zkServer.sh start'
ansible roles实践 zookeeper集群部署的更多相关文章
- Centos6下zookeeper集群部署记录
ZooKeeper是一个开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等. Zookeeper设计目的 最终一致性:client不论 ...
- 分布式协调服务之Zookeeper集群部署
一.分布式系统概念 在聊Zookeeper之前,我们先来聊聊什么是分布式系统:所谓分布式系统就是一个系统的软件或硬件组件分布在网络中的不同计算机之上,彼此间通过消息传递进行通信和协作的系统:简单讲就是 ...
- HBase集成Zookeeper集群部署
大数据集群为了保证故障转移,一般通过zookeeper来整体协调管理,当节点数大于等于6个时推荐使用,接下来描述一下Hbase集群部署在zookeeper上的过程: 安装Hbase之前首先系统应该做通 ...
- Zookeeper集群部署
一. 部署前的准备工作 保证各个主机之间能够正常通信,最好是在同一网段. 修改host文件,加入IP和主机名的映射.方法为修改/etc/hosts和etc/hostname文件,不同的Linux发行版 ...
- 消息中间件kafka+zookeeper集群部署、测试与应用
业务系统中,通常会遇到这些场景:A系统向B系统主动推送一个处理请求:A系统向B系统发送一个业务处理请求,因为某些原因(断电.宕机..),B业务系统挂机了,A系统发起的请求处理失败:前端应用并发量过大, ...
- docker环境下solrcloud+zookeeper集群部署教程
前言:两个月前的16年11月份完成的配置,使用的solr6.1和zookeeper3.4,刚刚写成blog,目前版本可能有小版本的变化. 本例完成结果为:在docker环境下部署solrcloud集群 ...
- Zookeeper集群部署与配置(三)
在上一篇博客中我们讲解了<Zookeeper的单机配置>,此篇博客将继续介绍Zookeeper的集群部署与配置. 环境 集群配置的环境与单机配置的环境相同,唯一不同的就是集群是在多台服务器 ...
- Zookeeper集群部署及报错分析
安装 下载压缩包 解压 修改zoo.cfg文件 创建myid文件 启动 自启动配置 有时间再补hhh 报错处理 很荣幸的遇到了大部分报错,日志再zookeeper目录的bin下的zookeeper.o ...
- Zookeeper 集群部署的那些事儿
简介 额...., &*$% 淘气! ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效.高可用的分布式协调服务. ZooKeeper本质上是一个分布式的小文件存储系统 ...
随机推荐
- Android 控件使用教程(二)—— RecyclerView 展示图片
简介 在上一篇博文中,介绍了大家已经很熟悉的布局控件ListView,在这篇文章中,我将使用比较新.功能也更强大的RecyclerView. RecyclerView 首先,要用这个控件,你需要在gr ...
- 【LeetCode】333. Largest BST Subtree 解题报告(C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 DFS 日期 题目地址:https://leetcod ...
- 【LeetCode】1014. Capacity To Ship Packages Within D Days 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- 【九度OJ】题目1190:大整数排序 解题报告
[九度OJ]题目1190:大整数排序 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1190 题目描述: 对N个长度最长可达 ...
- 【LeetCode】497. Random Point in Non-overlapping Rectangles 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/random-p ...
- 【LeetCode】893. Groups of Special-Equivalent Strings 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- Dubbo为什么要用Go重写?
先说两句 我常常在散步时思考很多技术上的「为什么问题」,有时一个问题会想很久,直到问题的每一个点都能说服自己时,才算完结.于是想把这些思考记录下来,形成文章,可以当做一个新的系列.这些文章中你可能看不 ...
- 基于Spring MVC + Spring + MyBatis的【外包人力资源管理系统】
资源下载:https://download.csdn.net/download/weixin_44893902/45600390 练习点设计:模糊查询.删除.新增 一.语言和环境 实现语言:JAVA语 ...
- 编写Java程序,方法练习题__构建英雄类,定义一个int类型的变量output,表示英雄的血量
返回本章节 返回作业目录 需求说明: 定义一个int类型的变量output,表示英雄的血量,当battle()方法执行一次,output变量值减少10.在控制台随机输入一个小于100的整数,将该整数值 ...
- SSH公/私秘钥的生成及使用
如果使用GitHub比较多的朋友,对SSH Key肯定也不陌生,当我们SSH进行代码的pull&push时,往往需要我们配置SSH Key. 如果Linux用的多朋友,肯定对SSH Key都很 ...