日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Zookeeper_环境搭建及客户端使用

發(fā)布時間:2024/4/13 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Zookeeper_环境搭建及客户端使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

第一件事情就是要上傳zookeeper,當(dāng)前這里有一個zookeeper,我們用的不是最新的,現(xiàn)在已經(jīng)有3.4.6了我用的都是3.4.5

第一件事情做什么事呢,解壓這個zookeeper,這個很簡單,tar -zxvf zookeeper -C /usr/local,解壓到/usr/local下

三個節(jié)點(diǎn)都是software文件下,基本上這三個節(jié)點(diǎn)都解壓成功了,然后咱們退出,cd ..,然后重命名一下,三個節(jié)點(diǎn)都應(yīng)用一下,三個節(jié)點(diǎn)都變成zookeeper

三個節(jié)點(diǎn)都應(yīng)用一下,解壓完改完名字之后,可能要設(shè)置一下環(huán)境變量,vim /etc/profile文件,然后加上zookeeper的home,添加到path下邊,這個步驟其實(shí)已經(jīng)寫完了,咱們整體的去vim /etc/profile文件

就是這個配置我不改了,不再去做了,就配一個zookeeper_home,/usr/local/zookeeper,然后把zookeeper_home加在這里,/bin找到zookeeper的運(yùn)行,這三個文件都有,這步就默認(rèn)修改完了,咱們q!退出來,改完這個文件resource一下,生效這兩步走完以后,你要改一下zookeeper里的配置文件,他的配置文件就叫這個名字,默認(rèn)就叫sample,在zookeeper的conf下面

他里面有三個文件,主要是zoo_sample.cfg,這個咱們整體的去mv一下,去改成zoo.cfg

復(fù)制一下,這三個都有了,整體去執(zhí)行一下,就變成這個名字

然后咱們?nèi)ゾ庉嬕幌?進(jìn)到這里面之后呢,他的配置是非常簡單的,都需要指定一個dataDir,dataDir是咱們存放數(shù)據(jù)的地方

那我這塊改一下,/usr/local/software/zookeeper-3.4.6/data,我建立一個文件夾,就是zookeeper下面有一個data文件夾,這是第一步咱們要改的操作,然后下一步咱們要做的事情,就是咱們要配置三個節(jié)點(diǎn),三個節(jié)點(diǎn)之間要相互的進(jìn)行通信,你注意看我這塊吧,這塊怎么去做呢,就是最后要加一個內(nèi)容,就是在server.0,server.1,server.2,標(biāo)識其實(shí)你是可以隨便去改的,然后是你的主機(jī)名或者IP名也行,就是IP地址加上2888,3888,這個是什么意思呢,咱們之后再去講這個事,先把這個配置配上第一個節(jié)點(diǎn)是server.0,看他是怎么寫的,server.0=192.168.1.121:2888:3888,copy一下,粘貼再粘貼,122,123,改成server.1,改成server.2,把這個配置整體copy,粘貼

就是三個節(jié)點(diǎn)都要做同樣的事情,然后按ESC,第二件事情要做的,剛才其實(shí)咱們路徑指定的是什么啊,指定的是dataDir=/usr/local/zookeeper/data,data文件夾,要再創(chuàng)建一個文件夾data,在zookeeper下面,現(xiàn)在這三個文件都在zookeeper下面了,mkdir data這個文件,回車

都創(chuàng)建好了這個data文件以后呢,ll一下,你會發(fā)現(xiàn)三個節(jié)點(diǎn)的zookeeper下都有一個data文件夾,都會有一個data文件夾,然后咱們集體的cd到data文件夾下面,這下面是沒有任何文件的,咱們要建立一個文件了,用touch,vim都行,zookeeper要指定一個myid的文件,myid的文件分別寫上0,1,2,直接vim myid回車,121上寫一個0,122上寫一個1,123上寫一個2,這個就對應(yīng)server.0,server.1,server.2,整體wq!保存退出,其實(shí)做完這兩步操作,咱們的zookeeper就算配置完畢了,然后就可以去啟動咱們的zk了,路徑其實(shí)是要到/usr/local/zookeeper/bin去啟動,咱們看一眼吧,我隨便找一個機(jī)器吧,cd /usr/local/zookeeper/,zookeeper下有一堆的文件

一堆的文件,咱們主要是去bin下去看一下,這下面都是啥啊,這下面就是一些啟動的腳本

咱們要啟動,現(xiàn)在要應(yīng)用的就兩個,一個是zkCli.sh,一個zkServer.sh,由于咱們已經(jīng)配置了環(huán)境變量了,所以說無所謂,整體cd到/usr/local下,咱們直接敲命令就行,因?yàn)榄h(huán)境變量已經(jīng)配置好了,vim /etc/profile

zkServer.sh start回車

三個節(jié)點(diǎn)都去start完了以后,到底啟動還是沒有啟動,你得看他的狀態(tài),他有個status

你看121的模式是follower

然后122是一個leader

123他也是一個follower

122這個節(jié)點(diǎn)是一個主節(jié)點(diǎn),121和123是一個從節(jié)點(diǎn),然后咱們整體的clear,其實(shí)現(xiàn)在zookeeper的環(huán)境是已經(jīng)搭建完畢了,其實(shí)很簡單,然后咱們怎么去操作zookeeper,去看數(shù)據(jù)啊,他這里面有點(diǎn)像shell命令

他這里面有一個相當(dāng)于是shell操作吧,他提供了zkCli.sh的一個腳本,我從主節(jié)點(diǎn)找也行,從從節(jié)點(diǎn)找也行,這個無所謂,咱們JPS一下吧,咱們的zookeeper進(jìn)程一直都在,zookeeper服務(wù)一直都是OK的,然后咱們繼續(xù)往下走,接下來咱們要操作這個東西,通過zkCli.sh這個,連一下客戶端,那我就隨便找一臺機(jī)器吧,你是121也好,你是122也好,你是123也好,直接zkCli.sh就進(jìn)來了

不用start,我剛才敲得是zkCli.sh這個,然后進(jìn)來以后呢,這里面他能看到什么啊,這里進(jìn)入d的是zk的客戶端,正常的zk的客戶端是需要查看數(shù)據(jù)的,查看命令其實(shí)就這幾個命令,ls表示要查找什么樣的數(shù)據(jù),咱們現(xiàn)在的zookeeper下是沒啥數(shù)據(jù)的,其實(shí)之前也說過,你用client端看著別扭,你看zk下面節(jié)點(diǎn)是沒有的

他就是這樣的一個節(jié)點(diǎn),根目錄下有一個zookeeper,zookeeper下有一個quota,配額,其實(shí) 你不用去看,相當(dāng)于數(shù)據(jù)有多少配額,我后期會發(fā)啊,其實(shí)正常來講,你去看這兒,你可以去eclipse下去裝插件,工具有很多種,你會發(fā)現(xiàn)下面是連著三臺服務(wù)器,然后節(jié)點(diǎn)基本上就是這么一個情況,既然看到這個情況了,你要想操作命令行的話,你要ls /,回車

你會發(fā)現(xiàn)根節(jié)點(diǎn)下有一個zookeeper的節(jié)點(diǎn),進(jìn)去回車 ls /zookeeper,有quota這個節(jié)點(diǎn),就是剛才可視化的結(jié)果

這個下面就是空了,啥也沒有了,其實(shí)默認(rèn)的zookeeper剛裝好以后呢,就是這種形態(tài),就是根節(jié)點(diǎn)下掛著一個zookeeper的,然后zookeeper下掛著一個quota,這個東西,應(yīng)該很簡單了,你會發(fā)現(xiàn)他沒有clear命令

你敲clear命令,他就會說我們這里是沒有clear命令的,然后告訴你有什么命令,一共就這么多,connect,get還有set啊,rmr,delquota,quit退出,退出client端,stat節(jié)點(diǎn)的狀態(tài),history,還有sync同步,delete刪除節(jié)點(diǎn),其實(shí)我quit就是退出的

你就發(fā)現(xiàn)我就已經(jīng)退出了,我再進(jìn)入zkCli.sh進(jìn)入,這個也是可以的,接下來咱們看怎么去操作,還是看這個,如果你想新創(chuàng)建一個節(jié)點(diǎn),其實(shí)很簡單的,調(diào)用create這個命令,create命令他其實(shí)有key有value,他這個目錄是一個樹形結(jié)構(gòu),一個樹形結(jié)構(gòu),這里可以有分支,他也可以有分支,這里面也有分支,然后對應(yīng)著這個目錄,比如/zookeeper,然后我可以建一個目錄,你說根節(jié)點(diǎn)下是一個/,我也可以創(chuàng)建一個/bhz,相當(dāng)于一個節(jié)點(diǎn)的目錄,你可以把它當(dāng)做一個key,這個key可以指定一個value,這個value就是這個節(jié)點(diǎn)存放的一個數(shù)據(jù),就是這樣的,結(jié)構(gòu)其實(shí)是很簡單的,咱們做一下create,比如隨便找一個路徑吧,create /bhz hadoop,/bhz這個是一個key,value叫啥呢,比如叫hadoop,你會看見這個節(jié)點(diǎn)已經(jīng)OK了

這回我們再去觀察一下這個數(shù)據(jù),我刷新一下,他就變成這種結(jié)構(gòu)了,根節(jié)點(diǎn)下有一個這個文件,你會發(fā)現(xiàn)是這樣的了

其實(shí)也很簡單,通過get /bhz,也可以通過set設(shè)值,我取一下吧,get /zookeeper

你get一下zookeeper,里面一堆東西,你可能看不明白,咱們先clear掉,咱們先不get /zookeeper,咱們先get /bhz這個,這個你就能夠看明白了

你會發(fā)現(xiàn)他的數(shù)據(jù)就在這里了,hadoop就是數(shù)據(jù),這里有一堆,比如ctime,這個節(jié)點(diǎn)的時間是什么,然后這個修改的節(jié)點(diǎn)是什么,zookeeper它是保證一條一條順序的,所以每生成一個節(jié)點(diǎn)操作他的時候,都會生成一個id,包括他的version版本號,就是dataVersion,這里面都有,包括他的children,多少個孩子,包括節(jié)點(diǎn)的長度是多長,6個長度,hadoop是6個字母,就是這個意思,如果獲取到zookeeper下面,get /zookeeper

這回你再看,這個zookeeper是沒有任何數(shù)據(jù)的,他也有一個時間,創(chuàng)建的時間,然后你會發(fā)現(xiàn)他下面有一個孩子numChildren,那個孩子就是quota,然后其他的就無所謂了,慢慢的再說,基本上就是這個形式,我可以去set這個節(jié)點(diǎn),給他起個名字,set /bhz baihe

我現(xiàn)在set成功了以后,它會返回一個東西,這個時候數(shù)據(jù)就成5個了,然后你就會發(fā)現(xiàn)他不一致了,mtime是modify time就變了然后dataVersion同理也有些變化了,我再設(shè)一遍 set /bhz kkkk

這個dataVersion你每次去進(jìn)行修改的時候,dataVersion總是進(jìn)行加1,然后長度也總是變化的,set /bhz cccc,然后你有沒有發(fā)現(xiàn),你會發(fā)現(xiàn)有一個問題,就是mZxid這個也發(fā)生變化了,就是mZxid = 0xfe2這個,這個id,每次也會有不一致的變化,創(chuàng)建節(jié)點(diǎn)的時候會有一個節(jié)點(diǎn)的ID,就是modify的時候會指定一個節(jié)點(diǎn)的id,他兩因?yàn)橛行薷牧?都會有節(jié)點(diǎn)的變化的,就是你每次操作一下,其實(shí)你通過咱們client端的api啊,你都是可以去查找到的,這里面的信息都是可以查找到的,然后咱們繼續(xù)往下看,還有一些啊,刪除,你可以遞歸的刪除,你也可以不遞歸的刪除,你不想遞歸的刪除就用rmr /path這個,rmr,如果不遞歸的刪除就用delete /path/child這個,你比如我現(xiàn)在去建立一個節(jié)點(diǎn),我現(xiàn)在ls /一下

有一個節(jié)點(diǎn)了,你比如我想在bhz節(jié)點(diǎn)下創(chuàng)建一個節(jié)點(diǎn),你肯定也是這么去寫,也會創(chuàng)建一個attr,create /bhz/attr,bhz的節(jié)點(diǎn)下就是attr,他整體是一個url,這個url也當(dāng)做一個key,我給他指定一個名字,create /bhz/attr shuxing,就這么寫

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

你會發(fā)現(xiàn),這個屬性就已經(jīng)有了,刪除我這么寫行不行,delete /bhz,這樣寫行不行

他說什么啊,Node not empty,因?yàn)槲疫@個節(jié)點(diǎn)下還有一個子節(jié)點(diǎn),所以你delete不行,先刪除,只有刪除attr,我們rmr /bhz這樣總可以吧

這回我們在看一下,有少了一個節(jié)點(diǎn)了

基本上這都是最簡單的client端操作,能理解我說的意思吧,你也可以通過工具去添加一個節(jié)點(diǎn),好像有add node,刷新一下下沒有了,我就add node,然后起一個名字

然后又delete node,然后還有change node,還是我new的不太多,一般remove就行了,一般用這個比較多

雙擊就可以寫數(shù)據(jù)了,這里面隨便寫數(shù)據(jù)了

數(shù)據(jù)你保存一下就行了,剛才有個*就沒了,這回你會發(fā)現(xiàn),你會發(fā)現(xiàn)bhz的值就發(fā)生變化了,因?yàn)橄旅鏇]有節(jié)點(diǎn),所以返回空所以我get /bhz

是不是一行1就已經(jīng)有了,還有16個長度,這個是我剛才通過工具進(jìn)行操作的,我只要以變更然后保存就發(fā)生變化了,這個工具都是很好操作的

所以關(guān)于工具的操作,利用這個命令去做,就OK了,演示一下File,你可以傳一個文件的,一般我是自己去創(chuàng)建file,你可以這么去做,這個節(jié)點(diǎn)存儲數(shù)據(jù)的作用,其實(shí)就是動態(tài)的變更信息,咱們到后期再詳細(xì)去說,以后對應(yīng)的一個節(jié)點(diǎn),我可以存一堆數(shù)據(jù),這個數(shù)據(jù)可以存一個JSON字符串,這都可以,包括這個節(jié)點(diǎn)可以上傳文件,圖片啊,這都是行的,這里面怎么去傳呢,我先新建一個,我還沒試過能不能行呢,新文件new_file,沒試過,就123吧

現(xiàn)在有一個文件了,然后上傳,我沒有試過,試一下,不知道行不行

這樣的話我的節(jié)點(diǎn)下肯定不一樣了,我再雙擊打開就是123

也就是說也可以傳,圖片文件就是圖片了,我這里有沒有有圖片呢,不要太大,小圖片就行,這里又張小圖片,/bhz這個節(jié)點(diǎn)我要修改,我要上傳一個文件,這個文件就在這兒 保存好了關(guān)掉,我再去打開,這里面一堆東西

這個就是那個圖片,很多,這工具也是可以上傳的,也是可以上傳的,創(chuàng)建什么呢,一般是二進(jìn)制的文件的,JAVA API這部分,我不知道這個編碼有沒有問題,自己回去試試,這個我真不知道,咱們后期自己可以去做通過JAVA API去獲得

?

總結(jié)

以上是生活随笔為你收集整理的Zookeeper_环境搭建及客户端使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。