大資料規整-10-zookeeper單機叢集安裝和使用
從華科大的映象地址進行下載
http://mirrors.hust.edu.cn/apache
ZooKeeper的叢集模式下,多個Zookeeper伺服器在工作前會選舉出一個Leader,在接下來的工作中這個被選舉出來的Leader死了,而剩下的Zookeeper伺服器會知道這個Leader死掉了,在活著的Zookeeper叢集中會繼續選出一個Leader,選舉出Leader的目的是為了可以在分散式的環境中保證資料的一致性。
確認叢集伺服器的數量
由於ZooKeeper叢集中,會有一個Leader負責管理和協調其他叢集伺服器,因此伺服器的數量通常都是單數,例如3,5,7…等,這樣2n+1的數量的伺服器就可以允許最多n臺伺服器的失效。
1 zookeeper單機叢集模式
1.1 指令碼install_zookeeper.sh
(1)配置,主要更改zookeeper的資料存放地址和日誌地址
install_zookeeper.sh
#! /bin/bash
## author:zb
## date:2020.10.24
## 需要提前定義好的資訊
myidvalue="1"
hostname=`cat /etc/hostname`
echo '開始安裝zookeeper'
echo '(1)解壓'
tar -xzvf zookeeper-3.4.8.tar.gz -C /usr/local
echo '(2)配置環境變數ZOOKEEPER_HOME'
ZOOKEEPER_HOME='/usr/local/zookeeper-3.4.8'
echo "export ZOOKEEPER_HOME=${ZOOKEEPER_HOME}" >> /root/.bashrc
echo 'export PATH=$PATH:$ZOOKEEPER_HOME/bin' >> /root/.bashrc
source /root/.bashrc
echo '(3)建立資料和日誌目錄'
mkdir -p ${ZOOKEEPER_HOME}/data
mkdir -p ${ZOOKEEPER_HOME}/datalog
echo '(4)建立myid檔案'
cd ${ZOOKEEPER_HOME}/data
touch myid
echo ${myidvalue} >> myid
echo '(5)修改配置檔案zoo.cfg'
cd ${ZOOKEEPER_HOME}/conf
echo "tickTime=2000" >> zoo.cfg
echo "initLimit=10" >> zoo.cfg
echo "syncLimit=5" >> zoo.cfg
echo "dataDir=${ZOOKEEPER_HOME}/data" >> zoo.cfg
echo "dataLogDir=${ZOOKEEPER_HOME}/datalog" >> zoo.cfg
echo "clientPort=2181" >> zoo.cfg
echo "server.1=${hostname}:2888:3888" >> zoo.cfg
注意寫入的配置檔案zoo.cfg的內容如下:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper-3.4.8/data
dataLogDir=/usr/local/zookeeper-3.4.8/datalog
clientPort=2181
server.1=pda1:2888:3888
注意建立的配置檔案myid中的內容如下:
1
除了修改 zoo.cfg 配置檔案,叢集模式下還要配置一個檔案 myid,這個檔案在 dataDir 目錄下,這個檔案裡面就只有一個資料就是 A 的值,Zookeeper 啟動時會讀取這個檔案,拿到裡面的資料與 zoo.cfg 裡面的配置資訊比較從而判斷到底是哪個server。注意:myid檔案要自己建立,在dataDir目錄下。
1.2 引數說明
(1)tickTime:這個時間是作為 Zookeeper 伺服器之間或客戶端與伺服器之間維持心跳的時間間隔,也就是每個 tickTime 時間就會傳送一個心跳。
(2)dataDir:顧名思義就是 Zookeeper 儲存資料的目錄,預設情況下,Zookeeper 將寫資料的日誌檔案也儲存在這個目錄裡。
clientPort:這個埠就是客戶端連線 Zookeeper 伺服器的埠,Zookeeper 會監聽這個埠,接受客戶端的訪問請求。
(3)initLimit:這個配置項是用來配置Zookeeper接受客戶端初始化連線時最長能忍受多少個心跳時間間隔數。當已經超過10個心跳的時間長度後Zookeeper伺服器還沒有收到客戶端的返回資訊,那麼表明這個客戶端連線失敗。總的時間長度就是52000=10秒(即tickTimeinitLimit=10秒)。這裡所說的客戶端不是使用者連線Zookeeper伺服器的客戶端,而是Zookeeper伺服器叢集中連線到Leader的Follower伺服器
(4)syncLimit:這個配置項標識Leader與Follower之間傳送訊息,請求和應答時間長度,最長不能超過多少個tickTime的時間長度,總的時間長度就是2*2000=4秒。
(5)server.A=B:C:D配置項
A:這是一個數字,表示這是第幾號伺服器
B:A伺服器的IP地址
C:通訊埠,即A伺服器與叢集中的 Leader 伺服器交換資訊的埠
D:選舉通訊埠,表示的是萬一叢集中的 Leader 伺服器掛了,需要一個埠來重新進行選舉,選出一個新的 Leader,而這個埠就是用來執行選舉時伺服器相互通訊的埠。如果是偽叢集的配置方式,由於 B 都是一樣,所以不同的 Zookeeper 例項通訊埠號不能一樣,所以要給它們分配不同的埠號。
2 啟動
zkServer.sh start
zkServer.sh status檢視服務狀態
啟動之後檢視狀態,雖然是按照叢集的模式配置的,但是因為只有一個節點的緣故,導致模式顯示為standalone。
3 客戶端連線
#zkCli.sh -server 127.0.0.1:2181
[zk: 127.0.0.1:2181(CONNECTED) 2] create /zk “test”
[zk: 127.0.0.1:2181(CONNECTED) 3] get /zk獲取節點zk所包含的資訊
[zk: 127.0.0.1:2181(CONNECTED) 1] quit退出客戶端
相關文章
- Redis概述和單機、叢集安裝Redis
- 大資料叢集搭建 – 2. CDH叢集安裝 – NTP,MYSQL,nginx安裝大資料MySqlNginx
- 02.Flink的單機wordcount、叢集安裝
- ZooKeeper叢集安裝和部署
- 大資料叢集搭建 – 1. CDH叢集安裝 – 環境準備大資料
- oracle雙機叢集安裝小結Oracle
- 【redis叢集安裝】Redis
- zookeeper 叢集安裝
- kafka叢集安裝Kafka
- hbase叢集安裝
- StarRocks 叢集安裝
- cdh 叢集安裝
- ElasticSearch 6.6.0叢集安裝Elasticsearch
- TiDB叢集安裝TiDB
- Elasticsearch 叢集安裝部署Elasticsearch
- 【Zookeeper】zookeeper叢集安裝
- 記HBase叢集安裝
- Hadoop叢集安裝Hadoop
- zookeeper 叢集安裝(單點與分散式成功安裝)分散式
- Hadoop叢集安裝配置Hadoop
- kubernetes叢集安裝
- elasticsearch叢集安裝(3臺)Elasticsearch
- Storm叢集安裝與部署ORM
- linux ZooKeeper叢集安裝Linux
- WAS叢集安裝配置過程
- Kubernetes 叢集安裝
- etcd簡介及叢集安裝部署使用
- redis cluster 4.0.9 叢集安裝搭建Redis
- WAS中介軟體垂直叢集安裝
- WAS中介軟體水平叢集安裝
- mongo副本集叢集安裝配置Go
- K8S叢集安裝K8S
- CDH5 叢集安裝教程H5
- Hadoop 叢集安裝與配置Hadoop
- hadoop叢集安裝檔案Hadoop
- Flink(四)叢集安裝(二)
- Zookeeper介紹與叢集安裝
- k8s 叢集安裝K8S