zoukankan      html  css  js  c++  java
  • zookeeper 安装以及集群搭建

    安装环境:

      jdk1.7 

      zookeeper-3.4.10.tar.gz

      VM虚拟机redhat6.5-x64:192.168.1.200  192.168.1.201  192.168.1.202

      Xshell4

    部署方案:

    主机IP 集群通信端口 消息端口 节点目录
    192.168.1.200 2888:3888 2181 /usr/local/zookeeper
    192.168.1.201 2888:3888 2181 /usr/local/zookeeper
    192.168.1.202 2888:3888 2181 /usr/local/zookeeper

     

    三个几点安装前 检查时间是否同步,不同步使用ntpdate来同步。

    第一步:解压 zookeeper-3.4.10.tar.gz

    #解压
    tar -zxvf zookeeper-3.4.10.tar.gz -C /usr/local
    #修改目录名
    mv zookeeper-3.4.10 zookeeper

     第二步:配置zookeeper

    ZK配置文件:
    tickTime:发送心跳的间隔时间,单位:毫秒;
    
    
    dataDir:zookeeper保存数据的目录;
    
    
    clientPort:客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求;
    
    
    initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader的Follower服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5 个心跳的时间(也就是 tickTime)长度后Zookeeper服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒;
    
    
    syncLimit:这个配置项标识Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒;
    
    
    server.A=B:C:D:
    其中A是一个数字,表示这个是第几号服务器;
    B是这个服务器的ip地址;
    C表示的是这个服务器与集群中的Leader服务器交换信息的端口;
    D表示的是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于B都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号
    #切换zookeeper配置文件目录
    cd /usr/local/zookeeper/conf
    #修改配置文件名 默认运行配置文件名 zoo.cfg
    mv zoo_sample.cfg zoo.cfg
    #编辑配置文件
    vim zoo.cfg

    修改配置一:

    在/usr/local/zookeeper  创建目录data 用来存储集群节点信息(快照日志):包括zookeeper以及其他依赖zookeeper服务的集群

    dataDir=/usr/local/zookeeper/data

    在/usr/local/zookeeper  创建目录logs 用来存储事务日志

    dataLogDir=/usr/local/zookeeper/logs

    修改配置二:

    zookeeper各节点

    server.0=192.168.1.200:2888:3888
    server.1=192.168.1.201:2888:3888
    server.2=192.168.1.202:2888:3888

     

    第三步:创建myid文件

    在dataDir=/home/grid/zookeeper/data下创建myid文件 
    编辑myid文件,并在对应的IP的机器上输入对应的编号。如在第一台zookeeper上,我们给该myid文件内容指定就是0,第二台上就是1....

    修改zkEnv.sh  注明日志zookeeper.out目录  

    if [ "x${ZOO_LOG_DIR}" = "x" ]
    then
        ZOO_LOG_DIR="/usr/local/zookeeper/logs/zookeeper/logs"
    fi

    修改 zkServer.sh 指定依赖的jdk

    在原有代码之前加上

    export JAVA_HOME=/usr/local/jdk1.7.0_80
    export PATH=$JAVA_HOME/bin:$PATH
    

    第四步:配置环境变量

     

    [root@201 data]# vim /etc/profile
    [root@201 data]# source /etc/profile

    第五步:启停zookeeper

    [root@202 local]# zkServer.sh start
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    
    #zk 的jps名称是QuorumPeerMain
    [cluster@PCS101 conf]$ jps
    14213 QuorumPeerMain
    
    [cluster@PCS101 bin]$ ./zkServer.sh stop
    ZooKeeper JMX enabled by default
    Using config: /home/cluster/zookeeper/bin/../conf/zoo.cfg
    Stopping zookeeper ... STOPPED

    第六步:检查

    #follower表示从服务器
    [root@200 conf]# zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
    Mode: follower
    #leader表示主服务
    [root@202 local]# zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
    Mode: leader
    #客户端登录
    zkCli.sh

    第七步:检查集群存储各个节点信息,包括:Hadoop、Hbase、Storm、Kafka、activemq

    方式一:eclipse插件 

    方式二:ZooInspector

    具体参考:https://www.cnblogs.com/cac2020/p/9428255.html

    zk运维:

    问题1:查看日志zookeeper.log  

    2018-10-23 14:37:21,613 [myid:3] - ERROR [main:QuorumPeer@692] - Unable to load database on disk
    java.io.IOException: The accepted epoch, 8c96 is less than the current epoch, 8cc7
    at org.apache.zookeeper.server.quorum.QuorumPeer.loadDataBase(QuorumPeer.java:689)
    at org.apache.zookeeper.server.quorum.QuorumPeer.start(QuorumPeer.java:635)
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:170)
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:114)
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:81)

    然后无法启动

    [cluster@PCS103 bin]$ ./zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /home/cluster/zookeeper/bin/../conf/zoo.cfg
    Error contacting service. It is probably not running.

    原因启动时根据快照恢复数据出错  ,解决办法将快照目录 version-2  备份version-2.bak 然后重启即可解决

  • 相关阅读:
    Android Studio3.1.2编译时Java Compiler出错:Warning: Failed to parse host proxy3.bj...
    Android RxJava 2 的用法 just 、from、map、subscribe、flatmap、Flowable、Function、Consumer ...【转】
    Android DevArt6:Android中IPC的六种方式
    Android 深入浅出
    Eclipse代码自动补全
    Android 深入浅出
    Android 深入浅出
    Android中查看SQLite中字段数据的两种方式
    Android Studio 打包时 Signature Version 选择V1还是V2 ?
    Android进阶AIDL
  • 原文地址:https://www.cnblogs.com/cac2020/p/9426531.html
Copyright © 2011-2022 走看看