• hadoop学习笔记——zookeeper平台搭建


    zookeeper是一个自动管理分布式集群的一个工具,以实现集群的高可用。

    比如集群中的一个机器挂掉了,没有zookeeper的话就得考虑挂一个机器对剩下集群工作的影响,而有了zookeeper,它就能自动帮你协调这些事儿。

    正规的解释如下:

      zookeeper是 一个开源的针对大型分布式系统的可靠协调系统。

      设计目标是:将复杂且容易出错的分布式式一致性服务封装起来,构成一个高效可靠的原语集,

            并以简单易用的接口提供给用户使用。

      提供的功能包括:发布/订阅,分布式协调/通知,配置管理,集群管理,主从协调,分布式锁等。

    安装与配置:

    这里用三台centos6.9mini虚拟机演示,主机名分别是h1、h2、h3,ip分别是192.168.227.11、192.168.227.22、192.168.227.33。

    三台虚拟机都已创建了hadoop用户,配了免密码登录。

    软件安装路径是/home/hadoop/apps/。

    1. 下载解压安装包

    解压后,/home/hadoop/apps/zookeeper-3.4.10/下面的文件

    2. 创建软连接

     这一步要用root用户操作,先切换到root用户

    语法:ln -s 源路径 软连接路径

    ln -s /home/hadoop/apps/zookeeper-3.4.10 /usr/local/zookeeper

    修改zookeeper软链接属主为hadoop:

    chown -R hadoop:hadoop /usr/local/zookeeper

    3. 修改环境变量

    用root用户操作

    vim /etc/profile

    添加以下内容:

    export JAVA_HOME=/usr/local/jdk

    export ZOOKEEPER_HOME=/usr/local/zookeeper

    export PATH=$PATH:${ZOOKEEPER_HOME}/bin:${JAVA_HOME}/bin

    添加并保存后,重新编译环境变量:

    source /etc/profile

    (没有jdk的先下载jdk)

    4. 修改配置文件

    zookeeper/conf是保存配置文件的文件夹

    修改里面的zoo.cfg文件

    vi /conf/zoo.cfg

    添加以下内容:

    dataDir=/usr/local/zookeeper/data    #快照文件存储目录

    dataLogDir=/usr/local/zookeeper/log   #事务日志文件目录

    #(主机名, 心跳端口、数据端口)

    server.1=h1:2888:3888 

    server.2=h2:2888:3888

    server.3=h3:2888:3888

    5. 创建运行需要的目录

    在zookeeper目录下创建配置文件里写的目录

    mkdir /usr/local/zookeeper/data

    mkdir /usr/local/zookeeper/log

    在data文件夹下新建myid文件,myid的文件内容为该节点的编号

    cd data

    touch myid

    echo 1 >myid

    6. 配置其余两个机器

    用scp命令将整个zookeeper文件夹复制到其余两个机器上

    scp -r /home/hadoop/apps/zookeeper-3.4.10 hadoop@h2:/home/hadoop/apps

    scp -r /home/hadoop/apps/zookeeper-3.4.10 hadoop@h3:/home/hadoop/apps

    然后按步骤2和步骤3分别对这两个机器创建软连接和修改环境变量。

    将h2和h3机器里/hadoop/data/myid 中的数分别改成2和3。

    至此就配置完了!

    检查一下各个主机的运行

    h1、h2、h3 依次执行zkServer.sh start

    jps查看进程:

    三个都开启后,执行zkServer.sh status查看zookeeper状态:

    h1

    h2

    h3

    可以看到zookeeper能够正常运行了。

    数据存储:

    zookeeper以Znode形式存储数据
    类似于linux,但Znode可以存放数据
    Znode类型:
    持久节点、临时节点、顺序节点
    组合:持久节点、持久顺序节点
    临时节点、临时顺序节点
    客户端创建临时节点后,当客户端与服务端断开连接后,临时节点将被删除,临时节点下不允许有子节点

    监听机制使用:

    即发布订阅功能
    客户端注册一个监听时间,当zookeeper上被监听的时间发生变化时,会第一时间通知订阅者

    客户端操作:

    zkCli.sh 命令进入客户端
    create [选项] 路径 值 #创建节点并赋值,不能不赋值
    -s 顺序型 -e 临时型
    set 路径 值 #改变节点的值
    get 路径 #获取节点的值
    get 路径 watch #监听节点数据内容变化,只监听一次
    ls 路径 watch #监听节点目录变化,只监听一次
    delete 路径 #删除一个节点,节点下不能有子节点
    rmr 路径 #删除有子节点的目录
    cons #输出所有客户端的连接信息

  • 相关阅读:
    解决maven导入坐标太慢问题
    +=的扩展
    JavaScript
    多线程
    异常
    面向对象
    数组
    java内存
    循环语句和递归
    剑指 Offer 30. 包含min函数的栈
  • 原文地址:https://www.cnblogs.com/panda-blog/p/9394366.html
Copyright © 2020-2023  润新知