1. 程式人生 > >ZooKeeper 3.4.5 分散式環境搭建詳解

ZooKeeper 3.4.5 分散式環境搭建詳解

概述

上一篇中,我們說到了關於 Hadoop-2.2.0 叢集的搭建。在這個系列中,Zookeeper 是必不可少的。本文會介紹 Zookeeper-3.4.5 的安裝,後面會介紹 HBase-0.96 的安裝。希望於你有益。

版權說明

環境說明

  1. CentOS release 6.5 (Final) ( master )
  2. CentOS release 6.5 (Final) ( slave1 )
  3. CentOS release 6.5 (Final) ( slave2 )
  4. JDK-1.8.0_92 ( Oracle )
  5. Hadoop-2.2.0
  6. 虛擬機器環境: VMware® Workstation 12 Pro
序號 虛擬機器 IP hostname
1 172.16.2.117 master
2 172.16.2.115 slave1
3 172.16.2.116 slave2

Zookeeper 環境搭建

下載

$ tar -zxvf zookeeper-3.4.5.tar.gz
$ mv zookeeper-3.4.5 ~/zookeeper

配置環境變數

$ sudo vim /etc/profile

在檔案的末尾處,新增如下資訊

export ZOOKEEPER_HOME=/home/hadoop/zookeeper
export
PATH=$PATH:${ZOOKEEPER_HOME}/bin

設定上面的配置立即生效

$ source /etc/profile

配置 zoo.cfg

配置 zoo.cfg 的路徑是 ${ZOOKEEPER_HOME}/conf/zoo.cfg,不過一般情況下,這個檔案是不存在的,需要從 zoo_sample.cfg 複製獲得

$ cp zoo_smaple.cfg zoo.cfg
$ vim zoo.cfg

配置檔案中的內容如下

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoop/data/zookeeper
clientPort
=2181 server.1=master:2888:3888 server.2=slave1:2888:3888 server.3=slave2:2888:3888

配置防火牆

這裡選擇關閉防火牆

$ sudo service iptables stop
$ sudo chkconfig iptables off  # 設定防火牆不隨系統啟動,這一條你可以選擇性新增

配置 myid

[[email protected] ~]$ echo 1 > /home/hadoop/data/zookeeper/myid
[[email protected] ~]$ echo 2 > /home/hadoop/data/zookeeper/myid
[[email protected] ~]$ echo 3 > /home/hadoop/data/zookeeper/myid

注意這裡 myid 的路徑要與上面 zoo.cfg 中 dataDir 的路徑一致。否則你的 Zookeeper 將無法啟動。
另外上面的三條指令實際上是在三臺虛擬機器上完成的,這裡需要注意,別傻乎乎地在同一臺虛擬機器上搞得起勁。

配置下發

$ scp -r zookeeper/ slave1:~/
$ scp -r zookeeper/ slave2:~/

這裡與 Hadoop 中的下發一樣,將整個資料夾下發到你想要安放的目錄。只是,這裡需要在 scp 後面加上一個 -r,不然你就需要將 zookeeper 檔案先壓縮,再下發,再在各個子節點下再解壓。麻煩死了~,還不如一個 -r 把控全域性來得爽。

節點配置修改

這裡主要有兩個地方需要修改
1. myid
2. dataDir
myid 不用再說了,上面已經講過了。這裡的 dataDir 路徑,你必須保證它存在,所以你要去建立它。

啟動測試

$ zkServer.sh start
JMX enabled by default
Using config: /home/hadoop/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

需要注意的是,要在每一臺機器上都啟動 zookeeper 才可以。

啟動驗證

$ jps
[hadoop@master ~]$ jps
6888 QuorumPeerMain
7353 Jps

如果這裡存在 QuorumPeerMain 程序的話,就說明 Zookeeper 啟動成功了。

功能驗證

上面的啟動驗證只是說明了你的 Zookeeper 已經啟動了,並不能說明,你的 Zookeeper 啟動成功了。我們需要使用下面的指令檢視 Zookeeper 是否啟動成功。

$ zkServer.sh status
[[email protected] ~]$ zkServer.sh status
JMX enabled by default
Using config: /home/hadoop/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.

果然,這裡的輸出資訊足以說明我們的 zookeeper 沒有啟動成功。百度了一通,完全無用!還有的一些完全是在胡說八道。

解決方案

在網上搜了很多的解決方案都不可行。也看了 zookeeper.out 資訊,都沒有什麼發現。於是嘗試著修改了 dataDir 的路徑到 Zookeeper 的安裝目錄下(這是網上的教程中都用的目錄),並重啟計算機,問題解決。當然,我不能保證你按照我的步驟一定可以解決問題。只是把我解決此問題的過程分享給你而已,如果你未能解決它,可能你是另外的情況,但我希望你也可以不吝嗇地把你的解決方案分享給大家。

驗證結果
master

[hadoop@master zookeeper]$ zkServer.sh status
JMX enabled by default
Using config: /home/hadoop/zookeeper/bin/../conf/zoo.cfg
Mode: leader

slave1

[hadoop@slave1 conf]$ zkServer.sh status
JMX enabled by default
Using config: /home/hadoop/zookeeper/bin/../conf/zoo.cfg
Mode: follower

slave2

[hadoop@slave2 conf]$ zkServer.sh status
JMX enabled by default
Using config: /home/hadoop/zookeeper/bin/../conf/zoo.cfg
Mode: follower

測試 zkClient

zkCli.sh -server master:2181
Connecting to master:2181
2016-05-18 09:48:28,985 [myid:] - INFO  [main:[email protected]100] - Client environment:zookeeper.version=3.4.5-1392090, built on 09/30/2012 17:52 GMT
2016-05-18 09:48:28,990 [myid:] - INFO  [main:[email protected]100] - Client environment:host.name=master
2016-05-18 09:48:28,990 [myid:] - INFO  [main:[email protected]100] - Client environment:java.version=1.8.0_92
( ... 此處省略 N 條 ... )
Welcome to ZooKeeper!
2016-05-18 09:48:29,095 [myid:] - INFO  [main-SendThread(master:2181):[email protected]966] - Opening socket connection to server master/172.16.2.117:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2016-05-18 09:48:29,309 [myid:] - INFO  [main-SendThread(master:2181):[email protected]849] - Socket connection established to master/172.16.2.117:2181, initiating session
2016-05-18 09:48:29,420 [myid:] - INFO  [main-SendThread(master:2181):[email protected]1207] - Session establishment complete on server master/172.16.2.117:2181, sessionid = 0x154c4bf7e640000, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: master:2181(CONNECTED) 0]

至此,我們的 Zookeeper 終於搭建完成了。以下是搭建完成之後在 Zookeeper 裡面的玩耍:

[zk: master:2181(CONNECTED) 0] ls /
[zookeeper]
[zk: master:2181(CONNECTED) 1] create /newfile hello
Created /newfile
[zk: master:2181(CONNECTED) 2] ls /
[zookeeper, newfile]
[zk: master:2181(CONNECTED) 3] get /newfile
hello
cZxid = 0x200000002
ctime = Wed May 18 09:50:50 PDT 2016
mZxid = 0x200000002
mtime = Wed May 18 09:50:50 PDT 2016
pZxid = 0x200000002
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 0
[zk: master:2181(CONNECTED) 4] set /newfile gootday

WATCHER::

WatchedEvent state:SyncConnected type:NodeDataChanged path:/newfile
cZxid = 0x200000002
ctime = Wed May 18 09:50:50 PDT 2016
mZxid = 0x200000003
mtime = Wed May 18 09:53:55 PDT 2016
pZxid = 0x200000002
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 7
numChildren = 0
[zk: master:2181(CONNECTED) 7] get /newfile
gootday
cZxid = 0x200000002
ctime = Wed May 18 09:50:50 PDT 2016
mZxid = 0x200000003
mtime = Wed May 18 09:53:55 PDT 2016
pZxid = 0x200000002
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 7
numChildren = 0
[zk: master:2181(CONNECTED) 8] delete /newfile
[zk: master:2181(CONNECTED) 9] ls /
[zookeeper]
[zk: master:2181(CONNECTED) 10] quit
Quitting...
2016-05-18 09:56:03,079 [myid:] - INFO  [main:[email protected]] - Session: 0x154c4bf7e640000 closed
2016-05-18 09:56:03,080 [myid:] - INFO  [main-EventThread:[email protected]] - EventThread shut down

Ref

相關推薦

ZooKeeper 3.4.5 分散式環境搭建

概述 上一篇中,我們說到了關於 Hadoop-2.2.0 叢集的搭建。在這個系列中,Zookeeper 是必不可少的。本文會介紹 Zookeeper-3.4.5 的安裝,後面會介紹 HBase-0.96 的安裝。希望於你有益。 版權說明

zookeeper-3.4.10分散式叢集環境搭建

初始叢集狀態 機器名 IP 作用 linux系統 master 192.168.218.133   CentOS-6.9-x86_64-bin-D

Hadoop2.7.3單機偽分散式環境搭建

Hadoop2.7.3單機偽分散式環境搭建 作者:家輝,日期:2018-07-10 CSDN部落格: http://blog.csdn.net/gobitan 說明:Hadoop測試環境經常搭建,這裡也做成一個模板並記錄下來。 基礎環境

Hadoop2.7.4完全分散式環境搭建

軟體版本 虛擬機器管理軟體:VMware WorkStation Pro 12.0 作業系統:CentOS 6.7 Hadoop:Hadoop 2.7.4 JDK:jdk-8u65-linux-x64.tar.gz 一、環境準備 1、 修改各個節點主機名:vi /e

[Hadoop] CentOS7安裝Zookeeper-3.4.5-cdh5.7.0(單節點)

  1. Zookeeper下載安裝 我的環境使用的套件版本是cdh5.7,所以zookeeper也選擇對應的版本下載。 下載解壓 [[email protected] software]$ wget http://archive.cloudera.com/c

Hadoop 2.6.4 完全分散式環境搭建

一、安裝linux 環境 OS Linux:CentOS 6.6 64bit 記憶體 1.5-2GB 硬碟 15-20GB 二、安裝JDK 及修改hostname 1、修改hostname  [[email protected] ~]# vi /etc/s

Vue.js 運行環境搭建(基於windows的手把手安裝教學)及vue、node基礎知識普及

頁面 沒有 全能 服務器程序 重載 帶來 size 耐心 編程   Vue.js 是一套構建用戶界面的漸進式框架。他自身不是一個全能框架——只聚焦於視圖層。因此它非常容易學習,非常容易與其它庫或已有項目整合。在與相關工具和支持庫一起使用時,Vue.j

AngularJS4.0環境搭建--windows系統環境

class images 開發 安裝 hub 詳解 ans win 總結 第一步:安裝NodeJS   下載最新版的NodeJS並安裝,安裝完成後打開CMD命令行,輸入以下命令:   node -v   若返回類似版本號則代表NodeJS安裝成功,如下:    第二部

Python環境搭建(Window平臺)

強制 section strip 配置環境變量 廣泛 rip 標準庫 ron 令行 前言 Python,是一種面向對象的解釋型計算機程序設計語言,是純粹的自由軟件,Python語法簡潔清晰,特色是強制用空白符作為語句縮進,具有豐富和強大的庫,它常被稱為膠水語言。 Pyth

Python的環境搭建!!!!

Python 環境搭建 本文章我們將向大家介紹如何在本地搭建Python開發環境。 Python可應用於多平臺包括 Linux 和 Mac OS X。 你可以通過終端視窗輸入 "python" 命令來檢視本地是否已經安裝Python以及Python的安裝版本。 Uni

Go 系列教程 —— 1. Go語言開發環境搭建

Go語言介紹Go語言是Google於2009年釋出的第二款開源的程式語言。Go語言的特點:準對多處理器應用程式的程式設計進行了優化,使用Go編譯程式可以媲美C或C++的程式碼速度,而且擁有Python解釋語言的簡潔和開發效率。Go語言優勢可以編譯成機器碼,不依賴其他庫靜態型別

CDH版本Hadoop叢集環境搭建

1、CDH版本hadoop重新編譯 1.1 為什麼要編譯? 由於cdh給出的hadoop的安裝包並沒有提供帶C程式訪問的介面,所以我們在使用本地庫(本地庫可以用來做壓縮,以及支援C程式等等)的時候就會出問題,所以一般需要自己重新編譯。 1.2 編譯環境的準備

小白學Python的必備之物——Python環境搭建

clas 對不起 適合 目錄 屬性 一個 新版 設置 由於 昨天,有小夥伴向我反映,他對我說“你好像還沒教過我安裝Python的吧?”聽到這句話,我不禁汗顏起來,我的確好像沒太註意Python學習的基礎了,一直發各種爬蟲與初學者看不懂的代碼,在此我要向我的讀者先說聲“對不起

搜尋引擎Solr環境搭建

Solr伺服器採用java5開發的,是基於Lucene全文搜尋的。要想搭建Solr,首先進行java環境的配置,安裝對應的jdk以及tomcat,在此就不多講。以下是在jdk1.7和tomcat1.7的環境下搭建最新版本的solr4.10.3。具體步驟如下:2.建目錄/web

Vue.js 執行環境搭建(基於windows的手把手安裝教學)及vue、node基礎知識普及

Vue.js 是一套構建使用者介面的漸進式框架。他自身不是一個全能框架——只聚焦於檢視層。因此它非常容易學習,非常容易與其它庫或已有專案整合。在與相關工具和支援庫一起使用時,Vue.js 也能完美地驅動複雜的單頁應用。   在配置環境之前呢,有些基礎的東西還是要和大家普及一

Gerrit原始碼開發環境搭建

Gerrit          Gerrit,開放原始碼的程式碼審查軟體,使用網頁介面。利用網頁瀏覽器,同一個團隊的軟體程式設計師,可以相互審閱彼此修改後的程式程式碼,決定是否能夠提交,退回或者繼續修改。它使用Git作為底層版本控制系統。原先是為了管理Android計劃而產

windows 64位下,React-Native環境搭建 (Android)

React-Native環境搭建需要: 1、安裝Java JDK 2、安裝Android Studio 3、安裝node.js 4、安裝git 5、安裝Python 2.x (注意目前不支援Python 3版本) 6、安裝react-native-c

Java開發環境搭建

一。jdk安裝與配置  jdk7於3月份剛剛釋出,目前eclipse的最新版本中還沒有提供對jdk7的編譯支援,所以我們只下載jdk6。 下載地址:http://download.java.net/jdk6/  選擇適合平臺的安裝檔案,windows32下目

Vue.js 執行環境搭建及vue、node基礎知識普及

​Vue.js 是一套構建使用者介面的漸進式框架。他自身不是一個全能框架——只聚焦於檢視層。因此它非常容易學習,非常容易與其它庫或已有專案整合。在與相關工具和支援庫一起使用時,Vue.js 也能完美地驅動複雜的單頁應用。 在配置環境之前呢,有些基礎的東西還是要和大家普及

Vue開發環境搭建

網上搜索部落格、視訊試著搭建下Vue的開發環境,過程沒有視訊裡那麼順利,花了我幾個小時,但我還是要花半小時來總結一下記錄下來,避免下次用個新電腦又得搭建環境浪費時間了,下面是我搭建環境的步驟,與君同享,共同學習,若有錯誤,歡迎吐槽評論! 另外,我的電腦是win