Hadoop上搭建Zookeeper、HBase

環境

ubuntu 14.04
hadoop 2.7.1 搭建過程,請參考我的上幾篇文章
master 192.168.31.131
slave1 192.168.31.132
slave2 192.168.31.133

HBase依賴于zookeeper,故先搭建Zookeeper

Zookeeper是一個分布式開源框架,提供了協調分布式應用的基本服務,它向外部應用暴露一組通用服務——分布式同步(Distributed Synchronization)、命名服務(Naming Service)、集群維護(Group Maintenance)等,簡化分布式應用協調及其管理的難度,提供高性能的分布式服務。ZooKeeper本身可以以單機模式安裝運行,不過它的長處在于通過分布式ZooKeeper集群(一個Leader,多個Follower),基于一定的策略來保證ZooKeeper集群的穩定性和可用性,從而實現分布式應用的可靠性。

搭建Zookeeper

1.在zookeeper.apache.org上下載zookeeper-3.4.8.tar.gz
2.解壓 tar -xzvf zookeeper-3.4.8.tar.gz
3.修改權限 sudo chown -R cms(ubuntu用戶名) zookeeper-3.4.8
4.修改配置文件 /etc/profile,增加

export ZOOKEEPER_HOME=$HOME/zookeeper-3.4.8
export CLASSPATH=$ZOOKEEPER_HOME/lib
export PATH=$ZOOKEEPER_HOME/bin

5.對Zookeeper的配置文件的參數進行設置
進入zookeeper-3.4.5/conf
1)cp zoo_sample.cfg zoo.cfg

一是是修改dataDir的文件目錄位置

2)在zookeeper下新建一個存放數據的目錄
mkdir zookerperdata
3)vim zoo.cfg

dataDir=/home/cms/zookeeper-3.4.8/zookerperdata

二是配置id

   server.1=192.168.31.131:2888:3888  
   server.2=192.168.31.132:2888:3888  
   server.3=192.168.31.133:2888:3888 
圖示

注意上圖的配置中master,slave1分別為主機名
在上面的配置文件中"server.id=host:port:port"中的第一個port是從機器(follower)連接到主機器(leader)的端口號,第二個port是進行leadership選舉的端口號。

4)創建myid
接下來在dataDir所指定的目錄下(zookeeper-3.4.8/zookerperdata/)創建一個文件名為myid的文件,文件中的內容只有一行,為本主機對應的id值,也就是上圖中server.id中的id。例如:在服務器1中的myid的內容應該寫入1。
vim myid

5)遠程復制到slave1,slave2相同的目錄下
scp -r zookeeper-3.4.8 cms@slave1:/home/cms/
scp -r zookeeper-3.4.8 cms@slave1:/home/cms/

6)修改slave1,slave2機器上的myid的值分別為2和3

啟動ZooKeeper集群

在ZooKeeper集群的每個結點上,執行啟動ZooKeeper服務的腳本,如下所示:

cms@slave1:~/zookeeper-3.4.8$ bin/zkServer.sh start
cms@slave2:~/zookeeper-3.4.8$ bin/zkServer.sh start```
如下圖所示:

![master](http://upload-images.jianshu.io/upload_images/1908836-7a7a18d21e6a4ecf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![slave1](http://upload-images.jianshu.io/upload_images/1908836-ba8f4b1b6c5c9f81.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
其中,QuorumPeerMain是zookeeper進程,啟動正常。
如上依次啟動了所有機器上的Zookeeper之后可以通過ZooKeeper的腳本來查看啟動狀態,包括集群中各個結點的角色(或是Leader,或是Follower),如下所示,是在ZooKeeper集群中的每個結點上查詢的結果:

![](http://upload-images.jianshu.io/upload_images/1908836-b09d963015dd31d3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![](http://upload-images.jianshu.io/upload_images/1908836-7d6521a6c2fa500c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
通過上面狀態查詢結果可見,slave1是集群的Leader,其余的兩個結點是Follower。
另外,可以通過客戶端腳本,連接到ZooKeeper集群上。對于客戶端來說,ZooKeeper是一個整體(ensemble),連接到ZooKeeper集群實際上感覺在獨享整個集群的服務,所以,你可以在任何一個結點上建立到服務集群的連接,例如:
```zkCli.sh -server slave1:2181```

![](http://upload-images.jianshu.io/upload_images/1908836-01e92ca35045f795.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
quit退出
######停止zookeeper進程:
```zkServer.sh stop```
至此,Zookeeper集群安裝大功告成!

######安裝HBase
1.下載以及解壓hbase-1.0.3.tar.gz
2.修改配置文件 /etc/profile,增加

export HBASE_HOME=$HOME/hbase-1.0.3
export CLASSPATH=$HBASE_HOME/lib
export PATH=$HBASE_HOME/bin

3.對Hbase的配置文件的參數進行設置
進入Hbase/conf
1)修改 hbase-env.sh

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export HBASE_MANAGES_ZK=false // 告訴hbase使用外部的zk

2)修改hbase-site.xml

<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/cms/zookeeper-3.4.8/zookerperdata</value>!-- 指定zk的數據文件夾 -->
</property>
</configuration>3)vim regionservers```
添加內容

slave1 
slave2

4)遠程復制到slave1,slave2相同的目錄下
scp -r hbase-1.0.3 cms@slave1:/home/cms/
scp -r hbase-1.0.3 cms@slave1:/home/cms/

啟動Hbase

在啟動hbase之前,要啟動
1)啟動hadoop集群
start-dfs.sh start-yarn.sh
2)分別啟動zk(注意每個節點的zk都要啟動)
zkServer.sh start
3)啟動hbase,在主節點上運行:

start-hbase.sh```
jps

![](http://upload-images.jianshu.io/upload_images/1908836-63f89379701ddbfa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![](http://upload-images.jianshu.io/upload_images/1908836-a3c0c21ebaf53ff7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

####測試Hbase

![](http://upload-images.jianshu.io/upload_images/1908836-6529db009e02c583.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
顯示:

![](http://upload-images.jianshu.io/upload_images/1908836-d47f836e2f7e4150.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![](http://upload-images.jianshu.io/upload_images/1908836-5d71d532e4d6514b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
至此搭建成功
######參考文獻
[Zookeeper集群環境安裝過程詳解](http://blog.csdn.net/cruise_h/article/details/19046357)
[hbase集群搭建](https://my.oschina.net/sucre/blog/700481)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容