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安装方式有三种,单机模式和集群模式以及伪 ...
随机推荐
- jquery 查找元素,id,class
查找元素下的class 带有.pageactive的a标签 $('a.pageactive') 标签a和..pageactive不要有空格,有空格找不到 ======================= ...
- 初识Flink-从WorldCount开始
Apache Flink是一个用于分布式流和批处理数据处理的开源平台.Flink的核心是流数据流引擎,为数据流上的分布式计算提供数据分发,通信和容错.Flink在流引擎之上构建批处理,覆盖本机迭代支持 ...
- Codeforces 1114D(区间DP)
题面 传送门 分析 法1(区间DP): 首先,我们可以把连续的相等区间缩成一个数,用unique来实现,不影响结果 {1,2,2,3,3,3,5,3,4}->{1,2,3,5,3,4} 先从一个 ...
- Java中的动态代理(jdk和cglib)
JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后处理消息等.代理类与委托类 ...
- css 设置div基于父元素宽度的宽高相等的样式
1. 前言 在移动开发中,有时候需要设置一个宽高相等的div,并且为了使它能够适配更多的屏幕,于是需要让它的宽高和屏幕宽高成一定的比例.这里将提供一个css的解决方案,让一些后端开发不用再写繁琐的js ...
- 迷你redux实现,redux是如何进行实现的?
export function createStore(reducer){ let currentState={} let currentListeners=[] function getState( ...
- 关于GeneXus封装方法Model的方法
最近 刚从外地出差回来 工作任务不是很重 能够抽点时间记点东西 下午花了2个多钟头尝试了一下GeneXus的封装方法的功能,这里记一下便于自己以后查看.我们在许多项目中或多或少都会有着重复代码编写的 ...
- gcc 交叉工具链中工具使用(arm-linux-xxx)
在Ubuntu系统中使用 gcc 系列工具是在PC机上使用 arm-linux-gcc 编译的目标 是在 arm CPU上使用 一.安装交叉编译工具链 1. 编译工具怎么获取 1)从官网 http:/ ...
- 一、@Html.DropDownList
一.Html.DropDownList 通过linq 将datatable转换下拉列表 //查询城市 string CityId = WebCommon.Public.GetAdminCityId() ...
- Codeforces 354C 暴力 数论
题意:给你一个数组,你可以把数组中的数减少最多k,问数组中的所有数的GCD最大是多少? 思路:容易发现,GCD的上限是数组中最小的那个数,而因为最多可以减少k,及可以凑出来的余数最大是k,那么GCD的 ...