HBase版本進化史及大版本特性


HBase 2.0 新特性介紹

2018年4月30日HBase發布了2.0的Release版本。HBase的2.0版本承載了太多的Features,共包含4551個Issues,可以說是迄今最大的一個版本。

  • A new Region assignment manager

AssignmentManager V2("AMv2")基於Procedure V2實現,能夠更快速的分配Region,維護的region狀態機存儲不再依賴於ZooKeeper,能夠更好的應對Region長時間RIT問題。

  • Offheaping of Read/Write

減少對Heap內存的使用,改用Offheap區的內存,有效減少GC壓力

  • In-Memory Compaction

重新設計了CompactingMemStore 替代 DefaultMemStore,CompactingMemStore中的數據達到一定大小以后,不是直接Flush成HDFS中的HFile文件,而是先Flush到內存中的一個不可改寫的Segment,這樣,內存中的多個Segments可以預先合並,當達到一定的大小以后,才Flush成HDFS中的HFile文件,這樣做的好處是希望有效降低Compaction所帶來的寫IO放大問題。

  • NettyRpcServer

HBase2.0 開始默認使用NettyRpcServer
使用Netty替代HBase原生的RPC server,大大提升了HBaseRPC的吞吐能力,降低了延遲

  • Async RPC Client

HBase2.0 Client不在是原來同步等待,而是利用異步RPC機制,大大提高Client端請求並發度,有效提高資源利用率,擴大吞吐。

  • RegionServer Group

在HBase 2.0中我們可以將RegionServer划分到多個邏輯Group中,這樣可以提供多租戶的能力。

  • Support for MOB

MOB特性使得HBase支持存儲小於10MB 的中等媒體對象數據,這些小對象文件采用獨立的HFile文件進行存儲,相比原來直接存儲大對象插入hbase,其讀寫效率更高;Mob數據存儲還是以hfile格式存儲,兼容HBase現有特性,如snapshot、bulkload、replication等。MOB數據文件有獨立的compaction和expire clean機制,穩定性更可控。

  • 與1.x版本的兼容性

1.x版本的Client可以訪問2.0版本的集群,進行正常的數據讀寫操作。但從1.x版本不停服務的情況下滾動升級到2.0版本是沒法做到的,1.x版本的coprocessor/Endpoint不做改動的情況下也無法在2.0版本中正常使用。

HBase1.0 新特性介紹

  • API的變化,比如放棄了客戶端幾個重要的API:( HTableInterface, HTable,HBaseAdmin),建議程序升級到新的API,老的PAI會在2.X中刪除。
  • 不重啟regionserver的情況下讀取配置文件。
  • master節點也運行regionserver。master與regionserver共享RPC端口。
  • global memstore和block cache大小的自動調整。
  • Bucket cache改進(data blocks的可用性和壓縮方面)
  • 集群中一個新的可插拔式的終端來復制成自定義存儲。(A new pluggable replication endpoint to plug in to HBase's inter-cluster replication to replicate to a custom data store)
  • 新增truncate table 命令
  • 新增meta table來替代zk來進行更快的region分配(此功能默認是關閉都)
  • 廣泛的文檔改進
  • [HBASE-12511] - namespace permissions - add support from table creation privilege in a namespace 'C'
  • 位Thrift Server添加Thrift-over-HTTPS 和 doAs支持(?)
  • bulkload復制表
  • 使用前綴設置一個行的開始和結束更加easy了。
  • 腳本停止regionserver使用RPC
  • 客戶端的原子性檢查和變化的支持。
  • 自動增加heap size的值如果開始沒有指定大小的話。
  • regionserver協處理器終端。
  • 添加了在一個regionserver上壓縮所有region的命令。
  • 添加LongComparator過濾器
  • [shell]在線加載配置文件的改變。
  • REST server的一些修復。
  • 需要zk3.4.X的支持。
  • 需要hadoop2.x的支持
  • jdk1.7,不再支持1.6
  • 默認的端口號已經由600xx改成了160XX
  • 默認使用hfile version3
  • Slab cache已經被移除,使用bucket cache
  • 默認的regionserver堆內存由1G改為jdk默認的數值,一般為物理內存的四分之一。
  • mapred包和類已經被廢除。
  • 加入兩個新的模塊:hbase-annotations 和 hbase-rest

HBase 0.98 新特性介紹

HBase 0.98新版本中包含了一些新的安全特性

  • cell可見性標簽
  • cell ACL以及透明化的服務器端加密等
  • 預寫日志線程模型在高負載情況下可提供了更高的吞吐量
  • 反向掃描器
  • 快照文件MapReduce
  • Stripe Compaction

HBase版本進化史

2006年至今,HBase經歷了10多年的演化迭代:

  • 2006年12月,Google發布了論文《Bigtable: A Distributed Storage System for Structured Data》,基於該文論的設計思想,HBase原型實現后來才得以誕生。
  • 2007年02月,作為Hadoop項目的分支,第一版HBase誕生。
  • 2007年10月,第一個可用的HBase版(Hadoop0.15.0)誕生。
  • 2008年01月,Hadoop成為Apache的頂級項目,HBase為其子項目。
  • 2008年10月,HBase 0.18.0版本發布。
  • 2009年01月,HBase 0.19.0版本發布。
  • 2009年10月,HBase 0.20.0版本發布。
  • 2010年05月,HBase晉升為Apache的頂級項目。
  • 2010年06月,HBase 首個開發者版本(0.89.20100621)發布。
  • 2011年01月,Hbase 首個可持續的,穩定版(0.90.0)版本發布。
  • 2012年01月,Hbase 0.92.0版本發布,支持事物(coprocessor)和安全(security)作為其版本標簽。
  • 2012年05月,HBase 0.94.0版本發布,性能作為其版本標簽。
  • 2013年01月,HBase 0.96.0版本發布。
  • 2014年02月,0.98.0版本發布,該版本也是很多國內公司最早使用的版本。
  • 2015年02月,HBase 1.0.0版本發布。
  • 2016年02月,HBase 1.2.0版本發布。
  • 2017年05月,HBase 1.2.6版本發布,作為其1.2版本的穩定版標簽。
  • 2018年04月,HBase 期待已久的2.0.0版本正式發布。
  • 2018年06月,Hbase Hbase2.0.1版本發布。

HBase0.98.0、HBase1.2.6版本、HBase1.4+版本是目前很多互聯網公司主流版本,系統穩定性、可靠性等都經受了很多考驗。另外,對於想緊跟社區步伐,體驗新功能的同學,可以使用最新的2.0版本。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM