Zookeeper_环境搭建及客户端使用

 

第一件事情就是要上传zookeeper,当前这里有一个zookeeper,我们用的不是最新的,现在已经有3.4.6了

我用的都是3.4.5

第一件事情做什么事呢,解压这个zookeeper,这个很简单,tar -zxvf zookeeper -C /usr/local,解压到/usr/local下

三个节点都是software文件下,基本上这三个节点都解压成功了,然后咱们退出,cd ..,然后重命名一下,

三个节点都应用一下,三个节点都变成zookeeper

三个节点都应用一下,解压完改完名字之后,可能要设置一下环境变量,vim /etc/profile文件,然后加上zookeeper的

home,添加到path下边,这个步骤其实已经写完了,咱们整体的去vim /etc/profile文件

就是这个配置我不改了,不再去做了,就配一个zookeeper_home,/usr/local/zookeeper,然后把zookeeper_home加在这里,

/bin找到zookeeper的运行,这三个文件都有,这步就默认修改完了,咱们q!退出来,改完这个文件resource一下,生效

这两步走完以后,你要改一下zookeeper里的配置文件,他的配置文件就叫这个名字,默认就叫sample,在zookeeper的

conf下面

他里面有三个文件,主要是zoo_sample.cfg,这个咱们整体的去mv一下,去改成zoo.cfg

复制一下,这三个都有了,整体去执行一下,就变成这个名字

然后咱们去编辑一下,进到这里面之后呢,他的配置是非常简单的,都需要指定一个dataDir,dataDir是咱们存放数据的地方

那我这块改一下,/usr/local/software/zookeeper-3.4.6/data,我建立一个文件夹,就是zookeeper下面有一个data

文件夹,这是第一步咱们要改的操作,然后下一步咱们要做的事情,就是咱们要配置三个节点,三个节点之间要相互的进行通信,

你注意看我这块吧,这块怎么去做呢,就是最后要加一个内容,就是在server.0,server.1,server.2,标识其实你是可以随便去改的,

然后是你的主机名或者IP名也行,就是IP地址加上2888,3888,这个是什么意思呢,咱们之后再去讲这个事,先把这个配置配上

第一个节点是server.0,看他是怎么写的,server.0=192.168.1.121:2888:3888,copy一下,粘贴再粘贴,122,123,改成server.1,

改成server.2,把这个配置整体copy,粘贴

就是三个节点都要做同样的事情,然后按ESC,第二件事情要做的,刚才其实咱们路径指定的是什么啊,指定的是

dataDir=/usr/local/zookeeper/data,data文件夹,要再创建一个文件夹data,在zookeeper下面,现在这三个文件都在

zookeeper下面了,mkdir data这个文件,回车

都创建好了这个data文件以后呢,ll一下,你会发现三个节点的zookeeper下都有一个data文件夹,都会有一个data文件夹,

然后咱们集体的cd到data文件夹下面,这下面是没有任何文件的,咱们要建立一个文件了,用touch,vim都行,zookeeper要指定

一个myid的文件,myid的文件分别写上0,1,2,直接vim myid回车,121上写一个0,122上写一个1,123上写一个2,这个就对应server.0,

server.1,server.2,整体wq!保存退出,其实做完这两步操作,咱们的zookeeper就算配置完毕了,然后就可以去启动咱们的zk了,

路径其实是要到/usr/local/zookeeper/bin去启动,咱们看一眼吧,我随便找一个机器吧,cd /usr/local/zookeeper/,

zookeeper下有一堆的文件

一堆的文件,咱们主要是去bin下去看一下,这下面都是啥啊,这下面就是一些启动的脚本

咱们要启动,现在要应用的就两个,一个是zkCli.sh,一个zkServer.sh,由于咱们已经配置了环境变量了,所以说无所谓,

整体cd到/usr/local下,咱们直接敲命令就行,因为环境变量已经配置好了,vim /etc/profile

zkServer.sh start回车

三个节点都去start完了以后,到底启动还是没有启动,你得看他的状态,他有个status

你看121的模式是follower

然后122是一个leader

123他也是一个follower

122这个节点是一个主节点,121和123是一个从节点,然后咱们整体的clear,其实现在zookeeper的环境是已经搭建

完毕了,其实很简单,然后咱们怎么去操作zookeeper,去看数据啊,他这里面有点像shell命令

他这里面有一个相当于是shell操作吧,他提供了zkCli.sh的一个脚本,我从主节点找也行,从从节点找也行,

这个无所谓,咱们JPS一下吧,咱们的zookeeper进程一直都在,zookeeper服务一直都是OK的,然后咱们继续往下走,接下来咱们要

操作这个东西,通过zkCli.sh这个,连一下客户端,那我就随便找一台机器吧,你是121也好,你是122也好,你是123也好,

直接zkCli.sh就进来了

不用start,我刚才敲得是zkCli.sh这个,然后进来以后呢,这里面他能看到什么啊,这里进入d的是zk的客户端,

正常的zk的客户端是需要查看数据的,查看命令其实就这几个命令,ls表示要查找什么样的数据,咱们现在的zookeeper下是

没啥数据的,其实之前也说过,你用client端看着别扭,你看zk下面节点是没有的

他就是这样的一个节点,根目录下有一个zookeeper,zookeeper下有一个quota,配额,其实 你不用去看,

相当于数据有多少配额,我后期会发啊,其实正常来讲,你去看这儿,你可以去eclipse下去装插件,

工具有很多种,你会发现下面是连着三台服务器,然后节点基本上就是这么一个情况,既然看到这个情况了,

你要想操作命令行的话,你要ls /,回车

你会发现根节点下有一个zookeeper的节点,进去回车 ls /zookeeper,有quota这个节点,就是刚才可视化的结果

这个下面就是空了,啥也没有了,其实默认的zookeeper刚装好以后呢,就是这种形态,就是根节点下挂着一个zookeeper的,

然后zookeeper下挂着一个quota,这个东西,应该很简单了,你会发现他没有clear命令

你敲clear命令,他就会说我们这里是没有clear命令的,然后告诉你有什么命令,一共就这么多,connect,get

还有set啊,rmr,delquota,quit退出,退出client端,stat节点的状态,history,还有sync同步,delete删除节点,

其实我quit就是退出的

你就发现我就已经退出了,我再进入zkCli.sh进入,这个也是可以的,接下来咱们看怎么去操作,还是看这个,如果你想新创建一个节点,

其实很简单的,调用create这个命令,create命令他其实有key有value,他这个目录是一个树形结构,一个树形结构,这里可以有分支,

他也可以有分支,这里面也有分支,然后对应着这个目录,比如/zookeeper,然后我可以建一个目录,你说根节点下是一个/,我也可以

创建一个/bhz,相当于一个节点的目录,你可以把它当做一个key,这个key可以指定一个value,这个value就是这个节点存放的一个数据,

就是这样的,结构其实是很简单的,咱们做一下create,比如随便找一个路径吧,create /bhz hadoop,/bhz这个是一个key,value叫

啥呢,比如叫hadoop,你会看见这个节点已经OK了

这回我们再去观察一下这个数据,我刷新一下,他就变成这种结构了,根节点下有一个这个文件,你会发现是这样的了

其实也很简单,通过get /bhz,也可以通过set设值,我取一下吧,get /zookeeper

你get一下zookeeper,里面一堆东西,你可能看不明白,咱们先clear掉,咱们先不get /zookeeper,咱们先get /bhz这个,

这个你就能够看明白了

你会发现他的数据就在这里了,hadoop就是数据,这里有一堆,比如ctime,这个节点的时间是什么,然后这个修改的

节点是什么,zookeeper它是保证一条一条顺序的,所以每生成一个节点操作他的时候,都会生成一个id,包括他的version版本号,

就是dataVersion,这里面都有,包括他的children,多少个孩子,包括节点的长度是多长,6个长度,hadoop是6个字母,就是这个意思,

如果获取到zookeeper下面,get /zookeeper

这回你再看,这个zookeeper是没有任何数据的,他也有一个时间,创建的时间,然后你会发现他下面有一个孩子numChildren,那个

孩子就是quota,然后其他的就无所谓了,慢慢的再说,基本上就是这个形式,我可以去set这个节点,给他起个名字,

set /bhz baihe

我现在set成功了以后,它会返回一个东西,这个时候数据就成5个了,然后你就会发现他不一致了,mtime是modify time就变了

然后dataVersion同理也有些变化了,我再设一遍 set /bhz kkkk

这个dataVersion你每次去进行修改的时候,dataVersion总是进行加1,然后长度也总是变化的,set /bhz cccc,

然后你有没有发现,你会发现有一个问题,就是mZxid这个也发生变化了,就是mZxid = 0xfe2这个,这个id,

每次也会有不一致的变化,创建节点的时候会有一个节点的ID,就是modify的时候会指定一个节点的id,

他两因为有修改了,都会有节点的变化的,就是你每次操作一下,其实你通过咱们client端的api啊,你都是可以去

查找到的,这里面的信息都是可以查找到的,然后咱们继续往下看,还有一些啊,删除,你可以递归的删除,你也可以

不递归的删除,你不想递归的删除就用rmr /path这个,rmr,如果不递归的删除就用delete /path/child这个,

你比如我现在去建立一个节点,我现在ls /一下

有一个节点了,你比如我想在bhz节点下创建一个节点,你肯定也是这么去写,也会创建一个attr,create /bhz/attr,

bhz的节点下就是attr,他整体是一个url,这个url也当做一个key,我给他指定一个名字,create /bhz/attr shuxing,

就这么写

create成功,然后我去get的时候,get /bhz/attr

你会发现,这个属性就已经有了,删除我这么写行不行,delete /bhz,这样写行不行

他说什么啊,Node not empty,因为我这个节点下还有一个子节点,所以你delete不行,先删除,只有删除attr,

我们rmr /bhz这样总可以吧

这回我们在看一下,有少了一个节点了

基本上这都是最简单的client端操作,能理解我说的意思吧,你也可以通过工具去添加一个节点,好像有add node,

刷新一下下没有了,我就add node,然后起一个名字

然后又delete node,然后还有change node,还是我new的不太多,一般remove就行了,一般用这个比较多

双击就可以写数据了,这里面随便写数据了

数据你保存一下就行了,刚才有个*就没了,这回你会发现,你会发现bhz的值就发生变化了,因为下面没有节点,所以返回空

所以我get /bhz

是不是一行1就已经有了,还有16个长度,这个是我刚才通过工具进行操作的,我只要以变更然后保存就发生变化了,

这个工具都是很好操作的

所以关于工具的操作,利用这个命令去做,就OK了,演示一下File,你可以传一个文件的,一般我是自己去创建file,

你可以这么去做,这个节点存储数据的作用,其实就是动态的变更信息,咱们到后期再详细去说,以后对应的一个节点,

我可以存一堆数据,这个数据可以存一个JSON字符串,这都可以,包括这个节点可以上传文件,图片啊,这都是行的,

这里面怎么去传呢,我先新建一个,我还没试过能不能行呢,新文件new_file,没试过,就123吧

现在有一个文件了,然后上传,我没有试过,试一下,不知道行不行

这样的话我的节点下肯定不一样了,我再双击打开就是123

也就是说也可以传,图片文件就是图片了,我这里有没有有图片呢,不要太大,小图片就行,这里又张小图片,

/bhz这个节点我要修改,我要上传一个文件,这个文件就在这儿
保存好了关掉,我再去打开,这里面一堆东西

这个就是那个图片,很多,这工具也是可以上传的,也是可以上传的,创建什么呢,一般是二进制的文件的,

JAVA API这部分,我不知道这个编码有没有问题,自己回去试试,这个我真不知道,咱们后期自己可以去做

通过JAVA API去获得

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值