2018年4月30日HBase發(fā)布了2.0的Release版本。HBase的2.0版本承載了太多的Features,共包含4551個(gè)Issues,可以說是迄今最大的一個(gè)版本。
HBase2.0做了那么多的改動(dòng),總有一些新特性值得我們?nèi)リP(guān)注。這里做一個(gè)簡(jiǎn)單的介紹,后續(xù)會(huì)對(duì)某些特性做詳細(xì)的介紹。
A new Region assignment manager
AssignmentManager V2("AMv2")基于Procedure V2實(shí)現(xiàn),能夠更快速的分配Region,維護(hù)的region狀態(tài)機(jī)存儲(chǔ)不再依賴于ZooKeeper,能夠更好的應(yīng)對(duì)Region長(zhǎng)時(shí)間RIT問題。
Offheaping of Read/Write
減少對(duì)Heap內(nèi)存的使用,改用Offheap區(qū)的內(nèi)存,有效減少GC壓力
In-Memory Compaction
重新設(shè)計(jì)了CompactingMemStore 替代 DefaultMemStore,CompactingMemStore中的數(shù)據(jù)達(dá)到一定大小以后,不是直接Flush成HDFS中的HFile文件,而是先Flush到內(nèi)存中的一個(gè)不可改寫的Segment,這樣,內(nèi)存中的多個(gè)Segments可以預(yù)先合并,當(dāng)達(dá)到一定的大小以后,才Flush成HDFS中的HFile文件,這樣做的好處是希望有效降低Compaction所帶來的寫IO放大問題。
NettyRpcServer
HBase2.0 開始默認(rèn)使用NettyRpcServer
使用Netty替代HBase原生的RPC server,大大提升了HBaseRPC的吞吐能力,降低了延遲
Async RPC Client
HBase2.0 Client不在是原來同步等待,而是利用異步RPC機(jī)制,大大提高Client端請(qǐng)求并發(fā)度,有效提高資源利用率,擴(kuò)大吞吐。
RegionServer Group
在HBase 2.0中我們可以將RegionServer劃分到多個(gè)邏輯Group中,這樣可以提供多租戶的能力。
Support for MOB
MOB特性使得HBase支持存儲(chǔ)小于10MB 的中等媒體對(duì)象數(shù)據(jù),這些小對(duì)象文件采用獨(dú)立的HFile文件進(jìn)行存儲(chǔ),相比原來直接存儲(chǔ)大對(duì)象插入hbase,其讀寫效率更高;Mob數(shù)據(jù)存儲(chǔ)還是以hfile格式存儲(chǔ),兼容HBase現(xiàn)有特性,如snapshot、bulkload、replication等。MOB數(shù)據(jù)文件有獨(dú)立的compaction和expire clean機(jī)制,穩(wěn)定性更可控。
與1.x版本的兼容性
1.x版本的Client可以訪問2.0版本的集群,進(jìn)行正常的數(shù)據(jù)讀寫操作。但從1.x版本不停服務(wù)的情況下滾動(dòng)升級(jí)到2.0版本是沒法做到的,1.x版本的coprocessor/Endpoint不做改動(dòng)的情況下也無法在2.0版本中正常使用。
引用:
期待已久的Apache HBase2.0已經(jīng)正式發(fā)布
在《HBase+SpringBoot實(shí)戰(zhàn)分布式文件存儲(chǔ)》課程中我們就提到了HBase的MOB,大家可以部署一下2.0版本的HBase提前感受一下。