為什麼使用zookeeper?
大部分分布式應用需要乙個主控、協調器或控制器來管理物理分布的子程序(如資源、任務分配等)
目前,大部分應用需要開發私有的協調程式,缺乏乙個通用的機制
協調程式的反覆編寫浪費,且難以形成通用、伸縮性好的協調器
zookeeper:提供通用的分布式鎖服務,用以協調分布式應用
zookeeper能幫我們做什麼?
hadoop2.0,使用zookeeper的事件處理確保整個集群只有乙個活躍的namenode,儲存配置資訊等.
hbase,使用zookeeper的事件處理確保整個集群只有乙個hmaster,察覺hregionserver聯機和宕機,儲存訪問控制列表等.
zookeeper的特性
zookeeper是簡單的
zookeeper是富有表現力的
zookeeper具有高可用性
zookeeper採用松耦合互動方式
zookeeper是乙個資源庫
我們使用三颱機器搭建zookeeper集群
192.168.100.104 hadoop4
192.168.100.105 hadoop5
192.168.100.106 hadoop6
1、 修改機器ip 可以在網路連線中直接使用滑鼠操作
2、 修改機器名vim /etc/sysconfig/network 修改如下配置:hostname=機器名稱,hostname=為你的機器名稱,三颱機器分別設定為:hadoop4、hadoop5、hadoop6
新增如下配置:
192.168.100.104 hadoop4
192.168.100.105 hadoop5
192.168.100.106 hadoop6
4、 上傳並解壓zookeeper-3.4.5.tar.gz進入zookeeper-3.4.5目錄建立zoo.cfg檔案使用命令(mv zoo_sample.cfg zoo.cfg)
修改zoo.cfg檔案
datadir=/usr/zookeeper-3.4.5/data
在檔案底部新增如下配置:
server.4=hadoop4:2888:3888
server.5=hadoop5:2888:3888
server.6=hadoop6:2888:3888
儲存退出
zook.cfg檔案內容如下:
# the number of milliseconds of each tick
ticktime=2000
# the number of ticks that the initial
# synchronization phase can take
initlimit=10
# the number of ticks that can pass between
# sending a request and getting an acknowledgement
synclimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
datadir=/usr/zookeeper/data
# the port at which the clients will connect
clientport=2181
# be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
# # the number of snapshots to retain in datadir
#autopurge.snapretaincount=3
# purge task interval in hours
# set to "0" to disable auto purge feature
#autopurge.purgeinterval=1
server.4=hadoop4:2888:3888
server.5=hadoop5:2888:3888
server.6=hadoop6:2888:3888
1.ticktime:cs通訊心跳時間
zookeeper 伺服器之間或客戶端與伺服器之間維持心跳的時間間隔,也就是每個 ticktime 時間就會傳送乙個心跳。ticktime以毫秒為單位。
ticktime=2000
2.initlimit:lf初始通訊時限
集群中的follower伺服器(f)與leader伺服器(l)之間初始連線時能容忍的最多心跳數(ticktime的數量)。
initlimit=5
3.synclimit:lf同步通訊時限
集群中的follower伺服器與leader伺服器之間請求和應答之間能容忍的最多心跳數(ticktime的數量)。
synclimit=2
4.datadir:資料檔案目錄
zookeeper儲存資料的目錄,預設情況下,zookeeper將寫資料的日誌檔案也儲存在這個目錄裡。
datadir=/usr/zookeeper/data
5.clientport:客戶端連線埠
客戶端連線 zookeeper 伺服器的埠,zookeeper 會監聽這個埠,接受客戶端的訪問請求。
clientport=2181
server.4=hadoop4:2888:3888
server.5=hadoop5:2888:3888
server.6=hadoop6:2888:3888
5、 建立myid檔案:在zoo.cfg中設定的datadir對應的目錄中(/usr/zookeeper-3.4.5/data)建立myid檔案
並新增如下內容:echo 「n」 > myid (n為唯一id(最方便可以寫機器名稱最後一位數字))
新增內容以後:touch myid
注意三颱機器都要設定
6、 啟動zookeeper進入zookeeper-3.4.5的bin目錄:./zkserver.sh start 注意三颱機器都要啟動
使用 ./zkserver.sh status 可以檢視狀態,三颱機器中有一台會是leader狀態其它是follower狀態
7、 測試zookeeper
進入zookeeper-3.4.5的bin目錄:./zkcli.sh
建立乙個檔案 create /hadoop123 「123test」
使用另外一台機器登入zookeeper: ./zkcli.sh
獲取hadoop123檔案內容:get hadoop123
Centos6 5搭建dhcpd服務
dhcpd動態獲取ip位址,對於小型區域網很便利的。在不大的網路社會靜態ip也是不錯的!環境 centos6.5 10.10.24.1 dns server winxp sp3 client 網段 10.10.24.0 24 01 設定主機名 hostname dns.mvpbang.com vim...
CentOS 6 5 搭建 LAMP 環境
目錄 第一步 安裝和配置apache伺服器 第二步 設定 繫結站點目錄檔案 第三步 安裝mysql資料庫 第四步 安裝php環境 總結 begin 第一步 安裝和配置apache伺服器 yum update 更新 yum yum install httpd 使用 yum 安裝 httpd httpd...
基於centos6 5的集群搭建
實驗室裡邊有一些不用的計算機,老師想將其配置下,整合成乙個機群,方便並行運算。但是由於這些計算機全部是剛剛安裝的centos6.5系統,裡邊好多軟體包都是空白的。在按照上邊文件配置的過程中有些地方需要替換,這裡將會在文件的基礎上加些補充。1.對於3.4開啟nfs服務 由於portmap在centos...