Zookeeper單機(jī)安裝
安裝 Linux
安裝 Jdk
上傳 Zookeeper
官方資源包可在 zookeeper.apache.com
解壓 tar -zxf zookeeper-3.4.6.tar.gz
Zookeeper 目錄結(jié)構(gòu)
- bin:放置運(yùn)行腳本和工具腳本永脓,如果是 Linux 環(huán)境還會(huì)有有 zookeeper 的運(yùn) 行日志 zookeeper.out
- conf:zookeeper 默認(rèn)讀取配置的目錄,里面會(huì)有默認(rèn)的配置文件
- contrib:zookeeper 的拓展功能
- dist-maven:zookeeper的 maven 打包目錄
- docs:zookeeper 相關(guān)的文檔
- lib:zookeeper 核心的 jar
- recipes:zookeeper 分布式相關(guān)的 jar 包
- src:zookeeper 源碼
配置Zookeeper
Zookeeper 在啟動(dòng)時(shí)默認(rèn)的去 conf 目錄下查找一個(gè)名稱為 zoo.cfg 的配置文件。 在 zookeeper 應(yīng)用目錄中有子目錄 conf。其中有配置文件模板:zoo_sample.cfg cp zoo_sample.cfg zoo.cfg。zookeeper 應(yīng)用中的配置文件為 conf/zoo.cfg仓手。 修改配置文件 zoo.cfg - 設(shè)置數(shù)據(jù)緩存路徑
啟動(dòng) Zookeeper
默認(rèn)加載配置文件:./zkServer.sh start:默認(rèn)的會(huì)去 conf 目錄下加載 zoo.cfg 配置文件。
指定加載配置文件:./zkServer.sh start 配置文件的路徑。
Zookeeper集群安裝
6.1Zookeeper 集群中的角色介紹
Zookeeper 集群中的角色主要有以下三類:
2.2集群的設(shè)計(jì)目的
1.最終一致性:client 不論連接到哪個(gè) Server享甸,展示給它都是同一個(gè)視圖截碴,這是 zookeeper 最重要的性能。
2 .可靠性:具有簡(jiǎn)單蛉威、健壯日丹、良好的性能,如果消息 m 被到一臺(tái)服務(wù)器接受蚯嫌,那么它 將被所有的服務(wù)器接受哲虾。
3 .實(shí)時(shí)性:Zookeeper 保證客戶端將在一個(gè)時(shí)間間隔范圍內(nèi)獲得服務(wù)器的更新信息,或 者服務(wù)器失效的信息择示。但由于網(wǎng)絡(luò)延時(shí)等原因束凑,Zookeeper 不能保證兩個(gè)客戶端能同時(shí)得到 剛更新的數(shù)據(jù),如果需要最新數(shù)據(jù)栅盲,應(yīng)該在讀數(shù)據(jù)之前調(diào)用 sync()接口湘今。
4 .等待無關(guān)(wait-free):慢的或者失效的 client 不得干預(yù)快速的 client 的請(qǐng)求,使得每 個(gè) client 都能有效的等待剪菱。
5.原子性:更新只能成功或者失敗摩瞎,沒有中間狀態(tài)。
6 .順序性:包括全局有序和偏序兩種:全局有序是指如果在一臺(tái)服務(wù)器上消息 a 在消息 b 前發(fā)布孝常,則在所有 Server 上消息 a 都將在消息 b 前被發(fā)布旗们;偏序是指如果一個(gè)消息 b 在消 息 a 后被同一個(gè)發(fā)送者發(fā)布,a 必將排在 b 前面构灸。
6.3新建虛擬機(jī)
6.4配置網(wǎng)絡(luò)
6.5安裝JDK
6.6安裝zk集群
說明:zk集群中有三臺(tái)主機(jī)zkserver上渴,是在同一個(gè)虛擬機(jī)啟動(dòng)三個(gè)zkserver,保證端口號(hào)不一樣就行---偽集群
6.6.1上傳安裝包
6.6.2解壓zk的安裝包
6.6.3創(chuàng)建zk的安裝目錄
6.6.4拷貝zk進(jìn)行安裝
6.6.5zk1中創(chuàng)建data目錄
6.6.6配置服務(wù)器編號(hào)
6.6.7拷貝zk的配置文件
將zoo_simple.cfg 拷貝 重新命名為 zoo.cfg
6.6.8配置zoo.cfg
1.新建data目錄
2.訪問端口
3.表示是三臺(tái)服務(wù)器
2888內(nèi)部通信端口
3888選舉端口
6.6.9復(fù)制zk1兩份
zookeeper 目錄 scp -r zookeeper root@node01:/usr/local/zookeeper
6.6.10 data文件夾下創(chuàng)建myid文件
touch myid >>0
node02為data下myid>>1
node03為 data下myid>>2
6.6.11修改zoo.cfg
分別修改zk2和zk3的zoo.cfg文件中的內(nèi)容
Zk2:
Zk3:
6.6.12關(guān)閉防火墻
service iptables stop
5.3.4.12啟動(dòng)三個(gè)zk服務(wù)
zookeeper/bin/zkServer.sh start