HBase的適用場景

Apache HBase的適用場景 | Ji ZHANG's Blog
http://shzhangji.com/blog/2015/03/08/hbase-dos-and-donts/

原文:http://blog.cloudera.com/blog/2011/04/hbase-dos-and-donts/
最近我在洛杉磯Hadoop用戶組做了一次關(guān)于HBase適用場景的分享蕴轨。在場的聽眾水平都很高评汰,給到了我很多值得深思的反饋蛹尝。主辦方是來自Shopzilla的Jody枪汪,我非常感謝他能給我一個(gè)在60多位Hadoop使用者面前演講的機(jī)會(huì)∈览剑可能一些朋友沒有機(jī)會(huì)來洛杉磯參加這次會(huì)議牺弄,我將分享中的主要內(nèi)容做了一個(gè)整理。如果你沒有時(shí)間閱讀全文宜狐,以下是一些摘要:
HBase很棒,但不是關(guān)系型數(shù)據(jù)庫或HDFS的替代者蛇捌;
配置得當(dāng)才能運(yùn)行良好抚恒;
監(jiān)控,監(jiān)控络拌,監(jiān)控俭驮,重要的事情要說三遍。

Cloudera是HBase的鐵桿粉絲春贸。我們熱愛這項(xiàng)技術(shù)混萝,熱愛這個(gè)社區(qū),發(fā)現(xiàn)它能適用于非常多的應(yīng)用場景萍恕。HBase如今已經(jīng)有很多成功案例逸嘀,所以很多公司也在考慮如何將其應(yīng)用到自己的架構(gòu)中。我做這次分享以及寫這篇文章的動(dòng)因就是希望能列舉出HBase的適用場景允粤,并提醒各位哪些場景是不適用的崭倘,以及如何做好HBase的部署翼岁。
何時(shí)使用HBase
雖然HBase是一種絕佳的工具,但我們一定要記住司光,它并非銀彈琅坡。HBase并不擅長傳統(tǒng)的事務(wù)處理程序或關(guān)聯(lián)分析,它也不能完全替代MapReduce過程中使用到的HDFS残家。從文末的成功案例中你可以大致了解HBase適用于怎樣的應(yīng)用場景榆俺。如果你還有疑問,可以到社區(qū)中提問坞淮,我說過這是一個(gè)非常棒的社區(qū)茴晋。
除去上述限制之外,你為何要選擇HBase呢碾盐?如果你的應(yīng)用程序中晃跺,數(shù)據(jù)表每一行的結(jié)構(gòu)是有差別的,那就可以考慮使用HBase毫玖,比如在標(biāo)準(zhǔn)化建模的過程中使用它掀虎;如果你需要經(jīng)常追加字段,且大部分字段是NULL值的付枫,那可以考慮HBase烹玉;如果你的數(shù)據(jù)(包括元數(shù)據(jù)、消息阐滩、二進(jìn)制數(shù)據(jù)等)都有著同一個(gè)主鍵二打,那就可以使用HBase;如果你需要通過鍵來訪問和修改數(shù)據(jù)掂榔,使用HBase吧继效。
后臺(tái)服務(wù)
如果你已決定嘗試一下HBase,那以下是一些部署過程中的提示装获。HBase會(huì)用到一些后臺(tái)服務(wù)瑞信,這些服務(wù)非常關(guān)鍵。如果你之前沒有了解過ZooKeeper穴豫,那現(xiàn)在是個(gè)好時(shí)候凡简。HBase使用ZooKeeper作為它的分布式協(xié)調(diào)服務(wù),用于選舉Master等精肃。隨著HBase的發(fā)展秤涩,ZooKeeper發(fā)揮的作用越來越重要。另外司抱,你需要搭建合適的網(wǎng)絡(luò)基礎(chǔ)設(shè)施筐眷,如NTP和DNS。HBase要求集群內(nèi)的所有服務(wù)器時(shí)間一致状植,并且能正確地訪問其它服務(wù)器浊竟。正確配置NTP和DNS可以杜絕一些奇怪的問題怨喘,如服務(wù)器A認(rèn)為當(dāng)前是明天,B認(rèn)為當(dāng)前是昨天振定;再如Master要求服務(wù)器C開啟新的Region必怜,而C不知道自己的機(jī)器名,從而無法響應(yīng)后频。NTP和DNS服務(wù)器可以讓你減少很多麻煩梳庆。
我前面提到過,在考慮是否使用HBase時(shí)卑惜,需要針對(duì)你自己的應(yīng)用場景來進(jìn)行判別膏执。而在真正使用HBase時(shí),監(jiān)控則成了第一要?jiǎng)?wù)露久。和大多數(shù)分布式服務(wù)一樣更米,HBase服務(wù)器宕機(jī)會(huì)有多米諾骨牌效應(yīng)。如果一臺(tái)服務(wù)器因內(nèi)存不足開始swap數(shù)據(jù)毫痕,它會(huì)失去和Master的聯(lián)系征峦,這時(shí)Master會(huì)命令其他服務(wù)器接過這部分請(qǐng)求,可能會(huì)導(dǎo)致第二臺(tái)服務(wù)器也發(fā)生宕機(jī)消请。所以栏笆,你需要密切監(jiān)控服務(wù)器的CPU、I/O以及網(wǎng)絡(luò)延遲臊泰,確保每臺(tái)HBase服務(wù)器都在良好地工作蛉加。監(jiān)控對(duì)于維護(hù)HBase集群的健康至關(guān)重要。
HBase架構(gòu)最佳實(shí)踐
當(dāng)你找到了適用場景缸逃,并搭建起一個(gè)健康的HBase集群后针饥,我們來看一些使用過程中的最佳實(shí)踐。鍵的前綴要有良好的分布性需频。如果你使用時(shí)間戳或其他類似的遞增量作為前綴打厘,那就會(huì)讓單個(gè)Region承載所有請(qǐng)求,而不是分布到各個(gè)Region上贺辰。此外,你需要根據(jù)Memstore和內(nèi)存的大小來控制Region的數(shù)量嵌施。RegionServer的JVM堆內(nèi)存應(yīng)該控制在12G以內(nèi)饲化,從而避免過長的GC停頓。舉個(gè)例子吗伤,在一臺(tái)內(nèi)存為36G的服務(wù)器上部署RegionServer吃靠,同時(shí)還運(yùn)行著DataNode,那大約可以提供100個(gè)48M大小的Region足淆。這樣的配置對(duì)HDFS巢块、HBase礁阁、以及Linux本身的文件緩存都是有利的。
其他一些設(shè)置包括禁用自動(dòng)合并機(jī)制(默認(rèn)的合并操作會(huì)在HBase啟動(dòng)后每隔24小時(shí)進(jìn)行)族奢,改為手動(dòng)的方式在低峰期間執(zhí)行姥闭。你還應(yīng)該配置數(shù)據(jù)文件壓縮(如LZO),并將正確的配置文件加入HBase的CLASSPATH中越走。
非適用場景
上文講述了HBase的適用場景和最佳實(shí)踐棚品,以下則是一些需要規(guī)避的問題。比如廊敌,不要期許HBase可以完全替代關(guān)系型數(shù)據(jù)庫——雖然它在許多方面都表現(xiàn)優(yōu)秀铜跑。它不支持SQL,也沒有優(yōu)化器骡澈,更不能支持跨越多條記錄的事務(wù)或關(guān)聯(lián)查詢锅纺。如果你用不到這些特性,那HBase將是你的不二選擇肋殴。
在復(fù)用HBase的服務(wù)器時(shí)有一些注意事項(xiàng)囤锉。如果你需要保證HBase的服務(wù)器質(zhì)量,同時(shí)又想在HBase上運(yùn)行批處理腳本(如使用Pig從HBase中獲取數(shù)據(jù)進(jìn)行處理)疼电,建議還是另搭一套集群嚼锄。HBase在處理大量順序I/O操作時(shí)(如MapReduce),其CPU和內(nèi)存資源將會(huì)十分緊張蔽豺。將這兩類應(yīng)用放置在同一集群上會(huì)造成不可預(yù)估的服務(wù)延遲区丑。此外,共享集群時(shí)還需要調(diào)低任務(wù)槽(task slot)的數(shù)量修陡,至少要留一半的CPU核數(shù)給HBase沧侥。密切關(guān)注內(nèi)存,因?yàn)橐坏┌l(fā)生swap魄鸦,HBase很可能會(huì)停止心跳宴杀,從而被集群判為無效,最終產(chǎn)生一系列宕機(jī)拾因。
總結(jié)
最后要提的一點(diǎn)是旺罢,在加載數(shù)據(jù)到HBase時(shí),應(yīng)該使用MapReduce+HFileOutputFormat來實(shí)現(xiàn)绢记。如果僅使用客戶端API扁达,不僅速度慢,也沒有充分利用HBase的分布式特性蠢熄。
用一句話概述跪解,HBase可以讓你用鍵來存儲(chǔ)和搜索數(shù)據(jù),且無需定義表結(jié)構(gòu)签孔。
使用案例
Apache HBase: Powered By HBase Wiki
Mozilla: Moving Socorro to HBase
Facebook: Facebook’s New Real-Time Messaging System: HBase
StumbleUpon: HBase at StumbleUpon

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末叉讥,一起剝皮案震驚了整個(gè)濱河市窘行,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌图仓,老刑警劉巖罐盔,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異透绩,居然都是意外死亡翘骂,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門帚豪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來碳竟,“玉大人,你說我怎么就攤上這事狸臣∮ㄎΓ” “怎么了?”我有些...
    開封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵烛亦,是天一觀的道長诈泼。 經(jīng)常有香客問我,道長煤禽,這世上最難降的妖魔是什么铐达? 我笑而不...
    開封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮檬果,結(jié)果婚禮上瓮孙,老公的妹妹穿的比我還像新娘。我一直安慰自己选脊,他們只是感情好杭抠,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著恳啥,像睡著了一般偏灿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钝的,一...
    開封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天翁垂,我揣著相機(jī)與錄音,去河邊找鬼硝桩。 笑死沮峡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的亿柑。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼棍弄,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼望薄!你這毒婦竟也來了疟游?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤痕支,失蹤者是張志新(化名)和其女友劉穎颁虐,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體卧须,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡另绩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了花嘶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片笋籽。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖椭员,靈堂內(nèi)的尸體忽然破棺而出车海,到底是詐尸還是另有隱情,我是刑警寧澤隘击,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布侍芝,位于F島的核電站,受9級(jí)特大地震影響埋同,放射性物質(zhì)發(fā)生泄漏州叠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一凶赁、第九天 我趴在偏房一處隱蔽的房頂上張望咧栗。 院中可真熱鬧,春花似錦哟冬、人聲如沸楼熄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽可岂。三九已至,卻和暖如春翰灾,著一層夾襖步出監(jiān)牢的瞬間缕粹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來泰國打工纸淮, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留平斩,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓咽块,卻偏偏與公主長得像绘面,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

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

  • 最近在逐步跟進(jìn)Hbase的相關(guān)工作揭璃,由于之前對(duì)Hbase并不怎么了解晚凿,因此系統(tǒng)地學(xué)習(xí)了下Hbase,為了加深對(duì)Hb...
    飛鴻無痕閱讀 50,257評(píng)論 19 272
  • HBase那些事 @(大數(shù)據(jù)工程學(xué)院)[HBase, Hadoop, 優(yōu)化, HadoopChen, hbase]...
    分癡閱讀 3,948評(píng)論 3 17
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理瘦馍,服務(wù)發(fā)現(xiàn)歼秽,斷路器,智...
    卡卡羅2017閱讀 134,716評(píng)論 18 139
  • Hbase架構(gòu)與原理 HBase是一個(gè)分布式的情组、面向列的開源數(shù)據(jù)庫燥筷,該技術(shù)來源于 Fay Chang所撰寫的Goo...
    全能程序猿閱讀 86,299評(píng)論 2 37
  • 初次接觸HBase的讀者,建議先閱讀淺析HBase:為高效的可擴(kuò)展大規(guī)模分布式系統(tǒng)而生 HBase的構(gòu)成 物理上來...
    耀凱考前突擊大師閱讀 5,257評(píng)論 0 12