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

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
    ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户

    实验环境:

    主机名 系统 IP地址
    hadoop1 CentOS  6.5 192.168.241.131
    hadoop2 CentOS  6.5 192.168.241.133
    hadoop3 CentOS  6.5 192.168.241.134

    zookeeper3.4.9 的tar包链接为https://pan.baidu.com/s/1bpqZ9bHgzeri53AWgW2L4Q  提取码:sbp0 永久有效。

    实验之前准备工作:

    zookeeper集群节点规划

    三台测试机全部关闭防火墙,要是生产环境建议开放防火墙规则即可,不建议直接关闭防火墙。

    每台主机重命名,方便互相之间的通讯联系。

    以第一台为例:

    vim /etc/sysconfig/network
    HOSTNAME=hadoop1

    其它两台分别命令为 hadoop2和 hadoop3,最好重启生效。

    做hosts主机记录中做域名解析,三台都一样

    vim /etc/hosts
    192.168.241.130 hadoop1
    192.168.241.133 hadoop2
    192.168.241.134 hadoop3

    开始正式部署环境:

    1:首先在第一台机器上(hadoop100)安装部署,上传安装包,解压
    修改配置文件

    tar xvf zookeeper-3.4.9.tar.gz 
    mv zookeeper-3.4.9 zookeeper
    cd zookeeper/conf/
    mv zoo_sample.cfg zoo.cfg
    

     编辑配置文件。

    vi conf/zoo.cfg
    dataDir=/usr/local/zookeeper/data
    server.0=hadoop1:2888:3888
    server.1=hadoop2:2888:3888
    server.2=hadoop3:2888:3888
    解释说明:2888为通讯端口,3888为选举端口

    2:把hadoop1上的zookeeper拷贝到其他两个节点

    scp -rpq zookeeper hadoop2:/data/soft
    scp -rpq zookeeper hadoop3:/data/soft

    3(注意):需要在集群中的每台机器下面创建一个myid文件 保存当前节点的编号信息
    myid文件的位置在:${dataDir}参数配置目录下面。以第一台为例:

    cd /data/soft/zookeeper
    mkdir data
    cd data
    vi myid
    0
    cat myid
    0 

    文件的内容根据上面指定的每个节点对应的编号0,1,2


    4:启动
    分别在每个节点上都启动

    sh bin/zkServer.sh start
    

    此时查看文件信息目录内容

     ll
    总用量 1608
    drwxr-xr-x.  2 1001 1001    4096 8月  23 2016 bin
    -rw-rw-r--.  1 1001 1001   83539 8月  23 2016 build.xml
    -rw-rw-r--.  1 1001 1001   90824 8月  23 2016 CHANGES.txt
    drwxr-xr-x.  2 1001 1001    4096 4月  19 10:19 conf
    drwxr-xr-x. 10 1001 1001    4096 8月  23 2016 contrib
    drwxr-xr-x.  3 root root    4096 4月  19 10:41 data
    drwxr-xr-x.  2 1001 1001    4096 8月  23 2016 dist-maven
    drwxr-xr-x.  6 1001 1001    4096 8月  23 2016 docs
    -rw-rw-r--.  1 1001 1001    1953 8月  23 2016 ivysettings.xml
    -rw-rw-r--.  1 1001 1001    3499 8月  23 2016 ivy.xml
    drwxr-xr-x.  4 1001 1001    4096 8月  23 2016 lib
    -rw-rw-r--.  1 1001 1001   11938 8月  23 2016 LICENSE.txt
    -rw-rw-r--.  1 1001 1001     171 8月  23 2016 NOTICE.txt
    -rw-rw-r--.  1 1001 1001    1770 8月  23 2016 README_packaging.txt
    -rw-rw-r--.  1 1001 1001    1585 8月  23 2016 README.txt
    drwxr-xr-x.  5 1001 1001    4096 8月  23 2016 recipes
    drwxr-xr-x.  8 1001 1001    4096 8月  23 2016 src
    -rw-rw-r--.  1 1001 1001 1368238 8月  23 2016 zookeeper-3.4.9.jar
    -rw-rw-r--.  1 1001 1001     819 8月  23 2016 zookeeper-3.4.9.jar.asc
    -rw-rw-r--.  1 1001 1001      33 8月  23 2016 zookeeper-3.4.9.jar.md5
    -rw-rw-r--.  1 1001 1001      41 8月  23 2016 zookeeper-3.4.9.jar.sha1
    -rw-r--r--.  1 root root    9280 4月  19 11:13 zookeeper.out

    查看每台的服务状态

    hadoop1的状态为foller

    [root@hadoop1 zookeeper]# sh bin/zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /data/soft/zookeeper/bin/../conf/zoo.cfg
    Mode: follower
    

    hadoop2的状态为foller

    [root@hadoop2 zookeeper]# sh bin/zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /data/soft/zookeeper/bin/../conf/zoo.cfg
    Mode: follower
    

     hadoop3的转态为leader,说明hadoop3为主节点。 

    [root@hadoop3 zookeeper]# sh bin/zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /data/soft/zookeeper/bin/../conf/zoo.cfg
    Mode: leader 

     进入客户端模式可以查看相关信息:

     sh bin/zkCli.sh 
    Connecting to localhost:2181
    2018-04-19 10:49:05,854 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.9-1757313, built on 08/23/2016 06:50 GMT
    2018-04-19 10:49:05,858 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=hadoop3
    2018-04-19 10:49:05,858 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.8.0_152
    2018-04-19 10:49:05,862 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
    2018-04-19 10:49:05,862 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/usr/local/jdk1.8.0_152/jre
    2018-04-19 10:49:05,862 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/data/soft/zookeeper/bin/../build/classes:/data/soft/zookeeper/bin/../build/lib/*.jar:/data/soft/zookeeper/bin/../lib/slf4j-log4j12-1.6.1.jar:/data/soft/zookeeper/bin/../lib/slf4j-api-1.6.1.jar:/data/soft/zookeeper/bin/../lib/netty-3.10.5.Final.jar:/data/soft/zookeeper/bin/../lib/log4j-1.2.16.jar:/data/soft/zookeeper/bin/../lib/jline-0.9.94.jar:/data/soft/zookeeper/bin/../zookeeper-3.4.9.jar:/data/soft/zookeeper/bin/../src/java/lib/*.jar:/data/soft/zookeeper/bin/../conf:.:/usr/local/jdk1.8.0_152/lib/dt.jar:/usr/local/jdk1.8.0_152/lib/tools.jar
    2018-04-19 10:49:05,863 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
    2018-04-19 10:49:05,863 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
    2018-04-19 10:49:05,863 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
    2018-04-19 10:49:05,863 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux
    2018-04-19 10:49:05,863 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=amd64
    2018-04-19 10:49:05,863 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=2.6.32-431.el6.x86_64
    2018-04-19 10:49:05,864 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=root
    2018-04-19 10:49:05,864 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/root
    2018-04-19 10:49:05,864 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/data/soft/zookeeper
    2018-04-19 10:49:05,870 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@579bb367
    Welcome to ZooKeeper!
    2018-04-19 10:49:05,918 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)
    JLine support is enabled
    2018-04-19 10:49:06,041 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@876] - Socket connection established to localhost/0:0:0:0:0:0:0:1:2181, initiating session
    2018-04-19 10:49:06,056 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1299] - Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x262dbc746fb0001, negotiated timeout = 30000
    
    WATCHER::
    
    WatchedEvent state:SyncConnected type:None path:null
    [zk: localhost:2181(CONNECTED) 0] ls /
    [zookeeper]
    

    解释说明 :

    领导者(leader),负责进行投票的发起和决议,更新系统状态
    学习者(learner),包括跟随者(foller)和观察者(observer),
    foller用于接受客户端请求并向客户端返回结果,在选主过程中参与投票。
    observer可以接受客户端连接,将写请求转发给leader,但不参加投票过程,只同步leader的状态,observer的目的是为了扩展系统,提高读取速度。
    客户端(client),请求发起者

    结束语:

    好了,这就是简单的zookeeper集群安装,我看网上很多地方写的特复杂,我就简化了一下,希望能帮助大家快速入门zookeeper,下次的博客就是对zookeeper使用的相关命令做解释,希望有兴趣的小伙伴可以看看。 

  • 相关阅读:
    杭电 Problem
    杭电Problem 5053 the sum of cube 【数学公式】
    杭电 Problem 2089 不要62 【打表】
    杭电 Problem 4548 美素数【打表】
    杭电 Problem 2008 分拆素数和 【打表】
    杭电 Problem 1722 Cake 【gcd】
    杭电 Problem 2187 悼念512汶川大地震遇难同胞——老人是真饿了【贪心】
    杭电Problem 1872 稳定排序
    杭电 Problem 1753 大明A+B
    东北林业大 564 汉诺塔
  • 原文地址:https://www.cnblogs.com/nshgo/p/8881233.html
Copyright © 2011-2022 走看看