zoukankan      html  css  js  c++  java
  • Zookeeper-集群与单机实践

    我用的是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选举端口未开)---在集群模式下部署服务器逐台启动过程中,会碰到该类异常。这是由于在启动过程中,虽然当前机器启动了,但其他机器还没有启动完成,因此无法和其他机器在相应端口上进行连接。碰到这类问题,只需要快速启动集群中的其他机器即可。

      

  • 相关阅读:
    django1.6 django-dajaxice的安装配置.
    jquery js ajax 不错的想法
    django1.6 GET url传参 乱码
    django1.6 CSRF verification failed. Request aborted. 用出现表单提交
    Caml语句中筛选lookup字段
    sharepoint Jsom一些基本操作
    JSOM启动工作流
    数据量太大时,如何实现分页查询-CSOM
    数据量太大时,如何实现分页查询-JSOM
    JS加强学习-DOM学习02
  • 原文地址:https://www.cnblogs.com/zhangbLearn/p/9648316.html
Copyright © 2011-2022 走看看