Hadoop ZooKeeper知識點彙總

2021-07-25 02:49:01 字數 3827 閱讀 7600

echo $   顯示出jdk的安裝目錄

echo 2 > myid       把2寫到myid檔案(覆蓋原內容)

cat myid            檢視myid檔案的內容

zkserver.sh start   啟動zookeeper

zkserver.sh status  檢視zookeeper的啟動狀態

netstat -nltp       檢視埠占用情況    

netstat -nltp | grep 2345      檢視程序號為2345的埠占用情況 

mv zoo_sample.cfg zoo.cfg  改名

zookeeper介紹:

zookeeper集群中的伺服器角色有三種,

leader    server

follower  server

observer  server

leader特殊之處在於它有決定權,具有request processor

(observer server 與follower server的區別就在於不參與leader選舉)

zookeeper的安裝

1.將zookeeper-3.4.6.tar上傳至linux並執行 tar -zxvf zookeeper-3.4.6.tar.gz 解壓

2.進入到解壓後的目錄/home/hadoop-node-01/zookeeper-3.4.6/conf中,

執行 mv zoo_sample.cfg zoo.cfg 將zoo_sample.cfg改名為zoo.cfg,該檔案引數介紹如下:

ticktime=2000           ----follower向leader傳送心跳的時間間隔,2秒心跳一次

initlimit=10            ----啟動初始化的時間為10個心跳

synclimit=5             ----leader向follower傳送請求讓follower同步資料,若5個心跳沒有收到回應,就認為超時了

datadir=/tmp/zookeeper  ----zookeeper資料目錄

clientport=2181         ----zookeeper接收客戶端請求的埠號

一般只配置datadir,(其他配置一般預設就好),datadir=/home/hadoop-node-01/zookeeper-3.4.6/data  (data目錄自己新建)

另外需要新加配置:(給每台機器設定乙個id,如:server.1 server.2 server.3)

server.1=hadoop-01-node-server:2888:3888     ----其中2888是leader和follower通訊的埠,3888是選舉通訊的埠

server.2=hadoop-02-node-server:2888:3888

server.3=hadoop-03-node-server:2888:3888

3.進入到/home/hadoop-node-01/zookeeper-3.4.6/下,執行 echo 1 > data/myid 新建檔案data/myid,並將自己機器設定過的id寫入該檔案

4.單台機器配置完畢,將zookeeper-3.4.6複製到其他機器,並進入/home/hadoop-node-01/zookeeper-3.4.6/data/myid設定各自機器的id。

(進入另外兩台機器的/home/hadoop-node-01/zookeeper-3.4.6/data下分別執行echo 2 > myi  decho 3 > myid)

5.啟動zookeeper

執行/home/hadoop-node-01/zookeeper-3.4.6/bin/zkserver.sh start  (配置環境變數後直接執行zkserver.sh start)

啟動成功後jps,出現quorumpeermain程序

zookeeper客戶端的執行:

zookeeper是乙個集群,作為乙個整體對外提供服務,任何乙個客戶端只要能連上就可以使用它提供的服務~~~

zookeeper的相容性很好,windows中也可以安裝執行zookeeper的客戶端(zookeeper的bin中就有.cmd的shell指令碼zkserver.cmd 和 zkcli.cmd)

windows中啟動zookeeper客戶端:c:\zookeeper-3.4.6\bin\zkcli.cmd -server hadoop-node-01-server:2181

(注意:hadoop-node-01-server是c:\windows\system32\drivers\etc\hosts中配置的主機對映名,

2181在zookeeper的配置檔案中配置過,是zookeeper接收客戶端請求的埠號)

啟動後執行help看一下常用命令

zookeeper節點有四種型別

persistent              ----永久的(只要客戶端不刪除,就一直在)

persistent_sequential   ----永久且有序的

empemeral               ----短暫的(只要客戶端掉線,則會被自動刪除)

empemeral_sequential    ----短暫且有序的

zookeeper的目錄結構:

zookeeper的檔案系統不像一般的檔案系統,它是樹狀結構的「目錄樹」,每乙個節點叫做znode,

每乙個znode都自己的path,都攜帶乙份使用者的資料,都有自己的型別。

建立節點:create [-s] [-e] path data acl  (不帶[-s] [-e] 建立的預設就是永久的  如:create /lq 'this is my data') 

拿資料:get /lq   修改資料:set /lq 'this is my data2'

刪除節點:rmr /lq

zookeeper的基本api:

導包:核心包:c:\zookeeper-3.4.\zookeeper-3.4.6.jar

依賴包:c:\zookeeper-3.4.6\lib\下5個

**:public class zookeeper catch (keeperexception e) catch (interruptedexception e)

}});

}@test

public void testcreateznode() throws keeperexception, interruptedexception, unsupportedencodingexception

@test

public void testdeleteznode() throws interruptedexception, keeperexception

@test

public void testupdateznode() throws keeperexception, interruptedexception, unsupportedencodingexception

@test

public void testgetchildren() throws keeperexception, interruptedexception

}//***是一次性的,只監聽一次後就失效了

@test

public void testwatch() throws keeperexception, interruptedexception

// 上傳檔案,(比如上傳配置檔案,其他程式可從這讀下來該配置檔案自己去解析)

@test

public void testuploadconfigfiletozookkeeper() throws ioexception, keeperexception, interruptedexception

}

docker 系列 Dock高階知識點文章匯集

書籍 docker 從入門到精通 這可能是最為詳細的docker入門 總結 麥子學院的教程 將 springboot 打包進 docker spring 官方的教程 docker 部署 springboot 專案整合 redis 映象做訪問計數demo docker 容器使用者管理 預設情況下,容器...

TestLink知識點Mantis知識點

testlink知識點 1 testlink系統提供了六種角色 a guest 只有讀的許可權,適合於檢視測試用例和測試需求,以及專案分析的使用者。b testdesigner 可以開展測試用例和測試需求的所有工作。c tester 只能執行測試用例。d senior tester 可以檢視和維護測...

python大一知識點 python知識點複習

放假歸來,這幾天複習了一下好久不用的python,總結了一下知識點。語法基礎tuple與list的異同都由多個元素組成 tuple由 組成,list由組成 tuple不可變,list可變 tuple表示的是一種結構,而list表示的是多個事物的集合 tuple操作比list快 字串用法要點 轉義符和...