• 3.0 zookeeper的集群介绍、搭建、环境、安装


    zookeeper是本身是一种分布式协调服务(英文意思动物园园长因为Hadoop就是一个动物园,storm、hadoop、kafkaka、hbaser都是基于zookeeper开发的)

    原理:Zookeeper虽然在配置文件中并没有指定masterslave但是,zookeeper工作时,是有一个节点为leader,其他则为follower,Leader是通过内部的选举机制临时产生的。

    一、zookeeper是什么(马士兵的说法,言简意赅!)

    1、一致:所有用户通过客户端访问的数据全部一致

    2、有头:每个zookeeper集群都有一个leader和几个follower(通过PAXOS的选举机制)

     Leader 和  follower  只要集群中有半数以上节点存活,集群就能提供服务

    3.数据树:树状的储存数据结构(存储类型分为暂时和持久)

    数据Znode有两种类型:

    短暂(ephemeral)(断开连接自己删除)

    持久(persistent)(断开连接不删除)

    二、zookeeper的功能

    1、管理(存储,读取)用户程序提交的数据;

    2、并为用户程序提供数据节点监听服务;

    三、作用有哪些

    1、集群的配置一致

    2、对每台机器和数据进行监听

    3.、分布式的负载平衡

    4、分布式锁

    四、集群的特点

    半数机制:集群中半数以上机器存活,集群可用。

    zookeeper适合装在奇数台机器上!

    五、搭建zookeeper集群的步骤

    前提条件JDK安装完毕

      5.1上传及解压

    解压:tar -zxvf zookeeper-3.4.5.tar.gz

    重命名 : mv zookeeper-3.4.5 zookeeper

       5.2修改环境变量

    vim /etc/profile(修改文件)

      #zookeeper环境配置(为了在各种目录都能运行zookeeper命令)

      export ZOOKEEPER_HOME=/home/hadoop/zookeeper(你zookeeper安装路径)

      export PATH=$PATH:$ZOOKEEPER_HOME/bin

    wq:保存退出

    source /etc/profile :重启配置文件 

      5.3修改zookeeper的配置文件

    进入conf目录: cd zookeeper/conf

    重命名:cp zoo_sample.cfg zoo.cfg

    vim zoo.cfg

    dataDir=/home/hadoop/zookeeper/data(创建路径保存数据)

    dataLogDir=/home/hadoop/zookeeper/log(创建数据保存日志)

    server.1=slave1:2888:3888 (主机名, 心跳端口、数据端口)

    server.2=slave2:2888:3888

    server.3=slave3:2888:3888

    wq:保存退出

    创建刚才配置文件的目录

    cd /home/hadoop/zookeeper/

    mkdir -m 755 data

    mkdir -m 755 log

      5.4在data文件夹下新建myid文件,myid的文件内容为:

    cd data

    vi myid

    1(对应子机的编号)

    wq:退出

    scp -r /home/hadoop/zookeeper root@slave2:/home/hadoop/

    scp -r /home/hadoop/zookeeper root@slave3:/home/hadoop/

    slave2上:修改myid为:2

    slave3上:修改myid为:3

       5.5启动测试

    zkServer.sh start

    jps(查看进程)

    zkServer.sh status(查看集群状态,主从信息)

    五、zookeeper客户端操作

    运行 zkCli.sh server <ip>进入命令行工具

    1、查看当前 ZooKeeper 中所包含的内容

     ls /

    2、创建 :这个命令创建了一个新的 znode 节点“ zk ”以及与它内容:

     create /zk "myData“

    3、我们运行 get 命令来确认 znode 是否有内容:

    [zk: 202.115.36.251:2181(CONNECTED) 3] get /zk

    #监听这个节点的变化,当另外一个客户端改变/zk,它会打出下面的

     get /zk watch

    4、下面我们通过 set 命令来对 zk 所关联的字符串进行设置:

    [zk: 202.115.36.251:2181(CONNECTED) 4] set /zk "zsl“

    5znode 删除:只能删一个

    [zk: 202.115.36.251:2181(CONNECTED) 5] delete /zk

    6、删除所有子节点:rmr

    [zk: 202.115.36.251:2181(CONNECTED) 5] rmr /zk

  • 相关阅读:
    ubuntu下如何卸载nvidia显卡驱动?
    如何加速编译linux内核模块?
    ubuntu下编译linux内核之前需要做哪些准备?
    ubuntu最近升级到最新的linux内核后,网络无法使用怎么办?
    ubuntu下如何高速下载?
    linux配置java环境变量(详细)
    Javascript 中 == 和 === 区别是什么?
    mybatis 根据多个id查询数据 foreach标签
    mybatis多参数查询问题:org.apache.ibatis.binding.BindingException: Parameter 'name' not found. Available par
    Java Array二维数组使用
  • 原文地址:https://www.cnblogs.com/Smileing/p/7203154.html
Copyright © 2020-2023  润新知