日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

導讀:Apache HBase(Hadoop Database),是一個基于google BigTable論文設計的高可靠性、高性能、可伸縮的分布式存儲系統。全文將圍繞以下幾個方面展開:

  • HBase是什么
  • HBase社區的發展
  • HBase2.0
  • HBase未來規劃
  • 如何成為Committer

01

HBase是什么

 

HBase(Hadoop Database),是一個基于Google BigTable論文設計的高可靠性、高性能、可伸縮的分布式存儲系統。

它有以下特征:

  • HBase仍然是采用行存儲的,采用松散表的結構來獲得動態列的功能;
  • 原生海量數據分布式存儲。在單個數據庫中可以存檔GB甚至上pb。在一行中也可以存儲上百萬列。任何大小的數據量都適合采用HBase;
  • 不僅支持隨機查詢,還支持范圍查詢;
  • 高吞吐,低延遲。一個集群可以有上千萬個dps,平均的延遲可以做到一毫秒之內;
  • 在線NOSQL數據庫;
  • 多版本,增量導入,多維刪除。

 

分布式存儲系統Apache HBase的現狀和發展

 

1.HBase的四大基因

(1)自動分區

最開始的時候,我們的數據庫是單機的數據庫。慢慢的我們發現單機的數據庫無法承受數據和訪問的爆發式增長。因此就出現了分庫分表的方案。將數據庫和表拆分到多個服務器上,然后利用中間件作為一個路由。這里就會遇到一個問題,隨著數據的增加,中間件就會成為一個瓶頸。如果請求量爆發式增長的時候,要加載新的進去,整個物理的變化需要進行搬遷之后才能夠進行使用。

而在HBase中,使用的是自動分區功能。當訪問量和請求量增加的時候它可以自動的進行數據分片,以應對數據和請求的爆發式增長。

分布式存儲系統Apache HBase的現狀和發展

 

(2) LSM-Tree

LSM(Log Structured Merge)Tree,它的一個重要的功能就是隨機寫變成順序寫。

現在LSM模型是大數據庫的標配。它主要包括如下幾個特點:

  • 寫吞吐量高
  • 不受hdd隨機寫瓶頸和ssd隨機寫入放大干擾
  • 超強數據導入能力

 

分布式存儲系統Apache HBase的現狀和發展

 

(3)存儲計算分離

HBase本身不會存任何數據。數據都是存儲在底層的HDFS中。存儲計算分離有以下好處:負載均衡更高效、資源擴容更節省、存儲優化更便捷。

分布式存儲系統Apache HBase的現狀和發展

 

(4)HBase生態

HBase有一個非常強大的朋友圈。具體見下:

分布式存儲系統Apache HBase的現狀和發展

 

2.場景

HBase是幾乎可以滿足所有的大數據場景需求。比如說對象存儲,比如說推薦系統。比如說用來存儲訂單,用來存儲聊天記錄。高性能推送的朋友圈應用的場景。針對一些其他的場景,我們可以利用HBase加上組件能力來實現這些場景的應用。比如說HBase加linux,來實現NEWSQL的數據庫。比如說HBase加上geomesa來實現時空數據的存儲,滴滴就是采用這種方案來存儲他們的軌跡數據。在物聯網場景,可以采用HBase加openjsdb來存儲海量的時序數據。

分布式存儲系統Apache HBase的現狀和發展

 

3.使用HBase的商業公司

基本上每一個大型的公司都在使用HBase。

分布式存儲系統Apache HBase的現狀和發展

 

4.HBase特性總結

HBase,為大數據而生,有LSM樹:離線導入效率巨高 、實時寫入吞吐大、增量導入隔離性強;伸縮性強;TTL:數據時效性,系統自動處理、時效性的個性化設置;多版本:數據的第三維度、高效刪除方式;動態列:數據發散的利器;協處理器:數據校正、高效適應個性化;異構介質多副本存儲:海量與實時的性價比滿足;Erasure Code:因大而生。

分布式存儲系統Apache HBase的現狀和發展

 

--

02

HBase社區的發展

1.HBase的起源

HBase于2006年誕生于Powerset,一家從事自然語言處理和搜索的創業公司(后被微軟收購)

HBase的實現基于Google發布的BigTable論文,用來解決 Hadoop中隨機讀寫效率低下的問題。HBase最初的開發人員是MichaelStack和JimKellerman。2007年4月,HBase做為一個模塊提交到Hadoop的代碼庫中,代碼量~8000行,2010年5月HBase成為Apache的頂級項目,同年,Facebook把HBase使用在其消息平臺中。

2.HBase項目現狀

目前HBase的代碼已經超過100萬行,HBase仍然是最活躍的Apache項目之一,擁有76個Committer,42位PMC,共有328位Contributor,其中14位 Committer/PMC 來自中國。

分布式存儲系統Apache HBase的現狀和發展

 

3.HBase目前版本

HBase目前版本眾多。見下圖:

分布式存儲系統Apache HBase的現狀和發展

 

--

03

HBase2.0

1. HBase2.0版本發布歷史

HBase2.0的發布是一部血淚史,因為在四年前已經有這個版本了,由于一些因素,造成了沒有人管理。最后花了一年多的時間才穩定他的版本發布出來,他的Release Manger多次更換,才把他發布出來。由此,我們吸取了這次教訓,我們以后會做好版本控制,把控好發布的節奏。

分布式存儲系統Apache HBase的現狀和發展

 

2. 新功能

(1)Region Replica

Region Replica這個功能在1.2版本中已經存在,但是為什么叫做新功能呢?是因為之后修改了很多bug,在1.4版本才穩定下來,然后1.4和2.0是同時發布的。在CAP理論中,HBase一直是一個CP系統,遵循強一致的讀寫語義,所以Server宕機后需要一定的恢復時間,如果宕機了,客戶端可以從另外的副本中去讀取數據,Region Replica為數據分片Region準備了多個副本,host在不同的RegionServer上,同時,客戶端也可以做到,對多個副本同時發請求,然后做到選擇最快速的那個副本,提供高可用讀,宕機0影響,規避抖動,毛刺,降低P999延遲;缺點是需要額外耗費CPU/Memory資源,但不會占用額外空間。

分布式存儲系統Apache HBase的現狀和發展

 

(2)讀寫鏈路Off-heap

第二個新功能是全鏈路Off-heap,意思就是讀寫鏈路數據端到端Off-heap,減少JAVA GC帶來的停頓,進一步降低P999延遲,提高吞吐。這個功能我們從兩方面來實現的:寫鏈路Off-heap,我們使用在RPC層使?.NETty的Off-heap ByteBuffer,使用支持Off-heap的Protobuf。同時使用Off-heap的Chunk 來存儲Memstore中的KeyValue。

在讀鏈路Off-heap方面,使用Off-heap的Bucket Cache,HBase自己管理內存的,我們從Bucket Cache讀取數據的時候,先要從Protobuf做一次拷貝,因為可能讀取的時候,發生內存不夠了,再次分配的情況。在讀取對Bucket Cache進行引用計數,保證讀取的時候,內存不會被回收掉,讀取時不再需要先拷貝到heap,對Bucket Cache進行了一系列性能優化。

分布式存儲系統Apache HBase的現狀和發展

 

后面這是HBase官方放著阿里巴巴在雙十一對HBase優化之后的對比圖,可以看到優化之后他的請求的曲線更加平穩,吞吐量增長了30%,這個案例大家可以去HBase的官方去看一下。

分布式存儲系統Apache HBase的現狀和發展

 

(3)In Memory Compaction

在HBase2.0中另外一個重磅的功能就是In Memory Compaction,以前我們知道HBase中使用的數據結構是java中原生的跳表,但是跳表依然是一個松散的結構,這樣的話,雖然內存不斷的在增大,但是刷到之后,會造成通過In memory的flush不會到hdfs上,反而回轉到更加緊湊的CellArrayMap這個結構,同時多個CellArrayMap會在內存中做compaction,使內存的使用更加緊湊。然后通過In memory的flush和compaction,在內存中可以存儲更多的數據,因此可以提高讀性能,同時減少磁盤IO,減輕compaction小文件造成的寫放大。這個功能社區也有介紹。

分布式存儲系統Apache HBase的現狀和發展

 

(4)小對象存儲MOB

之前我們建議在HBase上不要存很大的KV值,但是MOB(Moderate Object Storage) 功能使HBase能高效地存儲那些100k~10M 中等大小的對象。這使得用戶可以把文檔、圖片對象保存到HBase系統中,用戶寫入的小對象flush成一個獨立文件,原有的KV中的value只存這個對象的引用路徑,對于存儲對象文件,更少地進行compaction來減少寫入放大效應。

分布式存儲系統Apache HBase的現狀和發展

 

(5)Assignment MangerV2

這是一個非常重要的模塊,HBase中的狀態流轉,建表刪表,都需要在Assignment MangerV2上進行,之前舊AM系統參與角色多,狀態更新混亂,效率低,無事務保證,容易出現RIT問題。所以AM V2使用ProcedureV2來保證 Table/Region狀態轉換在master重啟后仍然能恢復執行,然后去除了Zookeeper做為中間角色,Master/RegionServer直接交互,Region assign/unassgin速度大大提升。

分布式存儲系統Apache HBase的現狀和發展

 

(6)其他

在HBase2.0中,還有非常多的新功能,具體如下:

分布式存儲系統Apache HBase的現狀和發展

 

3.兼容性和升級建議

建議如下:

分布式存儲系統Apache HBase的現狀和發展

 

--

04

HBase未來規劃

1. HBaseConAsia & 開發者圓桌會議

HBase眾多開發者也會參加這個會議,參與討論它的未來發展方向。

2. 更加易用

HBase已經提供了,Java的API,但是這個案例不太友好,我們目前打算提供Native的SQL接口,能夠做到輕量級的SQL支持、內置的二級索引方案、與Spark SQL更好地結合等功能。

分布式存儲系統Apache HBase的現狀和發展

 

3. 更高性能

在以后的版本中,不用在對HBase的性能擔心了,我們在以后的版本中準備從Use CCSMap to improve HBase YGC tim、全鏈路異步化、基于非易失存儲的WALLess方案等方面努力成為LSM模型下性能最好的Java存儲引擎。

分布式存儲系統Apache HBase的現狀和發展

 

4.更強擴展性和穩定性

這個方面我們以下幾個方面來解決:

分布式存儲系統Apache HBase的現狀和發展

 

--

05

如何成為Committer

分布式存儲系統Apache HBase的現狀和發展

 


分布式存儲系統Apache HBase的現狀和發展

 


分布式存儲系統Apache HBase的現狀和發展

 


分布式存儲系統Apache HBase的現狀和發展

 

今天的分享就到這里,謝謝大家。

分享到:
標簽:Apache HBase
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定