1. 程式人生 > >【HBase基礎教程】1、HBase之單機模式與偽分布式模式安裝(轉)

【HBase基礎教程】1、HBase之單機模式與偽分布式模式安裝(轉)

service 4.2 zookeepe .tar.gz class href base mem 創建

在這篇blog中,我們將介紹Hbase的單機模式安裝與偽分布式的安裝方式,以及通過瀏覽器查看Hbase的用戶界面。搭建hbase偽分布式環境的前提是我們已經搭建好了hadoop完全分布式環境,搭建hadoop環境請參考:【Hadoop基礎教程】4、Hadoop之完全分布式環境搭建

開發環境


硬件環境:Centos 6.5 服務器4臺(一臺為Master節點,三臺為Slave節點)
軟件環境:Java 1.7.0_45、Eclipse Juno Service Release 2、hadoop-1.2.1、hbase-0.94.20。

1、 HBase 安裝


1) 下載安裝包

hbase-090.3.tar.gz版本與hadoop-1.2.1良好兼容,從官網下載hbase-090.3.tar.gz安裝包,並將下載的hbase-090.3.tar.gz拷貝到/home/hadoop目錄下。hbase官網下載地址:http://archive.apache.org/dist/hbase/
選擇HBase-0.94.20版本,下載 HBase Releases.

2) 解壓安裝包

[hadoop@K-Master ~]$ cd /usr
[hadoop@K-Master usr]$ sudo tar -xvf /home/hadoop/hbase-090.3.tar.gz   #解壓安裝源碼包
[hadoop@K-Master usr]$ mv hbase-090.3 hbase    #重命名
[hadoop@K-Master usr]$ cd hbase
[hadoop@K-Master hbase]$ sudo chown -R hadoop:hadoop hbase #賦予hbase安裝目錄下所有文件hadoop權限

3) 配置安裝路徑

#將hbase下的bin目錄添加到系統的path中,在/etc/profile文件尾行添加如下的內容
[hadoop@K
-Master usr]$ sudo vim /etc/profile export PATH=$PATH:/usr/hbase/bin #執行source命令使上述配置在當前終端立即生效 [hadoop@K-Master usr]$ source /etc/profile

4) 驗證是否安裝成功

[hadoop@K-Master usr]$ hbase version
14/07/21 18:01:57 INFO util.VersionInfo: HBase 0.94.20
14/07/21 18:01:57 INFO util.VersionInfo: Subversion git://newbunny/home/lars/dev/hbase-0.94 -r 09c60d770f2869ca315910ba0f9a5ee9797b1edc
14/07/21 18:01:57 INFO util.VersionInfo: Compiled by lars on Fri May 23 22:00:41 PDT 2014

看到以上打印消息表示Hbase已經安裝成功,接下來將分別進行Hbase單機模式和偽分布式模式的配置。

2、 HBase單機模式


1) 配置/conf/hbase-env.sh

將JAVA_HOME變量設置為Java安裝的根目錄,配置如下所示:

[hadoop@K-Master hbase]$ vim conf/hbase-env.sh
#對hbase-env.sh文件做如下修改:
export JAVA_HOME=/usr/java/jdk1.7.0_65  #配置本機的java安裝根目錄
export HBASE_MANAGES_ZK=true        #配置由hbase自己管理zookeeper,不需要單獨的zookeeper。

2) 配置/conf/hbase-site.xml

在啟動Hbase前需要設置屬性hbase.rootdir,用於指定Hbase數據的存儲位置,此處設置為HBase安裝目錄下的hbase-tmp文件夾即(file:///usr/hbase/hbase-tmp),配置如下:

[hadoop@K-Master hbase]$ vim conf/hbase-site.sh
<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>file:///usr/hbase/hbase-tmp</value>
    </property>
</configuration>

特別註意:hbase.rootdir默認為/tmp/hbase-${user.name},這意味著每次重啟系統都會丟失數據。

3) 啟動Hbase

 [hadoop@K-Master hbase]$ start-hbase.sh 
starting master, logging to /usr/hbase/bin/../logs/hbase-hadoop-master-K-Master.localdomain.out

4) 進入shell模式

進入shell模式之後,通過status命令查看Hbase的運行狀態,通過exit命令退出shell。

[hadoop@K-Master hbase]$ hbase shell

HBase Shell; enter help<RETURN> for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.94.20, r09c60d770f2869ca315910ba0f9a5ee9797b1edc, Fri May 23 22:00:41 PDT 2014

hbase(main):001:0> status
1 servers, 0 dead, 2.0000 average load
hbase(main):002:0> exit

5) 停止HBase

[hadoop@K-Master hbase]$ stop-hbase.sh 
stopping hbase.....................

特別註意:如果在操作Hbase的過程中發生錯誤,可以通過{HBASE_HOME}目錄(/usr/hbase)下的logs子目錄中的日誌文件查看錯誤原因。

3、 HBase偽分布式模式


1) 配置/conf/hbase-env.sh

添加變量HBASE_CLASSPATH,並將路徑設置為本機Hadoop安裝目錄下的conf目錄(即{HADOOP_HOME}/conf)。修改完成後,hbase-env.sh的配置如下:

[hadoop@K-Master hbase]$ vim conf/hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_65
export HBASE_CLASSPATH=/usr/hadoop/conf 
export HBASE_MANAGES_ZK=true

2) 配置/conf/hbase-site.xml

修改hbase.rootdir,將其指向K-Master(與hdfs的端口保持一致),並指定HBase在HDFS上的存儲路徑。將屬性hbase.cluter.distributed設置為true。假設當前Hadoop集群運行在偽分布式模式下,且NameNode運行在9000端口;

[hadoop@K-Master hbase]$ vim hbase-site.xml 
<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://K-Master:9000/hbase</value>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
</configuration>

原作者沒有寫監控頁面如何配置與啟動,還是hbase-site.xml,加上

<property>  

             <name>hbase.master.info.port</name>  

             <value>16010</value>  

      </property>

然後訪問 http://master:16010/master-status

3) 啟動HBase

完成以上操作後啟動HBase,啟動順序:先啟動Hadoop–>再啟動HBase,關閉順序:先關閉HBase–>再關閉Hadoop。

第一步:啟動hadoop集群

[hadoop@K-Master hbase]$ start-all.sh          #啟動hadoop
[hadoop@K-Master hbase]$ jps               #查看進程
9040 DataNode
18205 Jps
9196 SecondaryNameNode
10485 JobTracker
10620 TaskTracker
8902 NameNode

特別註意:讀者可先通過jps命令查看Hadoop集群是否啟動,如果Hadoop集群已經啟動,則不需要執行Hadoop集群啟動操作。

第二步:啟動HBase

[hadoop@K-Master lib]$ start-hbase.sh          #啟動Hbase
K-Master: starting zookeeper, logging to /usr/hbase/bin/../logs/hbase-hadoop-zookeeper-K-Master.localdomain.out
starting master, logging to /usr/hbase/bin/../logs/hbase-hadoop-master-K-Master.localdomain.out
K-Master: starting regionserver, logging to /usr/hbase/bin/../logs/hbase-hadoop-regionserver-K-Master.localdomain.out
[hadoop@K-Master lib]$ jps                 #查看進程
9040 DataNode
18889 HMaster
19201 Jps
9196 SecondaryNameNode
19073 HRegionServer
10485 JobTracker
10620 TaskTracker
18818 HQuorumPeer
8902 NameNode

4) 進入shell模式

進入shell模式之後,通過list命令查看當前數據庫所有表信息,通過create命令創建一個member表,其擁有member_id,address,info三個列族,通過describe命令查看member表結構,通過exit命令退出HBase shell模式。

[hadoop@K-Master hadoop]$ hbase shell
HBase Shell; enter help<RETURN> for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.94.20, r09c60d770f2869ca315910ba0f9a5ee9797b1edc, Fri May 23 22:00:41 PDT 2014

hbase(main):001:0> create member,member_id,address,info
0 row(s) in 2.7170 seconds

hbase(main):002:0> list
TABLE   
member  
1 row(s) in 0.0550 seconds

hbase(main):003:0> describe member
DESCRIPTION  ENABLED
 member, {NAME => address, DATA_BLOCK_ENCODING = true   
 > NONE, BLOOMFILTER => NONE, REPLICATION_SCOPE 
 => 0, VERSIONS => 3, COMPRESSION => NONE, MIN
 _VERSIONS => 0, TTL => 2147483647, KEEP_DELETED
 _CELLS => false, BLOCKSIZE => 65536, IN_MEMORY 
 => false, ENCODE_ON_DISK => true, BLOCKCACHE =>
  true}, {NAME => info, DATA_BLOCK_ENCODING =>  NONE, BLOOMFILTER => NONE, REPLICATION_SCOPE => 
 0, VERSIONS => 3, COMPRESSION => NONE, MIN_VE
 RSIONS => 0, TTL => 2147483647, KEEP_DELETED_CE
 LLS => false, BLOCKSIZE => 65536, IN_MEMORY => 
 false, ENCODE_ON_DISK => true, BLOCKCACHE => t
 rue}, {NAME => member_id, DATA_BLOCK_ENCODING =>
  NONE, BLOOMFILTER => NONE, REPLICATION_SCOPE =
 > 0, VERSIONS => 3, COMPRESSION => NONE, MIN_
 VERSIONS => 0, TTL => 2147483647, KEEP_DELETED_
 CELLS => false, BLOCKSIZE => 65536, IN_MEMORY =
 > false, ENCODE_ON_DISK => true, BLOCKCACHE => 
 true}
1 row(s) in 0.1040 seconds

hbase(main):004:0> exit

5) 查看HDFS的HBase數據庫文件

通過hadoop fs –ls /hbase命令查看HBase分布式數據庫在HDFS上是否成功創建,/hbase/member文件夾即為上一步我們所建立的member數據庫在HDFS上的存儲位置。

[hadoop@K-Master conf]$ hadoop fs -ls /hbase
Found 8 items
drwxr-xr-x   - hadoop supergroup  0 2014-07-21 19:46 /hbase/-ROOT-
drwxr-xr-x   - hadoop supergroup  0 2014-07-21 19:46 /hbase/.META.
drwxr-xr-x   - hadoop supergroup  0 2014-07-22 11:38 /hbase/.logs
drwxr-xr-x   - hadoop supergroup  0 2014-07-22 11:39 /hbase/.oldlogs
drwxr-xr-x   - hadoop supergroup  0 2014-07-22 11:40 /hbase/.tmp
-rw-r--r--   1 hadoop supergroup 38 2014-07-21 19:46 /hbase/hbase.id
-rw-r--r--   1 hadoop supergroup  3 2014-07-21 19:46 /hbase/hbase.version
drwxr-xr-x   - hadoop supergroup  0 2014-07-22 11:40 /hbase/member

6) HBase用戶界面:
通過下面的鏈接可以訪問Hbase的一些相關信息,鏈接說明如下表格所示:

技術分享圖片

7) 停止HBase

完成上述操作後,執行關閉HBase操作,關閉順序:先關閉HBase —>再關閉Hadoop。

[hadoop@K-Master hadoop]$ stop-hbase.sh    #停止Hbase
stopping hbase..................
K-Master: stopping zookeeper.

[hadoop@K-Master hadoop]$ stop-all.sh  #停止Hadoop
stopping jobtracker
K-Master: stopping tasktracker
stopping namenode
K-Master: stopping datanode
K-Master: stopping secondarynamenode

4、 HBase的用戶界面


1) HDFS主頁

輸入http://{主機名}:50070/dfshealth.jsp 進入HDFS主頁,在該主頁點擊“Browse the filesystem”超鏈接,選擇hbase目錄,可以查看HBase在HDFS上生成的/hbase目錄結構,該目錄用於存放Hbase數據,如下圖所示;

技術分享圖片

2) Master頁面

通過地址http://{主機名}:60010/master.jsp 可以查看HBase的相關信皂,如下圖所示。

技術分享圖片

主要包含的信息如下:

  • Attributes信息

Master屬性信息包含了當前集群的詳細信息,從上往下依次為HBase的版本及編譯信息、Hadoop的版本及編譯信息、HBase根目錄的路徑、Region服務器的平均負載以及ZooKeeper Quorums的地址。

技術分享圖片

  • Tables信息

用戶表信息給出了HBase中的表信息及相關屬性,目錄表信息包含兩個目錄表:-ROOT-和.META.;

技術分享圖片

點擊上圖[Details]鏈接,跳轉到Tables Details界面,如下圖所示:

技術分享圖片

  • Region Servers信息

Region服務器信息給出了所有Region服務器的地址,如下圖所示;

技術分享圖片

3) ZooKeeper頁面

通過Master頁面中Master屬性提供的鏈接,可以進入ZooKeeper頁面,該頁面顯示了HBase的根目錄、省前的主Master地址、保存-ROOT-表的Region服務器的地址、其他Region服務器的地址及ZooKeeper的一些內部信息,如下圖所示。

技術分享圖片

4) 用戶表頁面

通過Master頁面中用戶表信息提供的鏈接http://{主機名}:60010/table.jsp?name=user ,可以進入用戶表頁面,如下圖所示。該頁面給出了表當前是否可用以及表在Region服務器上的信息。同時提供了根據行鍵合並及拆分表的操作。

技術分享圖片

5) Region服務器頁面

通過Master頁面中Region服務器信息提供的鏈接,可以進入Region服務器頁面,該頁面顯示了Region服務器的基本屬性和其上所有Regions的信息,如下圖所示。

技術分享圖片

參考

http://hbase.apache.org/book.html#_getting_started

【HBase基礎教程】1、HBase之單機模式與偽分布式模式安裝(轉)