zoukankan      html  css  js  c++  java
  • 大数据【六】ZooKeeper部署

    这是一个分布式服务框架,阿帕奇的一个子项目。关于ZooKeeper我只简单的部署一下,以便后面的HBase。

    一  概述

    ZooKeeper 分布式服务框架是 Apache Hadoop 的一个子项目,主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。

    ZooKeeper是以Fast Paxos算法为基础的。

    ZooKeeper集群的初始化过程:集群中所有机器以投票的方式(少数服从多数)选取某一台机器作为leader(领导者),其余机器作为follower(追随者)。如果集群中只有一台机器,那么就这台机器就是leader,没有follower。

    ZooKeeper集群与客户端的交互:客户端可以在任意情况下ZooKeeper集群中任意一台机器上进行读操作;但是写操作必须得到leader的同意后才能执行。

    ZooKeeper选取leader的核心算法思想:如果某服务器获得N/2 + 1票,则该服务器成为leader。N为集群中机器数量。为了避免出现两台服务器获得相同票数(N/2),应该确保N为奇数。因此构建ZooKeeper集群最少需要3台机器。

    二   ZooKeeper部署

    1’  安装JDK(最先的博客早就说明配置了)

          因为 ZooKeeper 服务器在 JVM 上运行。

    2‘  修改ZooKeeper配置文件

          >首先配置slave1,slave2,slave3之间的免密和各个机器的/etc/hosts文件

            修改ZooKeeper的配置文件,步骤如下:

            进入解压目录下,把conf目录下的zoo_sample.cfg 复制成zoo.cfg文件

              

    3’  打开zoo.cfg并修改和添加配置项目,如下:

    # The number of milliseconds of each tick
        tickTime=2000
        # The number of ticks that the initial 
        # synchronization phase can take
        initLimit=10
        # The number of ticks that can pass between 
        # sending a request and getting an acknowledgement
        syncLimit=5
        # the port at which the clients will connect
        clientPort=2181
        # the directory where the snapshot is stored.
        dataDir=/usr/cstor/zookeeper/data

    dataLogDir=/usr/cstor/zookeeper/log

    server.1=slave1:2888:3888

    server.2=slave2:2888:3888

    server.3=slave3:2888:3888

    4‘  新建两个目录。

        mkdir /usr/cstor/zookeeper/data

        mkdir /usr/cstor/zookeeper/log

        

      将/usr/cstor/zookeeper目录传到另外两台机器上。

         scp -r /usr/cstor/zookeeper root@slave2:/usr/cstor

         scp -r /usr/cstor/zookeeper root@slave3:/usr/cstor

      分别在三个节点上的/usr/local/zookeeper/data目录下创建一个文件:myid。

          vi /usr/cstor/zookeeper/data/myid 

      分别在myid上按照配置文件的server.<id>中id的数值,在不同机器上的该文 件中填写相应过的值,如下:

          slave1   的myid内容为1

          slave2   的myid内容为2
               slave3   的myid内容为3

    5’  启动ZooKeeper集群

        然后,启动ZooKeeper集群,进入客户端验证部署完成。

        分别在三个节点进入bin目录,启动ZooKeeper服务进程

            cd /usr/cstor/zookeeper/bin

            ./zkServer.sh start

          

        在各机器上依次执行脚本,查看ZooKeeper状态信息,两个节点是follower状态,一个节点是leader状态:

            ./zkServer.sh status

        在其中一台机器上执行客户端脚本:

            ./zkCli.sh -server slave1:2181,slave2:2181,slave3:2181

          

        在客户端shell下执行创建目录命令:

            create /testZk ""

        向/testZk目录写数据:

            set /testZk 'aaa'

          

        读取/testZk目录数据:

            get /testZk

        删除/testZk目录:

            rmr /testZk

        在客户端shell下用quit命令退出客户端:

            quit

          

  • 相关阅读:
    bzoj1007: [HNOI2008]水平可见直线(单调栈)
    1264: [AHOI2006]基因匹配Match(动态规划神题)
    bzoj1433: [ZJOI2009]假期的宿舍(最大二分图匹配)
    bzoj3931: [CQOI2015]网络吞吐量(spfa+网络流)
    [ZJOI2007]矩阵游戏
    [HAOI2007]覆盖问题
    [ZJOI2008]树的统计
    [ZJOI2010]数字计数
    [HAOI2006]旅行
    [HAOI2006]数字序列
  • 原文地址:https://www.cnblogs.com/1996swg/p/7290828.html
Copyright © 2011-2022 走看看