当前位置:   article > 正文

Zookeeper分布式搭建

Zookeeper分布式搭建

N.1 分布式安装部署

0)前言环境准备

(1)前提环境要安装jdk,如果不配置环境变量的话,可以在zookeeper/bin目录下指定jdk路径。

有时候一个linux,有其他的同事安装了jdk,说以未来防止冲突,可以自己指定路径。

vi bin/zkEnv.sh #备注zkEnv.cmd是配置win的,zkEnv.sh是配置linux的

export JAVA_HOME=/usr/local/src/jdk1.8(换成你自己的jdk路径)

(2)其实每一个组件都可以指定jdk的路径,只要在改组件的bin/目录下查找所有命令,然后用内容扫描工具对JAVA_HOME进行扫描,找的了该文件,就使用 export JAVA_HOME=xxx 导入路劲即可

第三方工具指定JDK路径思路.note

1)集群规划

在bigdata111、bigdata112和bigdata113三个节点上部署Zookeeper。

2)解压安装

(1)解压zookeeper安装包到/softWare/目录下

[itstar@bigdata111 softWare]$ tar  -zxvf  zookeeper-3.4.10.tar.gz  -C  /softWare/

(2)在/softWare/zookeeper-3.4.10/这个目录下创建zkData(由于存放数据的目录)

    mkdir  -p  zkData

(3)重命名/softWare/zookeeper-3.4.10/conf这个目录下的zoo_sample.cfg为zoo.cfg

配置文件只识别zoo.cfg;

    mv  zoo_sample.cfg  zoo.cfg

3)配置环境变量

    [root@bigdata111 softWare]$ vi /etc/profile

    export ZOOKEEPER_HOME=/softWare/zookeeper-3.4.10

export PATH=$PATH:$ZOOKEEPER_HOME/bin(也可以在原来的PATH后面拼接上去)

:wq

[root@bigdata111 softWare]$source /etc/profile

4)配置zoo.cfg文件修改

 (1)具体配置:

  clientPort=2181  # 客户端端口号 主要用于hadoopkafka等进行通信的

      dataDir=/softWare/zookeeper-3.4.10/zkData

      server.1=bigdata111:2888:3888 # 添加集群地址

      server.2=bigdata112:2888:3888

      server.3=bigdata113:2888:3888

(2)配置参数解读

      Server.A=B:C:D

      A是一个数字,表示这个是第几号(myid文件)服务器;

      B是这个服务器的ip地址;

      C是这个服务器与集群中的Leader服务器交换信息的端口;

      D是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,

      而这个端口就是用来执行选举时服务器相互通信的端口。

集群模式下配置一个文件myid,这个文件在dataDir=/softWare/zookeeper-3.4.10/zkData目录下,这个文件里面有一个数据就是A的值,Zookeeper启动时读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。

5)集群操作

(1)在/softWare/zookeeper-3.4.10/zkData目录下创建一个myid的文件

        touch myid

添加myid文件,注意一定要在linux里面创建,在notepad++里面很可能乱码

(2)编辑myid文件

        vi myid

        在文件中添加与server对应的编号:如 2 。

(3)拷贝配置好的zookeeper到其他机器上

        scp -r zookeeper-3.4.10/ root@bigdata112.itstar.com:/softWare/

        scp -r zookeeper-3.4.10/ root@bigdata113.itstar.com:/softWare/

        并分别修改myid文件中内容为3、4自定义。

(4)分别启动zookeeper

       [root@bigdata111 zookeeper-3.4.10]# bin/zkServer.sh start

       [root@bigdata112 zookeeper-3.4.10]# bin/zkServer.sh start

       [root@bigdata113 zookeeper-3.4.10]# bin/zkServer.sh start

(5)查看状态

       [root@bigdata111 zookeeper-3.4.10]# bin/zkServer.sh status

       JMX enabled by default

       Using config: /softWare/zookeeper-3.4.10/bin/../conf/zoo.cfg

       Mode: follower

      

  [root@bigdata112 zookeeper-3.4.10]# bin/zkServer.sh status

       JMX enabled by default

       Using config: /softWare/zookeeper-3.4.10/bin/../conf/zoo.cfg

       Mode: leader

      

 [root@bigdata113 zookeeper-3.4.5]# bin/zkServer.sh status

       JMX enabled by default

       Using config: /softWare/zookeeper-3.4.10/bin/../conf/zoo.cfg

       Mode: follower

N.2 zookeeper命令操作

1)节点启动和关闭等命令

(1)启动zookeeper:bin/zkServer.sh start

查看进程是否启动:jps

停止zookeeper:bin/zkServer.sh stop

查看该节点状态:bin/zkServer.sh status

(2)启动客户端 bin/zkCli.sh #会进入命令行

退出客户端是 quit

2)客户端操作命令

命令基本语法

功能描述

help

显示所有操作命令

ls 目录 [watch]

使用 ls 命令来查看当前znode中所包含的内容。

[watch]表示监听,可以在不同节点的进行监听。监控只能是开一次监控,就捕捉一次其它znode的行为,如果其它znode产生第二次行为,就监控不到,所以要在开一次监控。

ls2 目录 [watch]

查看当前节点数据并能看到更新次数等数据

create [-s]  [-e]  目录 数值

目录相当于key,数值相当于value。

[-s] 表示含有序列。

[-e]  表示临时(重启或者超时消失),默认情况下是永久

get 目录 [watch]

获得节点的值,[watch]表示监听,可以在不同节点的进行监听,

set  目录 新数值

设置节点的具体值

stat  目录

查看节点状态

delete  目录

删除节点

rmr  目录

递归删除节点

quit

退出客户端

N.3 操作命令演示

1)启动客户端

[itstar@bigdata112 zookeeper-3.4.10]$ bin/zkCli.sh

2)显示所有操作命令

[zk: localhost:2181(CONNECTED) 1] help

3查看当前znode中所包含的内容

[zk: localhost:2181(CONNECTED) 0] ls  /

[zookeeper]

4查看当前节点数据并能看到更新次数等数据

[zk: localhost:2181(CONNECTED) 1] ls2  /

[zookeeper]

cZxid = 0x0

ctime = Thu Jan 01 08:00:00 CST 1970

mZxid = 0x0

mtime = Thu Jan 01 08:00:00 CST 1970

pZxid = 0x0

cversion = -1

dataVersion = 0

aclVersion = 0

ephemeralOwner = 0x0

dataLength = 0

numChildren = 1

5创建普通节点

[zk: localhost:2181(CONNECTED) 2] create  /app1  "hello app1"

Created /app1

[zk: localhost:2181(CONNECTED) 4] create  /app1/server101  "192.168.1.101"

Created /app1/server101

6)获得节点的值

[zk: localhost:2181(CONNECTED) 6] get /app1

hello app1

cZxid = 0x20000000a

ctime = Mon Jul 17 16:08:35 CST 2017

mZxid = 0x20000000a

mtime = Mon Jul 17 16:08:35 CST 2017

pZxid = 0x20000000b

cversion = 1

dataVersion = 0

aclVersion = 0

ephemeralOwner = 0x0

dataLength = 10

numChildren = 1

[zk: localhost:2181(CONNECTED) 8] get /app1/server101

192.168.1.101

cZxid = 0x20000000b

ctime = Mon Jul 17 16:11:04 CST 2017

mZxid = 0x20000000b

mtime = Mon Jul 17 16:11:04 CST 2017

pZxid = 0x20000000b

cversion = 0

dataVersion = 0

aclVersion = 0

ephemeralOwner = 0x0

dataLength = 13

numChildren = 0

7创建短暂节点

[zk: localhost:2181(CONNECTED) 9] create -e /app-emphemeral 8888

(1)在当前客户端是能查看到的

[zk: localhost:2181(CONNECTED) 10] ls  /

[app1, app-emphemeral, zookeeper]

(2)退出当前客户端然后再重启客户端

   [zk: localhost:2181(CONNECTED) 12] quit

[itstar@bigdata113 zookeeper-3.4.10]$ bin/zkCli.sh

(3)再次查看根目录下短暂节点已经删除

   [zk: localhost:2181(CONNECTED) 0] ls  /

[app1, zookeeper]

8创建带序号的节点

(1)先创建一个普通的根节点app2

   [zk: localhost:2181(CONNECTED) 11] create /app2 "app2"

(2)创建带序号的节点

   [zk: localhost:2181(CONNECTED) 13] create -s /app2/aa 888

Created /app2/aa0000000000

[zk: localhost:2181(CONNECTED) 14] create -s /app2/bb 888

Created /app2/bb0000000001

[zk: localhost:2181(CONNECTED) 15] create -s /app2/cc 888

Created /app2/cc0000000002

如果原节点下有1个节点,则再排序时从1开始,以此类推。

[zk: localhost:2181(CONNECTED) 16] create -s /app1/aa 888

Created /app1/aa0000000001

9修改节点数据值

[zk: localhost:2181(CONNECTED) 2] set /app1 999

10)节点的值变化监听get命令

 (1)在104主机上注册监听/app1节点数据变化

[zk: localhost:2181(CONNECTED) 26] get  /app1  watch

此时是悬浮监听状态...

 (2)在103主机上修改/app1节点的数据

[zk: localhost:2181(CONNECTED) 5] set /app1  777

 (3)观察104主机收到数据变化的监听

WATCHER::

WatchedEvent state:SyncConnected type:NodeDataChanged path:/app1

11节点的子节点变化监听 ls命令 (路径变化)

 (1)在104主机上注册监听/app1节点的子节点变化

[zk: localhost:2181(CONNECTED) 1] ls /app1 watch

[aa0000000001, server101]

此时是悬浮监听状态...

 (2)在103主机/app1节点上创建子节点

[zk: localhost:2181(CONNECTED) 6] create /app1/bb 666

Created /app1/bb

 (3)观察104主机收到子节点变化的监听

WATCHER::

WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/app1

12删除节点

[zk: localhost:2181(CONNECTED) 4] delete /app1/bb

13)递归删除节点

[zk: localhost:2181(CONNECTED) 7] rmr /app2

14)查看节点状态

[zk: localhost:2181(CONNECTED) 12] stat /app1

cZxid = 0x20000000a

ctime = Mon Jul 17 16:08:35 CST 2017

mZxid = 0x200000018

mtime = Mon Jul 17 16:54:38 CST 2017

pZxid = 0x20000001c

cversion = 4

dataVersion = 2

aclVersion = 0

ephemeralOwner = 0x0

dataLength = 3

numChildren = 2

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/724464
推荐阅读
相关标签
  

闽ICP备14008679号