Zookeeper安装配置及简单使用
我使用的CentOS 7阿里云服务器,ZK依赖JDK,需要先安装jdk并配置jdk环境变量。
1、安装wget:
yum –y install wget
2、下载Zookeeper(http://mirror.bit.edu.cn/apache/zookeeper上面查看版本):
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz
3、解压:
tar -zxvf zookeeper-3.4.11.tar.gz
4、建议将解压后的文件夹移动到/usr/local或/usr/share/或/usr/opt目录下:
mv ./zookeeper-3.4.11 /usr/local
5、单机环境配置:
5.1 切换到zookeeper的配置文件目录conf:
cd /usr/local/zookeeper-3.4.11/conf
5.2 复制zoo_sample.cfg文件并重命名为zoo.cfg:
cp zoo_sample.cfg zoo.cfg
5.3 根据需要修改zoo.conf配置项:
vi zoo.conf
参数解释:
tickTime:Zookeeper的时间单元。Zookeeper中所有时间都是以这个时间单元的整数倍去配置的。例如,session的最小超时时间是2*tickTime。(单位:毫秒)
initLimit:Observer和Follower启动时,从Leader同步最新数据时,Leader允许initLimit * tickTime的时间内完成。如果同步的数据量很大,可以相应的把这个值设置的大一些。
syncLimit:表示Follower和Observer与Leader交互时的最大等待时间,只不过是在与leader同步完毕之后,进入正常请求转发或ping等消息交互时的超时时间。
dataDir:用于存放内存数据快照的文件夹,同时用于集群的myid文件也存在这个文件夹里。
clientPort:服务的监听端口。
5.4 切换到bin目录
cd ../bin
5.5 执行启动、查看状态、停止、查看进程等操作:
启动、查看状态、停止的命令 ./zkServer.sh start或status或stop ../conf/zoo.cfg
查看进程的命令 jps
可以看到进程名为QuorumPeerMain,单机模式Mode:standalone。
6、伪分布式配置(以3个节点为例):
6.1 切换到zookeeper的配置文件目录conf:
cd /usr/local/zookeeper-3.4.11/conf
6.2 将zoo_sample.cfg文件复制3份并分别重命名为zoo1.cfg、zoo2.cfg、zoo3.cfg:
cp zoo_sample.cfg zoo1.cfg(zoo2.cfg、zoo3.cfg)
6.3 根据需要修改zoo1.cfg~zoo3.cfg配置项:
vi zoo1.cfg(zoo2.cfg、zoo3.cfg)
如图,分别将zoo1.cfg、zoo2.cfg、zoo3.cfg的dataDir设置为/tmp/zookeeper/zk1、/tmp/zookeeper/zk2、/tmp/zookeeper/zk3,clientPort设置为2181、2182、2183;3份配置文件都有相同的配置:server.1、server.2和server.3,其中的1~3代表3个zk节点的myid(集群中myid必须存在且唯一),
izwz966dst6erg8u5v1030z:2888:3888、izwz966dst6erg8u5v1030z:2889:3889、izwz966dst6erg8u5v1030z:2890:3890其中的izwz966dst6erg8u5v1030z代表3个节点所在主机的hostname(可以是Hostname或IP),2888/2889/2990是3个节点的同步端口(用于节点之间数据同步),3888/3889/3890是3个节点的选举端口(zk启动后,产生master选举过程,以及leader宕机之后重新选举leader都通过该端口)。
注:可通过hostname(centos7也可用hostnamectl)命令查看主机名,通过命令hostnamectl set-hostname 新主机名,或修改/etc/hostname文件都可以达到永久修改主机名的目的。
6.4 如6.3提到server.1~server.3其中的1、2、3代表3个节点必须存在且唯一的myid(myid是一个文件且存在dataDir目录下):
6.4.1 在/tmp目录下创建zookeeper:
mkdir zookeeper
6.4.2 切换到zookeeper目录下并创建zk1~zk3:
mkdir zk1(zk2、zk3)
6.4.3 创建3个节点的myid文件并分别设置为1、2、3:
echo 1 >> /tmp/zookeeper/zk1/myid
echo 2 >> /tmp/zookeeper/zk2/myid
echo 3 >> /tmp/zookeeper/zk3/myid
注:echo 值 >> 文件,使用重定向符输出到一个文件,可通过cat命令查看3个文件的值;
6.5 切换到/usr/local/zookeeper-3.4.11/bin目录,分别启动3个节点、查看状态、停止节点、查看检查数量:
如图可知,启动zoo1,查看状态为Error contacting service.It is probably not running.启动zoo2以后查看zoo2的状态Mode:leader,zoo1的状态Mode:follower,启动zoo3的状态也是Mode:follower,通过jps查看进程数目正确。
对不同观点节点启动/停止,查看状态,可以知道,当启动3个节点以后,将leader停止,另外2个节点会重新选举leader,停止2个节点,最后一个节点状态是Error contacting service.It is probably not running.直到再启动一个节点,又会选择一个leader,一个follower。
一个集群中有N个节点,必须保证有N/2+1个节点正常,集群才能正常工作。3个节点的集群正常工作需要3/2+1=2个节点正常;4个节点的集群正常工作需要4/2+1=3个节点正常,5个节点的集群正常工作需要5/2+1=3个节点正常,而2个节点的集群正常工作需要2/2+1=2个节点正常,即5个节点的集群容许2个节点挂掉,3和4个节点的集群容许1个节点挂掉,而2个节点的集群允许任何节点挂掉;
推荐集群节点总数为基数,节省资源。
7、真分布式配置(以3个节点为例)
在3个节点上分别按单节点的方式部署好,然后在3个节点的zoo.cfg文件中配置server.1和server.2和server.3和各自的myid,在3个节点上分别启动即可。
8、为了方便在任何路径下使用zk的命令,可配置zk的环境变量:
vi /etc/profile
添加ZOOKEEPER_HOME和$ZOOKEEPER_HOME/bin
修改完成以后刷新配置文件:
source profile
以上是zk的安装和3种配置方式,已经基本的启动、停止、查看状态等命令:
■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境;
■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例;
■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble)
zoo.cfg的更多配置项请参考:https://blog.csdn.net/qianshangding0708/article/details/50067483
更详细的安装配置说明可参考:https://www.cnblogs.com/wuxl360/p/5817489.html
Zookeeper安装配置及简单使用的更多相关文章
- Zookeeper系列一:Zookeeper介绍、Zookeeper安装配置、ZK Shell的使用
https://www.cnblogs.com/leeSmall/p/9563547.html 一.Zookeeper介绍 1. 介绍Zookeeper之前先来介绍一下分布式 1.1 分布式主要是下面 ...
- asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程
最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下这个开源框架!下面对Exceptionl ...
- ogre3d环境配置 SDK安装配置及简单事例教程
ogre3d环境配置 SDK安装配置及简单事例教程 http://www.cr173.com/html/22594_1.html ogre3d环境配置 SDK安装配置及简单事例教程 http://ww ...
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...
- 【转】asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程
最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下这个开源框架!下面对Exceptionl ...
- Linux环境ZooKeeper安装配置及使用
Linux环境ZooKeeper安装配置及使用 一.ZooKeeper 1.1 zookeeper作用 1.2 zookeeper角色 1.3 zookeeper功能 二.集群规划 三.安装流程 (1 ...
- OpenCV安装配置的简单记录
在ubuntu16.04下安装OpenCV 2.4.11的简单记录 1. 安装cmake,执行$apt-get install cmake即可,cmake -version验证 2. 下载OpenCV ...
- ZooKeeper学习第二期--ZooKeeper安装配置
一.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式. ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境:■ 伪集群模式:就是在一台物 ...
- 【Zookeeper系列】ZooKeeper安装配置(转)
原文链接:https://www.cnblogs.com/sunddenly/p/4018459.html 一.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪 ...
随机推荐
- PHP递归获得树形菜单和遍历文件夹下的所有文件以及子文件夹
PHP递归获得树形菜单和遍历文件夹下的所有文件以及子文件夹 一.使用递归获取树形菜单 数据表category(id,name,parent_id) <?php class category{ / ...
- Redis项目实战,一些经验总结
来源:https://my.oschina.net/u/920698/blog/3031587 背景 Redis 是一个开源的内存数据结构存储系统. 可以作为数据库.缓存和消息中间件使用. 支持多种类 ...
- 安装Consul服务中心
安装Consul服务中心 首先下载对应版本的安装程序.点击下载 我下载的是macOS64位版本,下载文件是一个ZIP文件,下载后解压缩到一个你喜欢的位置,以开发模式启动consul服务: #进入con ...
- 字典dict详解
字典也是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据. 比如有份成绩表数据,语文:79,数学:80,英语:92,这组数据看上去像两个列表,但这两个列表的元素之间有一定的关联关 ...
- UVALive 4992 Jungle Outpost(半平面交判存)
Jungle Outpost Time limit: 15.000 seconds Description There is a military base lost deep in the jung ...
- 看FPGA面试题时见到被考到的几个逻辑电路
8位 D触发器: module dff8(clk , reset, d, q); input clk; input reset; :] d; :] q; :] q; always @ (posedge ...
- Java调用DB的存储过程
2015/12/7 使用数据库存储过程的java代码: try { con = (Connection) DBProxy.getConnection(null); ...
- linux+Apache开启伪静态配置
linux+Apache伪静态配置 一.环境准备:CentOS Linux release 7.4.1708 (Core)1.配置源[root@localhost ~]#yum install -y ...
- mysql limit 数据重复及遗漏
某天写了一段CRUD,提测给QA,后来想起来忘记按规则排序了,然后修改了代码提交,这个时候QA扔给我一条狗,不,是一个BUG. 内心一片忧伤,CRUD也有BUG啊,怎么办怎么办,赶紧看看去. BUG描 ...
- Steup Factory 操作注册表
//判断注册表是否存在,不存在就创建 result = Registry.DoesKeyExist(HKEY_CURRENT_USER, "SOFTWARE\\MyTestApp" ...