• Zookeeper集群服务部署


      Zookeeper是一个分布式、开源的分布式应用程序协调服务,是Google的Chubby的开源实现,也是和Hadoop、Hbase相互配合的重要组件,作用就是为分布式应用程序提供一致性服务,包括配置维护、名字服务、分布式同步等

      接下来在之前配置好hadoop集群环境的3台虚拟机上配置zookeeper集群,配置zookeeper集群之前和hadoop一样,都要配置各主机之间可以正常通信,包括:主机名修改、hosts映射、开放端口或者关闭防火墙这些,配置和hadoop之前的准备工作完全一样,这里就不细说了

      首先去apache官网下载zookeeper,首页网址是:http://zookeeper.apache.org/

      然后点击下方的download超链接,再次点击下面另一个download超链接就进入镜像选取页面,进行下载即可

      地址是:http://www.apache.org/dyn/closer.cgi/zookeeper/

      

      这里下载的版本是:zookeeper-3.4.6,下载成功之后,上传到其中一台主机的指定目录下,这里三台主机是:hadoopha、hadoop1、hadoop2,这里上传到hadoopha下

      在/usr/下新建目录zookeeper:mkdir /usr/zookeeper

      然后zookeeper安装包并放到新建好的目录下:

    $ tar -xvzf zookeeper-3.4.6.tar.gz
    $ mv zookeeper-3.4.6/ /usr/zookeeper/

      然后在指定位置创建数据目录和日志目录,这个自己定义:

    $ mkdir /usr/zookeeper/zookeeper
    $ mkdir /usr/zookeeper/zookeeper/log

      然后在数据目录下创建myid文件,并写入ID:

    echo 1 > /usr/zookeeper/zookeeper/myid

      这个myid文件内容是集群中各个节点的标识,必须是数字,到后续应该对每台机器依次修改

      然后进入zookeeper的安装目录下的conf目录执行如下操作编辑配置文件:

    cd /usr/zookeeper/zookeeper-3.4.6/conf && mv zoo_sample.cfg zoo.cfg && vim zoo.cfg

      数据目录去掉注释修改配置如下:

      dataDir=/usr/zookeeper/zookeeper

      追加一行事务日志目录配置:

      dataLogDir=/usr/zookeeper/zookeeper/log

      保留文件数目配置,默认为3:

      autopurge.snapRetainCount=3

      添加一行清理频率的配置,单位是小时,默认为0,表示不会自动清理,应该根据需要配置一个>=1的整数,这里配置为1:

      autopurge.purgeInterval=1

      在最后添加如下配置:

      server.1=hadoopha:2888:3888
      server.2=hadoop1:2888:3888
      server.3=hadoop2:2888:3888

      这个定义了每个主机对应的节点,server.x,x数值应和myid保持一致,当zookeeper启动时会读取myid文件和zoo.cfg配置信息,然后确定唯一的节点

      后面的端口号是集群中Leader和Follower之间进行通信的端口,一般不用修改,保存即可

      然后把配置好的整个目录发送到另外两台主机,实现文件同步:

    $ scp -r /usr/zookeeper/ hadoop1:/usr/
    $ scp -r /usr/zookeeper/ hadoop2:/usr/

      复制完成之后,修改另外两台机器的myid文件分别是:hadoop1->2,hadoop2->3

      现在都配置完毕了,接下来在3台主机上依次运行bin/zkServer.sh start启动Zookeeper服务,一定是每台主机都要启动

      启动流程是:系统首先会选取Leader,充当Leader的这台机器相当于领导者,负责进行投票的发起和决议,更新系统状态;然后会进行同步数据,通过配置好的端口进行;最后进入工作流程。

      启动成功之后,可以通过命令jps查看执行进程

      

      如果有QuorumPeerMain这个进程则代表启动成功

      可以通过:bin/zkServer.sh status查看各节点角色

      

      此时,hadoop1为leader节点,其他的节点均为follower,这个结果是选举出来的

      可以通过命令:bin/zkServer.sh stop来停止zookeeper服务

      接下来可以测试一下服务的故障转移是否好用:

      在hadoop1节点中杀死leader服务进程:

      

      可以看出进程确实不存在了,然后在剩余两个节点分别执行:bin/zkServer.sh status,可以发现hadoop3由follower节点变为leader节点,说明故障进行了转移,zookeeper集群是可用的

      

  • 相关阅读:
    Spring MVC 完全注解方式配置web项目
    spring WebServiceTemplate 调用 axis1.4 发布的webservice
    修改Intellij Idea 创建maven项目默认Java编译版本
    Git Commit提交规范和IDEA插件Git Commit Template的使用
    myEclipse10安装以及破解
    ES6中Map与其他数据结构的互相转换
    ES6用来判断数值的相关函数
    WebStorm使用码云插件问题
    Css解决表格超出部分用省略号显示
    Js/Jquery获取网页屏幕可见区域高度
  • 原文地址:https://www.cnblogs.com/freeweb/p/5160820.html
Copyright © 2020-2023  润新知