zoukankan      html  css  js  c++  java
  • zookeeper:一.zookeeper集群安装

    1.zookeeper简介

    zookeeper是一个开源的分布式协议服务框架,主要用来为应用程序做HA.提供的功能包括:配置维护、域名服务、分布式同步、组服务等。zookeeper的特点:
    1.简单易用
    提供了类似于文件系统的namespace(znode)来让应用程序(各节点)互相协调工作,
    2.自带复制功能
    zookeeper本身也是自带HA的,在2n+1个zookeeper节点中,只要在n+1个正常工作,zookeeper就能对外提供服务.zookeeper架构:


    3.高性能
    4.数据模型和文件化的命令名空间
    使用zookeeper就像使用文件系统一样

    5.临时的znode和永久的znode
    znode分为临时的和永久的两种,临时的在会话结束后就清除,永久的一直存在.znode中保存有数据、ACL、时间戳等,以及对应的版本变化,每次更新这些数据时,版本号会增加。zookeeper自动维护znode中的数据的读写,用户只需要像使用文件系统一样使用znode即可。每个znode都有对应的ACL(访问控制列表)
    6.数据一致性保证
    体现为:
    1)顺序保证。数据被按照发送来的顺序保存
    2)原子性。数据更新要么在全节点上成功,要么失败,不会出现节点之间数据不同步。
    3)镜像一致性。无论client连接到哪个server上,看到的镜像都是一样的
    4)持久性。数据一旦提交会一直存在。

    2.安装zookeeper

    2.1 安装环境准备

    1. 下载并安装jdk:
      http://java.sun.com/javase/downloads/index.jsp
      安装过程略
    2. 下载zookeeper安装包:
      http://zookeeper.apache.org/releases.html
    3. 设置zookeeper用户环境变量
      在/home/zookeeper/.bash_profile中加入:
    PATH=$PATH:$HOME/bin
    JAVA_HOME=/opt/java/jdk1.8.0_121
    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASS
    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JAVA_HOME/jre/lib/amd64/server
    PATH=$PATH:$JAVA_HOME/bin
    export PATH

    执行. ~/.bash_profile使其生效.测试:

    java

    2.2 安装zookeeper

    2.2.1.解压zookeeper压缩包到/opt/zookeeper

    解压后路径为:/opt/zookeeper-3.4.10

    2.2.2.编辑zookeeper配置文件

    创建zookeeper配置文件,文件名可以叫任务名字,一般取zoo.cfg,并放在/opt/zookeeper-3.4.10/conf下
    修改zoo.cfg文件:

    tickTime=2000
    dataDir=/opt/zookeeper-3.4.10/dataDir
    dataLogDir=/opt/zookeeper-3.4.10/dataLogDir
    clientPort=2181
    initLimit=5
    syncLimit=2
    server.1=zoo1:2888:3888
    server.2=zoo2:2888:3888
    server.3=zoo3:2888:3888

    tickTime:zookeeper心跳时间
    dataDir:数据目录
    dataLogDir:事务日志目录,不设置时放在dataDir下.要求高性能zookeeper服务时,将该目录放在高性能磁盘上.
    initLimit=5:当zookeeper集群启动时,follower要在5个tickTime内连接到leader,否则将follower丢弃
    syncLimit=2:当followert和leader同步数据时间限制超过时间follower将被丢弃.
    server.n=host: port: port 服务器列表.端口中,前者用于follower连接leader,只在leader上开启;后者用于选举leader

    2.2.3.创建myid文件

    在dataDir目录下创建myid文件,文件中写上server id,只写一个数字即可,数字范围1-255,如1号server就写1

    2.2.4.启动zookeeper

    将配置发到各上节点上,注意各个主机的myid不同
    启动zookeeper:

    bin/zkServer.sh start

    或者:

    java -cp zookeeper.jar:lib/slf4j-api-1.7.5.jar:lib/slf4j-log4j12-1.7.5.jar:lib/log4j-1.2.17.jar:conf org.apache.zookeeper.server.quorum.QuorumPeerMain zoo.cfg
    改成相应路径

    如果启动失败,检查zookeeper.out

    2017-04-14 23:53:57,907 [myid:3] - ERROR [hadoop3/172.18.0.13:3888:QuorumCnxManager@432] - Unreasonable buffer length: -194817
    只要telnet 3888端口,就会出现这个问题~

    2.2.5.测试

    找一台zookeeper服务器:

    [zk: 127.0.0.1:2181(CONNECTED) 1] ls /
    [zookeeper]
    [zk: 127.0.0.1:2181(CONNECTED) 2] create /zk_test my_data
    Created /zk_test
    [zk: 127.0.0.1:2181(CONNECTED) 3] ls /
    [zookeeper, zk_test]
    
    




  • 相关阅读:
    Snmp学习总结(四)——WinServer2003安装和配置SNMP
    Snmp学习总结(三)——Win7安装和配置SNMP
    Snmp学习总结(二)——WinXP安装和配置SNMP
    Snmp学习总结(一)——Snmp的基本概念
    Snmp学习总结系列——开篇
    MyEclipse使用总结——使用MyEclipse打包带源码的jar包
    (转载)反向代理服务器的工作原理
    AQS3---出队(凌乱,供参考,先看AQS2)
    AQS1---走向稳定态
    hread.interrupt()到底意味着什么
  • 原文地址:https://www.cnblogs.com/skyrim/p/6724965.html
Copyright © 2011-2022 走看看