1. 程式人生 > >手把手教你配置Hbase完全分散式環境

手把手教你配置Hbase完全分散式環境

HBase配置相對比較簡單,下面的教程也是基於我上面2篇Hadoop配置的環境下繼續往下新增HBase的分散式配置,這次我的HBase安裝目錄放在跟Hadoop同一目錄下面,節點資訊跟我前一篇Hadoop完全分散式配置完全一樣,不清楚的話可以參考我那篇文章。

HBase根目錄:/usr/mywind/hbase

HBase的版本:0.98.8-hadoop2

有圖有真相:

 

完整配置步驟:hadoop-env.sh→hbase-env.sh → hbase-site.xml → regionservers

當然,配置之前的慣例是把bin目錄加到系統環境變數裡面,方便命令的使用。然後,詳細的步驟如下:

 

1.    配置hadoop-env.sh,把HBase環境變數告訴Hadoop。

 

 

1

exportHBASE_HOME=${HBASE_HOME}

 

1

exportHADOOP_CLASSPATH=$HBASE_HOME/hbase-it-0.98.8-hadoop2.jar:$HBASE_HOME/hbase-it-0.98.8-hadoop2-tests.jar:$HBASE_HOME

/conf:${HBASE_HOME}/lib/zookeeper-3.4.6.jar:${HBASE_HOME}/lib/protobuf-java-2.5.0.jar:${HBASE_HOME}/lib/guava-12.0.1.jar

 

 

2. 配置hbase-env.sh,把Java環境變數告訴HBase,並配置ZooKpeer是否託管。

?

1

2

exportJAVA_HOME=${JAVA_HOME}

exportHBASE_HEAPSIZE_ZK=false

3.   配置hbase-site.xml,引用管網的話“假如你第一次配置,那麼<configuration></configuration>之間是沒有任何內容的”。

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

<configuration>

  <property>

    <name>hbase.rootdir</name>

    <value>hdfs://192.168.8.184:9000/hbase</value>

  </property>

  <property>

     <name>hbase.cluster.distributed</name>

     <value>true</value>

  </property>

  <property>

      <name>hbase.master</name>

      <value>master:60000</value>

  </property>

   <property>

    <name>hbase.zookeeper.property.dataDir</name>

    <value>/home/a01513/zookeeper</value>

  </property>

  <property>

    <name>hbase.zookeeper.quorum</name>

    <value>master,slave1,slave2,slave3</value>

  </property>

  <property>

    <name>hbase.zookeeper.property.clientPort</name>

    <value>2181</value>

  </property>

</configuration>

這裡要特別注意的是hbase.rootdir裡面的HDFS地址是要跟Hadoop 的core-site.xml裡面的fs.defaultFS 的HDFS的IP地址或者域名、埠必須一致。其次是hbase.zookeeper.property.dataDir,其中a01513是我的作業系統使用者名稱,根據你自己的情況改吧,或者放到其他目錄也是可以的。hbase.cluster.distributed 是啟用分散式模式,這裡必須為true哦。hbase.zookeeper.quorum是配置叢集IP地址集或者域名集,逗號分隔。hbase.master配置HBase的主節點埠,web埠是60010,通過web UI你可以確認你是否訪問成功了。如下圖表示成功了:

4.         最後配置regionservers,這個最簡單了,把裡面的內容改成下面的就可以了:

?

1

2

3

slave1

slave2

slave3

有圖有真相,讓你模仿起來更有信心:

 

配置完成後啟動HBase就可以了:

?

1

start-hbase.sh

關於Shell命令、API文件,參考官網咖。

(1)可能還需要將hadoop的核心jar複製到Hbase的lib下

(2)將hadoop的hdfs-site.xml檔案複製到Hbase的conf檔案下。

配置中可能遇到的問題:

1.   WARN  [Thread-12] hdfs.DFSClient: DataStreamer Exception

org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /hbase/.tmp/hbase.version could only be replicated to 0 nodes instead of minReplication (=1).  There are 0 datanode(s) running and no node(s) are excluded in this operation.

    問題定位:datanode

    問題原因:datanode沒有啟動

    解決辦法:啟動datanode(start-dfs.sh)

2.    執行sh start-hbase.sh時報錯,命令相容性原因還是什麼,忘記了,總之,不能使用 sh start-hbase.sh ,要用bash start-hbase.sh。