Java大數(shù)據(jù)開發(fā)中ZooKeeper的入門操作是怎樣的

Java大數(shù)據(jù)開發(fā)中ZooKeeper的入門操作是怎樣的,很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)公司公司2013年成立,先為邱縣等服務(wù)建站,邱縣等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為邱縣企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

1.1 概述

ZooKeeper翻譯中文名稱是動(dòng)物園管理員。那是不是就代表和動(dòng)物有關(guān)呢?答案說是也是,說不是也不是。為什么這么說呢?動(dòng)物園管理員管理的其實(shí)不是真正的動(dòng)物,而是很多以動(dòng)物命名的框架運(yùn)行會用到ZooKeeper,大數(shù)據(jù)中很多框架都與動(dòng)物有關(guān),比如pig,hive等等,這就是奇葩之處。老外們對框架的命名也太隨意了,想一出是一出。

ZooKeeper是一個(gè)開源的分布式的,為分布式應(yīng)用提供協(xié)調(diào)服務(wù)的Apache項(xiàng)目,Apache出品,所以肯定差不到哪去咯。

1.2 工作機(jī)制

Zookeeper從設(shè)計(jì)模式角度來理解:是一個(gè)基于觀察者模式設(shè)計(jì)的分布式服務(wù)管理框架,它負(fù)責(zé)存儲和管理大家都關(guān)心的數(shù)據(jù),然后接受觀察者的注冊,一旦這些數(shù)據(jù)的狀態(tài)發(fā)生變化,Zookeeper就將負(fù)責(zé)通知已經(jīng)在Zookeeper上注冊的那些觀察者做出相應(yīng)的反應(yīng),從而實(shí)現(xiàn)集群中類似Master/Slave管理模式,不好理解,我們看下圖:

Java大數(shù)據(jù)開發(fā)中ZooKeeper的入門操作是怎樣的

我們詳細(xì)來介紹工作機(jī)制里的每一步:

① 圖中1表示,服務(wù)器啟動(dòng)的時(shí)候,都會向ZooKeeper(以下簡稱ZK)進(jìn)行注冊信息;

②  圖中2表示,客戶端獲取到當(dāng)前在線服務(wù)器列表,并且注冊監(jiān)聽;

③  圖中3表示,有一個(gè)哥們手殘,搞掛了一臺服務(wù)器,服務(wù)器2現(xiàn)在掛掉;

④  圖中4表示,ZK一段時(shí)間內(nèi),沒有接收到服務(wù)器2發(fā)射的小biubiu,會通過服務(wù)器上下線事件通知客戶端

⑤  圖中5表示,重新獲取服務(wù)器列表,并注冊監(jiān)聽。

1.3 ZK特點(diǎn)

Java大數(shù)據(jù)開發(fā)中ZooKeeper的入門操作是怎樣的

上圖是一個(gè)ZK集群,我們看一下他們的特點(diǎn):

①  ZK集群,是由一個(gè)領(lǐng)導(dǎo)者(leader),多個(gè)追隨者(follower)組成

②  只要有半數(shù)以上的節(jié)點(diǎn)存活,ZK集群就能正常使用,肯定有小可愛會有疑問,那如果四個(gè)機(jī)器掛掉兩個(gè)呢?這樣的話,我們的集群就剩了一個(gè)半數(shù),不叫“半數(shù)以上”好嗎,所以四個(gè)掛掉兩個(gè)也是不能用滴。為了區(qū)分什么是半數(shù)以上,大家記好了,搭建集群的時(shí)候,我們搭建奇數(shù)臺,不就好辦了么。

③  每個(gè)服務(wù)端都會保存一份數(shù)據(jù)副本,客戶端無論連接哪一個(gè)服務(wù)端,數(shù)據(jù)都是一致的。小伙伴們要搞清楚咯:這里的數(shù)據(jù)指的是集群服務(wù)器的狀態(tài)信息,與你數(shù)據(jù)庫那些數(shù)據(jù)沒有半毛錢關(guān)系。

④  來自同一個(gè)客戶端的更新請求,按期發(fā)送順序,依次執(zhí)行。

⑤  原子性:集群機(jī)器一次數(shù)據(jù)更新,要么全部成功,要么全部失敗。

⑥  在一定時(shí)間范圍內(nèi),客戶端能讀到最新數(shù)據(jù)。

這么些特點(diǎn)至少要理解半數(shù)以上喲(當(dāng)然,主要是前幾條了)

1.4 應(yīng)用場景

1.4.1 統(tǒng)一命名服務(wù)

分布式環(huán)境下,需要對應(yīng)用/服務(wù)進(jìn)行統(tǒng)一命名,便于識別。

1.4.2 統(tǒng)一配置管理

分布式環(huán)境下,要求集群中,所有節(jié)點(diǎn)的配置信息是一致的,對配置文件修改后也需要快速同步到各個(gè)節(jié)點(diǎn)上。配置管理就可交由ZK實(shí)現(xiàn),過程如下:

① 可將配置信息寫入ZK的一個(gè)節(jié)點(diǎn)

② 每個(gè)客戶端服務(wù)器監(jiān)聽這個(gè)節(jié)點(diǎn)

③ 一旦節(jié)點(diǎn)數(shù)據(jù)被修改,ZK將通知每個(gè)客戶端服務(wù)器

1.4.3 統(tǒng)一集群管理

分布式環(huán)境中需要實(shí)時(shí)掌握每個(gè)節(jié)點(diǎn)的狀態(tài),并且根據(jù)實(shí)時(shí)狀態(tài)做一些調(diào)整。ZK就可以實(shí)時(shí)監(jiān)控節(jié)點(diǎn)狀態(tài)的變化。實(shí)現(xiàn)過程如下:

① 可將節(jié)點(diǎn)信息,寫入ZK的一個(gè)節(jié)點(diǎn)

② 監(jiān)聽節(jié)點(diǎn),實(shí)時(shí)獲取節(jié)點(diǎn)狀態(tài)信息

1.4.4 軟負(fù)載均衡

可以根據(jù)每臺服務(wù)器的訪問數(shù),選擇訪問數(shù)最少的服務(wù)器進(jìn)行訪問。

1.5 軟件下載

官網(wǎng)下載頁面地址:https://zookeeper.apache.org/releases.html

1.6 ZK安裝(單機(jī)模式,非正式環(huán)境,可用于測試)

1.6.1 安裝前準(zhǔn)備

① 安裝JDK

② 拷貝ZK安裝包到Linux

③ 解壓到指定目錄

在opt目錄下創(chuàng)建dev文件夾,以后將解壓文件,解壓到此處。

Java大數(shù)據(jù)開發(fā)中ZooKeeper的入門操作是怎樣的

1.6.2 配置修改

① 將/opt/dev/zookeeper-3.4.10/conf這個(gè)路徑下zoo_sample.cfg修改為zoo.cfg

Java大數(shù)據(jù)開發(fā)中ZooKeeper的入門操作是怎樣的

② 編輯zoo.cfg,修改dataDir路徑

Java大數(shù)據(jù)開發(fā)中ZooKeeper的入門操作是怎樣的

1.6.3 操作ZK

① 啟動(dòng)ZK

命令:[root@hadoop100 bin]# ./zkServer.sh start

② 查看進(jìn)程是否啟動(dòng) 

命令:jps

③ 查看狀態(tài)

命令:[root@hadoop100 bin]#  ./zkServer.sh status

④ 啟動(dòng)客戶端

命令:[root@hadoop100 bin]# ./zkCli.sh

⑤ 退出客戶端

命令:[root@hadoop100 bin]# quit

⑥ 停止ZK

命令:[root@hadoop100 bin]#  ./zkServer.sh stop

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。

網(wǎng)站名稱:Java大數(shù)據(jù)開發(fā)中ZooKeeper的入門操作是怎樣的
瀏覽路徑:http://muchs.cn/article38/ihgdpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊做網(wǎng)站、網(wǎng)站導(dǎo)航定制網(wǎng)站、外貿(mào)建站、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)