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

HBase 2.0 新特性介紹

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

  • A new Region assignment manager

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

  • 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中,這樣能夠提供多租戶的能力。oop

  • 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新版本中包含了一些新的安全特性spa

  • 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版本。

相關文章
相關標籤/搜索