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

【HBase基礎教程】1、HBase之單機模式與偽分散式模式安裝

在這篇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) 解壓安裝包

[[email protected] ~]$ cd /usr
[[email protected] usr]$ sudo tar -xvf /home/hadoop/hbase-090.3.tar.gz   #解壓安裝原始碼包
[
[email protected]
usr]$ mv hbase-090.3 hbase #重新命名 [[email protected] usr]$ cd hbase [[email protected] hbase]$ sudo chown -R hadoop:hadoop hbase #賦予hbase安裝目錄下所有檔案hadoop許可權

3) 配置安裝路徑

#將hbase下的bin目錄新增到系統的path中,在/etc/profile檔案尾行新增如下的內容
[[email protected] usr]$ sudo vim /etc/profile
export  PATH=$PATH:/usr/hbase/bin
#執行source命令使上述配置在當前終端立即生效
[
[email protected]
usr]$ source /etc/profile

4) 驗證是否安裝成功

[[email protected] 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安裝的根目錄,配置如下所示:

[[email protected] 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),配置如下:

[[email protected] 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

 [[email protected] 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。

[[email protected] 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

[[email protected] 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的配置如下:

[[email protected] 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埠;

[[email protected] 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>

3) 啟動HBase

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

第一步:啟動hadoop叢集

[[email protected] hbase]$ start-all.sh          #啟動hadoop
[[email protected] hbase]$ jps               #檢視程序
9040 DataNode
18205 Jps
9196 SecondaryNameNode
10485 JobTracker
10620 TaskTracker
8902 NameNode

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

第二步:啟動HBase

[[email protected] 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
[[email protected] 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模式。

[[email protected] 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上的儲存位置。

[[email protected] 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。

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

[[email protected] 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資料,如下圖所示;

HDFS下的Hbase目錄

2) Master頁面

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

Hbase Master頁面

主要包含的資訊如下:

  • Attributes資訊

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

Hbase Master頁面Attributes屬性

  • Tables資訊

使用者表資訊給出了HBase中的表資訊及相關屬性,目錄表資訊包含兩個目錄表:-ROOT-和.META.;

Hbase Master頁面Tables資訊

點選上圖[Details]連結,跳轉到Tables Details介面,如下圖所示:

Hbase Tables Details資訊

  • Region Servers資訊

Region伺服器資訊給出了所有Region伺服器的地址,如下圖所示;

Region Servers資訊

3) ZooKeeper頁面

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

ZooKeeper頁面

4) 使用者表頁面

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

User表詳細資訊

5) Region伺服器頁面

通過Master頁面中Region伺服器資訊提供的連結,可以進入Region伺服器頁面,該頁面顯示了Region伺服器的基本屬性和其上所有Regions的資訊,如下圖所示。

Region伺服器頁面

參考

您可能喜歡

相關推薦

HBase基礎教程1HBase單機模式分布式模式安裝(轉)

service 4.2 zookeepe .tar.gz class href base mem 創建 在這篇blog中,我們將介紹Hbase的單機模式安裝與偽分布式的安裝方式,以及通過瀏覽器查看Hbase的用戶界面。搭建hbase偽分布式環境的前提是我們已經搭建好了had

HBase基礎教程1HBase單機模式分散式模式安裝

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

Hadoop基礎教程1Hadoop伺服器基礎環境搭建

本blog以K-Master伺服器基礎環境配置為例分別演示使用者配置、sudo許可權配置、網路配置、關閉防火牆、安裝JDK工具等。使用者需參照以下步驟完成KVMSlave1~KVMSlave3伺服器的基礎環境配置。 開發環境 硬體環境:Centos

HBase基礎教程5HBase API訪問

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

Hadoop基礎教程9Hadoop倒排索引

開發環境 硬體環境:Centos 6.5 伺服器4臺(一臺為Master節點,三臺為Slave節點) 軟體環境:Java 1.7.0_45、hadoop-1.2.1 1、倒排索引 倒排索引是文件檢索系統中最常用的資料結構,被廣泛用於全文搜尋引

Unity3D基礎教程給初學者看的Unity教程(零):如何學習Unity3D

cos 詳解 component lock index unity3d遊戲 design 技術棧 log 【Unity3D基礎教程】給初學者看的Unity教程(零):如何學習Unity3D http://www.cnblogs.com/neverdie/p/How_To_

zabbix系列教程用戶自定義監控

系統用戶 新建 mct 運用 systemctl 一個 start shell 教程 本篇介紹運用zabbix進行自定義監控,以系統用戶登錄數量為例。 一、zabbix自定義語法 UserParameter=<key>,<shell command

劍指offor1二維陣列中的查詢

題目連結: 二維陣列中的查詢 題目描述: 在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 解題思路 兩種思路 方法1

高速介面-RapidIO1RapidIO協議概述

一、RapidIO背景介紹        RapidIO是由Motorola和Mercury等公司率先倡導的一種高效能、 低引腳數、 基於資料包交換的互連體系結構,是為滿足和未來高效能嵌入式系統需求而設計的一種開放式互連技術標準。RapidIO主要

基礎教程1VMware Workstation下載安裝

1.1 重要提示 安裝軟體之前,請先退出360、電腦管家等安全類軟體,這類軟體會阻止我們安裝的軟體進行登錄檔註冊,很可能導致安裝失敗。 1.2 VMware Workstation下載與安裝 1.2.1 下載 開啟VMware Workstation官網下載地址https

周小董1越努力,越幸運! 2機會總是留給有準備的人! 3承受別人不能承受的,才能得到別人不能得到的! 附言:文章僅用於個人學習,如有侵權,請聯絡我刪除,謝謝!

周小董 1、越努力,越幸運! 2、機會總是留給有準備的人! 3、承受別人不能承受的,才能得到別人不能得到的! 附言:文章僅用於個人學習,如有侵權,請聯絡我刪除,謝謝!...

XSS技巧拓展————1漫談同源策略

摘要 如今的WEB標準紛繁複雜,在瀏覽稍大一些的網站時,細心的人會發現網頁上呈現的內容並不僅限於網站自身提供的內容,而是來自一堆五花八門的網站的內容的集合。但有誰會想到同源策略在保護著網民們的安全呢? 瞭解同源策略是十分有必要的,要深入掌握XSS / CSRF等WEB安全漏洞,不瞭解同源策略

Arduino基礎教程LCD5110顯示屏

Nokia 5110顯示屏模組 準備材料 Arduino UNO *1 Nokia 5110 LCD *1 跳線 若干 接線 Nokia 511

Unity3D基礎教程給初學者看的Unity教程(六):理解Unity的新GUI系統(UGUI)

理解UGUI的基礎架構 UGUI是Unity在4.6中引入的新的GUI系統,與傳統的中介軟體NGUI相比,這套新GUI系統有幾個核心亮點: 放棄了Atlas的概念,使用Packing Tag的方式來進行圖集的規劃 放棄了depth來確定UI顯示層級的概念,使用Hierarchy的SiblingIndex

Unity3D基礎教程給初學者看的Unity教程(二):所有指令碼元件的基類 -- MonoBehaviour的前世今生

引子 上一次我們講了GameObject,Compoent,Time,Input,Physics,其中Time,Input,Physics都是Unity中的全域性變數。GameObject是遊戲中的基本物件。GameObject是由Component組合而成的,GameObject本身必須有

Unity3D基礎教程給初學者看的Unity教程(五):詳解Unity3D中的協程(Coroutine)

為什麼需要協程 在遊戲中有許多過程(Process)需要花費多個邏輯幀去計算。 你會遇到“密集”的流程,比如說尋路,尋路計算量非常大,所以我們通常會把它分割到不同的邏輯幀去進行計算,以免影響遊戲的幀率。 你會遇到“稀疏”的流程,比如說遊戲中的觸發器,這種觸發器大多數時候什麼也不做,但

Unity3D基礎教程給初學者看的Unity教程(三):通過製作Flappy Bird瞭解Native 2D中的Sprite,Animation

引子 上一次我們講了MonoBehaviour的前世今生,瞭解了遊戲中的每一個GameObjec都是由指令碼控制的,這一次我們開始將Unity中Native 2D中的Sprite,並且使用Animation來讓Sprite動起來。 在接下來的幾篇部落格裡,我會通過做一個Flappy Bird來講解

Unity3D基礎教程給初學者看的Unity教程(四):通過製作Flappy Bird瞭解Native 2D中的RigidBody2D和Collider2D

引子 認識RigidBody 當RigidBody2D的質量屬性被設定為0時,剛體的質量變為無限大,此時剛體相當於靜態剛體,永遠一動不動。但是在Unity中你是無法把一個RigidBody2D的質量設定為0的,所以,當你想建立一個靜態剛體時,只需要建立碰撞器,而不需要建立RigidBo

Unity3D基礎教程給初學者看的Unity教程(七):在Unity中構建健壯的單例模式(Singleton)

該部落格中的程式碼均出自我的開源專案 : 迷你微信 為什麼需要單例模式 遊戲中需要單例有以下幾個原因: 我們需要在遊戲開始前和結束前做一些操作,比如網路的連結和斷開,資源的載入和解除安裝,我們一般會把這部分邏輯放在單例裡。 單例可以控制初始化和銷燬順序,而靜態變數和場景中的GameObject都無法控制

Unity3D基礎教程給初學者看的Unity教程(一):GameObject,Compoent,Time,Input,Physics

Unity3D重要模組的類圖 最近剛剛完成了一個我個人比較滿意的小專案:【深入Cocos2d-x】使用MVC架構搭建遊戲Four,在這個遊戲中,我使用了自己搭建的MVC架構來製作一個遊戲,做到了比較好的SoC(關注點分離)。但是苦於Cocos2d-x沒有一個比較完善的編輯器,所以我開始學習另一個非常流行