zookeeper

我只是一个虾纸丫 提交于 2019-11-26 10:35:29

zookeeper相关配置

zookeeper配置
    vim /etc/profile
    添加以下几行
        ZOOKEEPER_HOME=/usr/local/software/zookeeper
        PATH=$ZOOKEEPER_HOME/bin:$PATH
        export ZOOKEEPER_HOME
    重新加载/etc/profile配置文件 
        source /etc/profile
    进入conf下修改 zoo_sample.cfg 文件名 或复制 文件名为 zoo.cfg
        cd zookeeper/conf/ &&  cp zoo_sample.cfg zoo.cfg
        
    修改  zoo.cfg
    1.修改zookeeper文件存放位置
        dataDir=/usr/local/software/zookeeper/data
    2.最后面添加以下几行
        server.0=192.168.31.42:2888:3888
        server.1=192.168.31.43:2888:3888
        server.2=192.168.31.44:2888:3888
    3.进入 zookeeper 目录 (/usr/local/software/zookeeper) 创建 data 目录
        mkdir data
    4.在 data 目录下创建 myid 文件 ((内容为服务器标识:0   对应server.0   server.1   server.2)
        42 服务器 : 在 myid 中 输入  0
        43 服务器 : 在 myid 中 输入  1
        44 服务器 : 在 myid 中 输入  2
    启动 zookeeper
        zkServer.sh start
    查看 zookeeper 运行状态
        zkServer.sh status  
        
------------------------------------------------------------------------------------------------       
操作zookeeper (shell)
    zkCli.sh 进入zookeeper客户端
    根据提示命令进行操作:
    查找:
        ls / 
        ls /zookeeper
    创建并赋值:create /bhz hadoop
    获取:get /bhz
    设值:set /bhz baihezhuo
    可以看到zookeeper集群的数据一致性
    创建节点有俩种类型:短暂(ephemeral)
    持久(persistent)
    
------------------------------------------------------------------------------------------------    
zoo.cfg详解:
 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

java操作zookeeper

    <dependency>
        <groupId>org.apache.zookeeper</groupId>
        <artifactId>zookeeper</artifactId>
        <version>3.4.5</version>
    </dependency>

报错:Maven com.sun.jdmk:jmxtools:jar 下载不下来

原来是这样,在log4j 1.2.15版本中,引用了这样一个repos
    <repository>
        <id>java.net</id>
        <url>https://maven-repository.dev.java.net/nonav/repository</url>
        <layout>legacy</layout>
    </repository>
要从它这里面下载jms

解决方法是:

将pom.xml里的log4j的版本修改为:1.2.16或者1.2.17

    <dependency>
        <groupId>log4j</groupId>
         <artifactId>log4j</artifactId>
         <version>1.2.16</version>
    </dependency>
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!