HBASE 系列-入門

HBase最新穩(wěn)定版本是2017年7月份的1.2.6版本弦聂。很多用戶還是0.92.x 莺葫。
盡管版本不同屉更,原理確是相似的洒缀。若覺得長树绩,可挑重點(diǎn)看。
下載地址:hbase-1.2.6-bin.tar.gz

說明

本文主要講在本地測(cè)試環(huán)境的HBASE的安裝配置渤早,可以安裝VMWare虛擬機(jī)瘫俊,
CDH版本會(huì)在另外文章發(fā)表。

1.簡介

以下簡單理解骂蓖,有個(gè)感性認(rèn)識(shí)川尖,面試時(shí)可忽悠

  1. 一種類似KV的NoSql數(shù)據(jù)庫被芳。
  2. 一種“強(qiáng)一致性”讀寫畔濒,而非“最終一致性”的數(shù)據(jù)存儲(chǔ),很適合快速實(shí)時(shí)聚合統(tǒng)計(jì)的計(jì)算任務(wù)李破。
  3. 隨著你的數(shù)據(jù)增長壹将,Hbase會(huì)自動(dòng)分片sharding诽俯,重新分布數(shù)據(jù)。
  4. RegionServer 可以自動(dòng)fallover檢測(cè)闯团。
  5. 可以用HDFS作為文件存儲(chǔ)系統(tǒng)
  6. 支持作為大規(guī)模MR并行計(jì)算的數(shù)據(jù)源和存儲(chǔ)地仙粱。
  7. 可以用Java Client API 操作HBASE
  8. 可以用Thrift和Restful 非JAVA語言操作
  9. 海量數(shù)據(jù)查詢時(shí),可以用Block Cache和Bloom Filter作為優(yōu)化

2.使用場(chǎng)景

首先候味,你要有足夠的數(shù)據(jù)隔心,有億級(jí)別和數(shù)十億級(jí)別時(shí)候比較適合硬霍,百萬,千萬級(jí)別的用傳統(tǒng)的RDBMS數(shù)據(jù)庫是更好的選擇粱玲。

其次拜轨,你可以容忍沒有RDBMS那種字段類型撩轰,二級(jí)索引昧廷,事務(wù)偎箫,高級(jí)查詢語法等功能.

第三淹办,你要確保有足夠的硬件資源,HDFS的datanode最有有5個(gè)(副本因子為3速挑,NameNode,SecondNameNode 2個(gè))副硅。

有HDFS了恐疲,為何還需要HBase?

HDFS只是非常適合存儲(chǔ)大規(guī)模files而已,并沒有提供record的快速檢索和更新功能碳蛋,而HBASE則提供省咨。

3. 安裝

重點(diǎn)注意事項(xiàng)

3.1 JAVA_HOME 配置

JAVA_HOME=/usr/jdk (注,必須在JDK7以上)

在HBASE集群中的每個(gè)節(jié)點(diǎn) hbase-env.sh里配置

HBASE&JDK版本的支持

Base Version JDK7 JDK 8
2.0 Not Supported yes
1.3 yes yes
1.2 yes yes
1.1 yes Running with JDK 8 will work but is not well tested.

3.2 NTP設(shè)置

保證cluster集群里各個(gè)節(jié)點(diǎn)的時(shí)間一致笤受。(自己去度娘)

3.3 設(shè)置ulimit (要學(xué)會(huì)估算)

Hbase 可能要求一次打開大量的文件感论,而系統(tǒng)個(gè)默認(rèn)可能1024.最好是1024的整數(shù)備紊册,如102400.

ulimit -n

估算示例:

1.一個(gè)RegionServer含100個(gè)region
2.一個(gè)region有3個(gè)ColumnFamily列簇
3.一個(gè)ColumnFamily平均3個(gè)StoreFiles

那么囊陡,JVM會(huì)open 100*3*3=900個(gè) file descriptors

3.1單機(jī) Standalone HABE

$ tar xzvf hbase-3.0.0-SNAPSHOT-bin.tar.gz
$ cd hbase-3.0.0-SNAPSHOT/

若果你在本地電腦安裝掀亥,那么一個(gè)Instance就包行了所有的守護(hù)線程如Master, RegionServers, and ZooKeeper搪花。他們運(yùn)行在一個(gè)JVM虛擬機(jī)上嘹害。

如果你的Hbase是 0.94.x之前版本吮便,需要配置
vi /ets/host127.0.0.1 localhost 
否則可能會(huì)報(bào)錯(cuò)髓需。

不需要自己手動(dòng)配置hbase data目錄,在base-site.xml配置可自動(dòng)生成

  <configuration>
 <property>
   <name>hbase.rootdir</name>
   <value>file:///home/testuser/hbase</value>
 </property>
 <property>
   <name>hbase.zookeeper.property.dataDir</name>
   <value>/home/testuser/zookeeper</value>
 </property>
</configuration>

啟動(dòng)HBASE

bin/start-hbase.sh

Hbase WEB UI訪問

http://localhost:16010

Hbase 啟動(dòng)和停止

./bin/hbase shell

$ ./bin/stop-hbase.sh

3.2 偽分布式

vi hbase-site.xml
增加微渠,如下

<property>
  <name>hbase.cluster.distributed</name>
  <value>true</value>
</property>

同時(shí)逞盆,修改hbase.root 松申,在HDFS里也也不需要手動(dòng)創(chuàng)建目錄

<property>
  <name>hbase.rootdir</name>
  <value>hdfs://localhost:8020/hbase</value>
</property>

重啟hbase服務(wù)后攻臀,可用hadoop命令看到結(jié)果

$ ./bin/hadoop fs -ls /hbase
Found 7 items
drwxr-xr-x   - hbase users          0 2014-06-25 18:58 /hbase/.tmp
drwxr-xr-x   - hbase users          0 2014-06-25 21:49 /hbase/WALs
drwxr-xr-x   - hbase users          0 2014-06-25 18:48 /hbase/corrupt
drwxr-xr-x   - hbase users          0 2014-06-25 18:58 /hbase/data
-rw-r--r--   3 hbase users         42 2014-06-25 18:41 /hbase/hbase.id
-rw-r--r--   3 hbase users          7 2014-06-25 18:41 /hbase/hbase.version
drwxr-xr-x   - hbase users          0 2014-06-25 21:49 /hbase/oldWALs

3.3 Full 分布式 HBASE

三個(gè)節(jié)點(diǎn):node-a ,node-b,node-c

  1. 保證各個(gè)節(jié)點(diǎn)可以相互訪問刨啸,關(guān)閉防火墻(否則,可能會(huì)出現(xiàn) no route to host)
  2. node-a 必須可以登錄 node-b 和 node-c (包括自身) 善已,如此以來离例,可以啟動(dòng)各個(gè)節(jié)點(diǎn)的守護(hù)進(jìn)程宫蛆。

在 node-a 上 生成SSH access

$ ssh-keygen -t rsa
$ cat id_rsa.pub >> ~/.ssh/authorized_keys

使用下面命令,將公鑰拷貝到其它節(jié)點(diǎn)上

ssh-copy-id -i ~/.ssh/id_rsa.pub node-a
ssh-copy-id -i ~/.ssh/id_rsa.pub node-b
ssh-copy-id -i ~/.ssh/id_rsa.pub node-c

chmod 600 authorized_keys

3.若backup角色的master啟動(dòng)了想虎,也需要按2操作來一遍叛拷,讓node-b可以訪問其它節(jié)點(diǎn)忿薇。 注意躏哩,別覆蓋了揉燃,使用>> 而不是>

Node Name Master ZooKeeper RegionServer
node-a.example.com yes yes no
node-b.example.com backup yes yes
node-c.example.com yes yes yes

vi hbase-site.xml

增加zk配置

<property>
  <name>hbase.zookeeper.quorum</name>
  <value>node-a.example.com,node-b.example.com,node-c.example.com</value>
</property>
<property>
  <name>hbase.zookeeper.property.dataDir</name>
  <value>/usr/local/zookeeper</value>
</property>

當(dāng)Node-a的hbase配置好后你雌,打包scp到node-b和node-c節(jié)點(diǎn)婿崭。
在node-a節(jié)點(diǎn)啟動(dòng)

start-hbase.sh

啟動(dòng)的順序一般是:

1.ZooKeeper starts first,
2.followed by the master,
3.then the RegionServers,

  1. finally the backup masters.

接下來驗(yàn)證下是否啟動(dòng)成功,使用Jps命令
node-a:

$ jps
20355 Jps
20071 HQuorumPeer (zk)
20137 HMaster

node-b:

$ jps
15930 HRegionServer
16194 Jps
15838 HQuorumPeer (zk)
16010 HMaster (backup)

node-c :

$ jps
13901 Jps
13639 HQuorumPeer (zk)
13737 HRegionServer

HQuorumPeer是由HBase控制和啟動(dòng)的渣磷,這里的zookeeper是HBASE自帶的醋界,一般適用于測(cè)試環(huán)境提完,生成環(huán)境建議用外部獨(dú)立的ZK集群。
自帶和外部獨(dú)立的zk進(jìn)程區(qū)別:

HQuorumPeer :自帶
QuorumPeer :獨(dú)立

HBase WEI UI 訪問

http://node-a.example.com:16010/ 主master
http://node-b.example.com:16010/ 備master

3個(gè)節(jié)點(diǎn)的hbase集群逐样,其實(shí)并不是非常有彈性脂新,你可以試試kill掉master進(jìn)程或RegionServer進(jìn)程 觀察日志看看粗梭。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末断医,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子酷宵,更是在濱河造成了極大的恐慌躬窜,老刑警劉巖炕置,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異此虑,居然都是意外死亡朦前,警方通過查閱死者的電腦和手機(jī)鹃操,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門荆隘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來恩伺,“玉大人,你說我怎么就攤上這事椰拒【” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵燃观,是天一觀的道長褒脯。 經(jīng)常有香客問我,道長缆毁,這世上最難降的妖魔是什么憨颠? 我笑而不...
    開封第一講書人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮积锅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘缚陷。我一直安慰自己适篙,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開白布箫爷。 她就那樣靜靜地躺著嚷节,像睡著了一般。 火紅的嫁衣襯著肌膚如雪虎锚。 梳的紋絲不亂的頭發(fā)上硫痰,一...
    開封第一講書人閱讀 49,111評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音窜护,去河邊找鬼效斑。 笑死,一個(gè)胖子當(dāng)著我的面吹牛柱徙,可吹牛的內(nèi)容都是我干的缓屠。 我是一名探鬼主播奇昙,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼敌完!你這毒婦竟也來了储耐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤滨溉,失蹤者是張志新(化名)和其女友劉穎什湘,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晦攒,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡禽炬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了勤家。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腹尖。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖伐脖,靈堂內(nèi)的尸體忽然破棺而出热幔,到底是詐尸還是另有隱情,我是刑警寧澤讼庇,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布绎巨,位于F島的核電站,受9級(jí)特大地震影響蠕啄,放射性物質(zhì)發(fā)生泄漏场勤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一歼跟、第九天 我趴在偏房一處隱蔽的房頂上張望和媳。 院中可真熱鬧,春花似錦哈街、人聲如沸留瞳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽她倘。三九已至,卻和暖如春作箍,著一層夾襖步出監(jiān)牢的瞬間硬梁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來泰國打工胞得, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留荧止,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像罩息,于是被迫代替她去往敵國和親嗤详。 傳聞我的和親對(duì)象是個(gè)殘疾皇子个扰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

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

  • 入門指南 1. 簡介 Quickstart會(huì)讓你啟動(dòng)和運(yùn)行一個(gè)單節(jié)點(diǎn)單機(jī)HBase瓷炮。 2. 快速啟動(dòng) – 單點(diǎn)HB...
    和心數(shù)據(jù)閱讀 4,522評(píng)論 1 41
  • hadoop2集群搭建詳解------------------------天津九安醫(yī)療電子--吳偉 一、需要軟件 ...
    hogface閱讀 1,795評(píng)論 1 4
  • 最近在逐步跟進(jìn)Hbase的相關(guān)工作递宅,由于之前對(duì)Hbase并不怎么了解娘香,因此系統(tǒng)地學(xué)習(xí)了下Hbase,為了加深對(duì)Hb...
    飛鴻無痕閱讀 50,182評(píng)論 19 271
  • 由于種種原因办龄,曾經(jīng)有一段非常長的時(shí)間狹隘地理解溫柔烘绽,以為溫柔的同義詞可能會(huì)有娘炮,柔弱俐填,做作安接。直到最近兩年才漸漸開...
    Kokoishere閱讀 724評(píng)論 0 0
  • 秋夜安靜,燈火昏黃英融,沒有月亮盏檐。涼風(fēng)習(xí)習(xí),讓人精神驶悟,比抽一根煙管用胡野。加過班,不想徑直去坐地鐵痕鳍,最近有點(diǎn)疲憊硫豆,工作都是...
    象兔閱讀 211評(píng)論 0 0