• Zookeeper集群搭建


    1.一共三个节点(zk服务器集群规模不小于3个节点),要求服务器之间系统时间保持一致。

    2. 先去zookeeper官网下载zookeeper的安装包,并将zookeeper通过工具上传到服务器。上传zk

    进行解压:

    tar -zxvf  zookeeper-3.4.5.tar.gz

    重命名:

    mv zookeeper-3.4.5 zookeeper

    使用vi /etc/profile命令配置zookeeper的环境变量,在profile文件最后加入下面两行:

    vi /etc/profile

    export ZOOKEEPER_HOME=/usr/local/zookeeper

    export PATH=$ZOOKEEPER_HOME/bin:$PATH

    为了使环境变量生效,使用source /etc/profile命令刷新环境变量。

    source /etc/profile

    使用cd /usr/local/zookeeper/conf目录下修改zookeeper的配置文件。因为zookeeper默认使用的配置文件是zoo.cfg,所以使用mv zoo_sample.cfg zoo.cfg命令重命名zookeeper的配置文件。

    使用vi zoo.cfg命令修改zoo.cfg文件

    vi zoo.cfg

    修改两处

    (1)dataDir=/usr/local/zookeeper/data

    (2)并在文件最后添加下面三行(因为我在学习zookeeper时使用了三台虚拟机):

    server.1=192.168.198.130:2888:3888
    server.2=192.168.198.129:2888:3888
    server.3=192.168.198.128:2888:3888

    退出并保存zoo.cfg文件。

    服务器标识配置:

    在/usr/local/zookeeper目录下使用mkdir data目录,并进入data目录,接着使用vi myid创建myid文件,该文件中的内容为0(另外两台虚拟机为1,2)。

    启动zookeeper

    进入/usr/local/zookeeper/bin目录,使用zkServer.sh start启动zookeeper(如果想看日志或者想看一下在启动过程中是否报错,可以使用zkServer.sh start-foreground命令启动zookeeper)。

    使用zkServer.sh status来查看zookeeper的状态,我这里因为有三个节点,所以其一个为leader,另外两个为follower。

    zkServer.sh stop 停止服务

    zkServer.sh status查看状态的时候却出现错误,如下:

    JMX enabled by default
    Using config: /hadoop/zookeeper/bin/../conf/zoo.cfg
    Error contacting service. It is probably not running.

    jps查看进程,却发现进程已启动

    7313  QuorumPeerMain

    因为防火墙没有关闭。关闭防火墙:

      #查看防火墙状态

       service iptables status 

      #关闭防火墙
       service iptables stop
      #查看防火墙开机启动状态
       chkconfig iptables --list
      #关闭防火墙开机启动
       chkconfig iptables off

    操作zookeeper (shell)

    在ZOOKEEPER_HOME/bin目录下输入zkCli.sh可以进入zookeeper客户端。

    查找:ls /

    创建并赋值:create /hyy "mydata"

    获取:get /hyy

    设置值:set /hyy "hello"

    deleteall /path删除递归节点(当前要删除的节点下还有子节点则要使用rmr命令)

    delete /path/child删除指定的节点

    创建节点有两种类型:短暂(ephemeral)、持久(persistent)

    zookeeper配置文件详解:

    tickTime:基本事件单元,以毫秒为单位。这个时间是作为zookeeper服务器与服务器之间或客户端与服务器之间维持心跳的事件间隔。也就是每隔tickTime发送一个心跳。

    dataDir:存储内存中数据快照的位置,就是zookeeper保存数据的目录。默认情况下,zookeeper将写数据的日志文件也保存在这个位置。

    clientPort:客户端连接zookeeper服务器的端口,zookeeper会监听该端口,接受客户端的访问请求。

    initLimit:用来配置zookeeper接受客户端初始化连接时最长能忍受多少个心跳时间间隔,当超过10个心跳时间(也就是tickTime)长度后,zookeeper服务器还没有收到客户端的返回信息,则认为该客户端连接失败。总的时间长度就是10 * 2000=20秒(默认情况下)。

    syncLimit:leader与follower之间发送消息,请求和应答时间长度,最长不能超过多少个tickTime的时间长度,总的时间长度就是5 * 2000=10秒(默认情况下)。

    server.A=B:C:D:A表示这个是第几号服务器,B表示该服务器的ip地址,C表示该服务器与集群中的leader服务器蒋欢信息的端口,D表示如果集群中的leader服务器挂了,则通过该端口进行选举,选出一个新的leader。

         

  • 相关阅读:
    最全的ASP.NET开源CMS汇总
    excel学习range
    多线程写文件异常(正由另一进程使用,因此该进程无法访问该文件)的解决方法
    EXCEL之Range,cells,offset,end用法
    天佑中华
    敏捷测试感悟(之二)
    4月份到上海出差
    《Google API大全:编程·开发·实例》一书将在本周末的GDD(Google开发者大会)上首发
    敏捷测试感悟(之一)
    拿到了TD的3G测试手机
  • 原文地址:https://www.cnblogs.com/alter888/p/8867949.html
Copyright © 2020-2023  润新知