我用的是linux,CentOS7.3,zookeeper的版本是3.4.6,工具XShell。上传zookeeper的压缩包后我们开始操作。

集群模式: 

  1、解压zookeeper,路径随意

    tar -zxvf zookeeper.tar.gz

  2、配置文件

    初次使用zookeeper时,将conf下的zoo_sample.cfg更名为zoo.cfg,方便我们配置。

    

    

  3、对zoo.cfg文件进行简单配置,参数我们会在后面的教程中详细讲解

    vi zoo.cfg 进入文本开始编辑。i开始编辑,esc后wq是保存退出,esc后q!是不保存退出。

    

  在集群模式下,集群中的每台机器都要感知整个集群是由哪几台机器组成的,配置文件中按照这样的格式配置,每一行都代表一个机器配置:server.id=host:port:port

  其中,id被称为Server ID,用来标识该机器在集群中的机器序号。在每台zookeeper机器上,我们需要在数据目录(即dataDir参数指定的那个目录)下创建一个myid文件,该文件只有一行内容,并且是一个数字,即对应每台机器的Server ID数字,id的范围是1~255。host为集群中机器的ip地址。

  4、创建myid

    在dataDir配置目录下创建,mkdir /var/lib/zookeeper、touch myid、vi myid、填写对应的id

  5、安装相同步骤,为其他机器配置上zoo.cfg和myid

  6、启动服务器

    在zookeeper/bin目录下的zkServer.sh脚本进行服务器启动。

    

    zkServer.sh start

  7、验证服务器

    启动完成后,使用如下命令来检查服务器启动是否正常:

    使用telnet命令stat来进行服务器启动的验证,如果出现和下面类似的输出信息,说明服务器正常启动了。

    

    注:输入telnet,提示 command not found的话,解决方法在这:https://blog.csdn.net/congcong68/article/details/41382753。由衷的感谢提供解决方法的朋友!

单机模式:

  单机模式下只需要对zoo.cfg文件稍微进行修改,如下:

  

  删除多余的server配置。然后启动zookeeper服务,同样使用telnet验证服务。

伪集群模式:

  我们在做自己的分布式项目时,没有多余的服务器。可以采用伪集群模式来构建集群,使用项目的伪集群化。

  只需要对zoo.cfg文件进行修改。如同集群群模式,但略有不同。每一行机器列表配置都是同一个ip地址,后面端口不同。

  

  伪集群下,是多个zookeeper。但是配置时不同于集群模式。按上述方式启动,并通过telnet来进行服务验证。

运行服务:

  我们介绍了zookeeper集群和单机模式的搭建,下面我们介绍zookeeper服务的启动与停止方法,及一些在启动阶段出现的常见错误。

  相关命令:

    使用zookeeper自带的启动脚本启动:

    启动:zkServer.sh start、停止:zkServer.sh stop

    zkCleanup:清理zookeeper历史数据,包括事务日志文件和快照数据文件

    zkCli:zookeeper的一个简易客户端

    zkEnv:设置zookeeper的环境变量

    zkServer:zookeeper服务器的启动、停止和重启脚本。

启动过程中的常见异常:

   Address already is use(端口被占用)---导致该异常的原因通常是2181端口已经被其他进程占用了。通常先检查当前机器上哪个进程正在占用这个端口,确认其端口占用的必要性,将该进行停止后,再次启动Zookeeper即可。也可编辑zoo.cfg文件,更换其clientPort配置修改端口。

   No space left on device(磁盘没有剩余空间)---无论是在启动还是在正常运行过程中,都可能出现如下异常。一旦遇到这个异常,Zookeeper会立即执行Failover策略,从而退出进程。通常选择清理磁盘,为了避免再次遇到此类磁盘空间满的问题,需要加上对zookeeper机器的磁盘使用量监控和zookeeper日志的自动清理。

   /tmp/zookeeper/myid file is missing(无法找到myid文件)---在部署一个zookeeper集群时,需要在数据目录下创建一个myid文件。

   Cannot open channel to 2 at election address /122.228.242.242:3888(集群中其他机器Leader选举端口未开)---在集群模式下部署服务器逐台启动过程中,会碰到该类异常。这是由于在启动过程中,虽然当前机器启动了,但其他机器还没有启动完成,因此无法和其他机器在相应端口上进行连接。碰到这类问题,只需要快速启动集群中的其他机器即可。

  

Zookeeper-集群与单机实践的更多相关文章

  1. Zookeeper 集群搭建--单机伪分布式集群

    一. zk集群,主从节点,心跳机制(选举模式) 二.Zookeeper集群搭建注意点 1.配置数据文件 myid 1/2/3 对应 server.1/2/3 2.通过./zkCli.sh -serve ...

  2. zookeeper 集群相关配置实践

    一,zookeeper 集群下载及配置 1.1, 准备三台服务器node1,node2,node3. 1.2, [root@liunx local]#yum install -y java #安装ja ...

  3. java 学习笔记(三)ZooKeeper集群搭建实例,以及集成dubbo时的配置 (转)

    ZooKeeper集群搭建实例,以及集成dubbo时的配置 zookeeper是什么: Zookeeper,一种分布式应用的协作服务,是Google的Chubby一个开源的实现,是Hadoop的分布式 ...

  4. 四:ZooKeeper的集群,伪集群,单机的搭建

    一:ZooKeeper服务安装包下载 第一步:打开zooKeeper官网

  5. Zookeeper集群搭建(单机多节点,伪集群,docker-compose集群)

    Zookeeper介绍 原理简介 ZooKeeper是一个分布式的.开源的分布式应用程序协调服务.它公开了一组简单的原语,分布式应用程序可以在此基础上实现更高级别的同步.配置维护.组和命名服务.它的设 ...

  6. Zookeeper集群搭建(多节点,单机伪集群,Docker集群)

    Zookeeper介绍 原理简介 ZooKeeper是一个分布式的.开源的分布式应用程序协调服务.它公开了一组简单的原语,分布式应用程序可以在此基础上实现更高级别的同步.配置维护.组和命名服务.它的设 ...

  7. zookeeper集群的搭建(个人实践可行)

    linux 上面 zookeeper 集群(最少3个节点192.168.204.128.192.168.204.129.192.168.204.130)安装 1.创建文件夹/usr/local/zoo ...

  8. zookeeper集群扩容/下线节点实践

    环境:zookeeper版本 3.4.6jdk版本 1.7.0_8010.111.1.29 zk110.111.1.44 zk210.111.1.45 zk310.111.1.46 zk410.111 ...

  9. 第5章 选举模式和ZooKeeper的集群安装 5-2 单机伪分布式安装zookeeper集群

    先搭建伪分布式集群,再去搭建真分布式集群.有些的人的电脑内存.性能比较低,所以在搭建真实的一个分布式环境的话,可能会相对来说比较卡,所以两种都会做一下,首先会在单机上搭建一个集群.单机上的集群主要就是 ...

随机推荐

  1. Android联网更新应用

    UpdateInfo public class UpdateInfo { public String version;//服务器的最新版本值 public String apkUrl;//最新版本的路 ...

  2. 关键字提取算法TF-IDF和TextRank(python3)————实现TF-IDF并jieba中的TF-IDF对比,使用jieba中的实现TextRank

    关键词:    TF-IDF实现.TextRank.jieba.关键词提取数据来源:    语料数据来自搜狐新闻2012年6月—7月期间国内,国际,体育,社会,娱乐等18个频道的新闻数据    数据处 ...

  3. 通用triggerEvent方法

    假设有一个id为testA的a元素,然后有以下代码(jquery已存在): $(document).ready(function(){ $('#testA').on('testEvent', func ...

  4. JVM内核优化

    1.垃圾回收器 JVM垃圾回收器有串行和并行两种. 1.1 Serial收集器(串行,单线程),现在使用较少 Serial一般收集新生代 SerialOld一般收集老年代(采用标记压缩算法) 1.2 ...

  5. IP Core 分类

    IP(Intelligent Property)核是具有知识产权核的集成电路芯核总称,是经过反复验证过的.具有特定功能的宏模块,与芯片制造工艺无关,可以移植到不同的半导体工艺中.到了SOC阶段,IP核 ...

  6. 7z常用命令行&7z检测压缩包完整性&7z压缩包错误不执行rsync同步

    7Z简介&常用命令 7Z脚本使用说明 7Z检测压缩包完整性脚本 7Z压缩包错误不执行Rsync脚本 1.7Z简介&常用命令 ⑴简介: 7z,全称7-Zip, 是一款开源软件.是目前公认 ...

  7. 创建随机的9x9数独游戏终盘并打印

    创建随机的9x9数独游戏终盘并打印 项目github地址 1. 项目相关要求 1.1 要求 利用程序随机构造出N个已解答的9x9数独棋盘 . 输入 数独棋盘题目个数N(0<N<=10000 ...

  8. vue文件在编辑器Sublime Text3中高亮

    编写代码时,代码在编辑器中显示高亮,一方面,在感官方面使人觉得很舒服:另一方面,还可以提高开发效率.下面简单介绍vue文件在Sublime Text3 中高亮的vue插件的安装方法: 第一步:安装Pa ...

  9. UOJ 【UR #5】怎样跑得更快

    [UOJ#62]怎样跑得更快 题面 这个题让人有高斯消元的冲动,但肯定是不行的. 这个题算是莫比乌斯反演的一个非常巧妙的应用(不看题解不会做). 套路1: 因为\(b(i)\)能表达成一系列\(x(i ...

  10. PyCharm设置Python版本

    PyCharm默认会使用虚拟的Python解释器,即使没有安装也能够运行Python代码,但有强迫症的程序员一定不能忍受Project中存在这么多的文件目录 设置Python版本 File->S ...