Mac下安裝HBase及詳解

本博客采用創(chuàng)作共用版權(quán)協(xié)議, 要求署名性昭、非商業(yè)用途和保持一致. 轉(zhuǎn)載本博客文章必須也遵循署名-非商業(yè)用途-保持一致的創(chuàng)作共用協(xié)議.

個(gè)人博客地址: http://andrewliu.tk, 歡迎持續(xù)關(guān)注和友聯(lián).

1. 千篇一律的HBase簡介


HBase是Hadoop的數(shù)據(jù)庫, 而Hive數(shù)據(jù)庫的管理工具, HBase具有分布式, 可擴(kuò)展及面向列存儲的特點(diǎn)(基于谷歌BigTable). HBase可以使用本地文件系統(tǒng)和HDFS文件存儲系統(tǒng), 存儲的是松散的數(shù)據(jù)(key-value的映射關(guān)系).

HBase位于HDFS的上層, 向下提供存儲, 向上提供運(yùn)算

2. HBase安裝


HBase有單機(jī), 偽分布式, 全分布式運(yùn)行模式

依賴:

  • 匹配HBase的Hadoop版本
  • Java JDK 1.6+
  • SSH

安裝

$ brew install hbase
# 安裝在/usr/local/Cellar/hbase/1.0.0

配置HBase

conf/hbase-env.sh設(shè)置JAVA_HOME

$ cd /usr/local/Cellar/hbase/1.0.0/libexec/conf
$ vim hbase-env.sh

export JAVA_HOME="/usr/bin/java"

conf/hbase-site.xml設(shè)置HBase的核心配置

$ vim hbase-site.xml

<configuration>
  <property>
    <name>hbase.rootdir</name>
    //這里設(shè)置讓HBase存儲文件的地方
    <value>file:///Users/andrew_liu/Downloads/hbase</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    //這里設(shè)置讓HBase存儲內(nèi)建zookeeper文件的地方
    <value>/Users/andrew_liu/Downloads/zookeeper</value>
  </property>
</configuration>

/usr/local/Cellar/hbase/1.0.0/bin/start-hbase.sh提供HBase的啟動

$ ./start-hbase.sh                                          
starting master, logging to /usr/local/Cellar/hbase/1.0.0/libexec/bin/../logs/hbase-andrew_liu-master-Andrew-liudeMacBook-Pro.local.out

驗(yàn)證是否安裝成功

$ jps

3440 Jps
3362 HMaster # 有HMaster則說明安裝成功
1885

啟動HBase Shell

$ ./bin/hbase shell

HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.0.0, r6c98bff7b719efdb16f71606f3b7d8229445eb81, Sat Feb 14 19:49:22 PST 2015

1.8.7-p357 :001 >
1.8.7-p357 :001 > exit  #退出shell

停止HBase運(yùn)行

$ ./bin/stop-hbase.sh
stopping hbase....................

3. 偽分布式模式

必須關(guān)閉HBase

修改hbase-env.sh

HBASE_MANAGE_XK = true

修改hbase-site.xml, 設(shè)置HBase使用分布式模式運(yùn)行

<configuration>
  <property>
    <name>hbase.rootdir</name>
    //Here you have to set the path where you want HBase to store its files.
    <value>hdfs://localhost:8020/hbase</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
  <value>true</value>
</property>
</configuration>

hbase.rootdir路徑一定要跟hadoop中core-site.xml中fs.default.name相同

change the hbase.rootdir from the local filesystem to the address of your HDFS instance ---offical quick start

如何兩處設(shè)置不同會引起ERROR: Can't get master address from ZooKeeper; znode data == null錯(cuò)誤錯(cuò)誤

在啟動HBase之前, 請先啟動Hadoop, 使之運(yùn)行

啟動HBase

$ ./start-hbase.sh
$ jps  #驗(yàn)證是否啟動成功, 包含HMaster和HRegionServer說明啟動成功

6400 DataNode
7872 Jps
7702 HMaster  
7624 HQuorumPeer
6315 NameNode
6508 SecondaryNameNode
6716 NodeManager
7804 HRegionServerHBase 
6623 ResourceManager

如果在啟動HBase后, 提示如下

regionserver running as process 4667. Stop it first.
#請執(zhí)行以下操作
$ kill -9 4667  #這里4667是要?dú)⒌舻倪M(jìn)程號

啟動成功HBase會在HDFS下創(chuàng)建/hbase目錄

$ hdfs dfs -ls /hbase

4. HBase Shell


$ hbase shell  #啟動HBase Shell

#創(chuàng)建表
> create 'student', 'description', 'course'  #創(chuàng)建表名為student的表, 指明兩個(gè)列名, 分別為description和course

#信息明細(xì)
> list 'student'  #列出list表信息

#插入數(shù)據(jù)
> put 'student', 'row1', 'description:age', '18'  #意思為在student表row1處插入description:age的數(shù)據(jù)為18
> put 'student', 'row1', 'description:name', 'liu'
put 'student', 'row1', 'course:chinese', '100'

#一次掃描所有數(shù)據(jù)
> scan 'student

#使表失效 / 有效
> disable 'student'
> enable 'student'

#刪除表(要先disable)
>  drop 'student'

#退出shell
> quit

5. HBase與HDFS


HBase是一個(gè)稀疏的長期存儲的, 多維度的, 排序的映射表, 通過行鍵, 行鍵 + 時(shí)間戳 或 行鍵 + 列(列族: 列修飾符)就可以定位特殊的數(shù)據(jù)

5.1. HBase體系結(jié)構(gòu)

HBase的服務(wù)器體系遵從簡單的主從服務(wù)器架構(gòu), 由HRegion服務(wù)器群HBase服務(wù)器構(gòu)成, Master服務(wù)器負(fù)責(zé)管理所有的HRegion服務(wù)器, 而HBase中所有的服務(wù)器通過ZooKeeper來進(jìn)行協(xié)調(diào)并處理HBase服務(wù)器運(yùn)行期間可能遇到的錯(cuò)誤.

HBase邏輯上的表可能會被劃分為多個(gè)HRegion, 然后存儲在HRegion服務(wù)器上.

  • HBase不涉及數(shù)據(jù)的直接刪除和更新, 當(dāng)Store中的Storefile數(shù)量超出閾值會觸發(fā)合并操作
  • HMaster的主要任務(wù)是告訴每個(gè)HRegion服務(wù)器它要維護(hù)那些HRegion
  • ZooKeeper存儲的是HBase中ROOT表和META表的位置, ZooKeeper還負(fù)責(zé)監(jiān)控各個(gè)機(jī)器的狀態(tài)

元數(shù)據(jù)子表采用三級索引結(jié)構(gòu): 根子表->用戶表的元數(shù)據(jù)表->用戶表

5.2. Java API

  • HBaseConfiguration, 通過此類對HBase進(jìn)行配置
  • HBaseAdmin, 提供一個(gè)接口來管理HBase數(shù)據(jù)庫的表信息, 提供創(chuàng)建, 刪除表, 列出表項(xiàng), 使表有效或無效, 以及添加或刪除列族成員
  • HTableDescriptor, 包含了表的名字及對應(yīng)表的列族
  • HColumnDescriptor, 維護(hù)關(guān)于列族的信息
  • HTable, 用來與HBase表進(jìn)行通信
  • Put, 用來對單個(gè)行執(zhí)行添加操作
  • Get, 用來獲取單個(gè)行的相關(guān)信息
  • Result, 存儲Get或者Scan操作后獲取的表的單行值

6. 參考鏈接


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末凳怨,一起剝皮案震驚了整個(gè)濱河市六荒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌刻肄,老刑警劉巖铜靶,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件带射,死亡現(xiàn)場離奇詭異,居然都是意外死亡搭幻,警方通過查閱死者的電腦和手機(jī)咧擂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來檀蹋,“玉大人松申,你說我怎么就攤上這事「┯猓” “怎么了贸桶?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長桌肴。 經(jīng)常有香客問我皇筛,道長,這世上最難降的妖魔是什么坠七? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任水醋,我火速辦了婚禮,結(jié)果婚禮上彪置,老公的妹妹穿的比我還像新娘拄踪。我一直安慰自己,他們只是感情好拳魁,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布惶桐。 她就那樣靜靜地躺著,像睡著了一般潘懊。 火紅的嫁衣襯著肌膚如雪姚糊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天卦尊,我揣著相機(jī)與錄音叛拷,去河邊找鬼。 笑死岂却,一個(gè)胖子當(dāng)著我的面吹牛忿薇,可吹牛的內(nèi)容都是我干的裙椭。 我是一名探鬼主播,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼署浩,長吁一口氣:“原來是場噩夢啊……” “哼揉燃!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起筋栋,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤炊汤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后弊攘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抢腐,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年襟交,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了迈倍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,989評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡捣域,死狀恐怖啼染,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情焕梅,我是刑警寧澤迹鹅,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站贞言,受9級特大地震影響斜棚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蜗字,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一打肝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧挪捕,春花似錦粗梭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至奏纪,卻和暖如春鉴嗤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背序调。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工醉锅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人发绢。 一個(gè)月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓硬耍,卻偏偏與公主長得像垄琐,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子经柴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評論 2 345

推薦閱讀更多精彩內(nèi)容