日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HBase 3.0 可能的新特性

發布時間:2025/3/18 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HBase 3.0 可能的新特性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

其實,開源社區一直在反思為什么HBase 2.0經歷了那么長的時間還是沒有發布出來。社區也不希望在發布HBase 3.0版本的時候還是和發布HBase 2.0遇到同樣的情況。所以雖然目前主要的精力還是放在2.X版本,想要將其變得更加穩定,但是HBase 3.0也已經開始計劃了。本文的主要內容就是把HBase 3.0版本中可能的上線的feature先列出來,之后再出現對于其他新feature的需求如果來不及就不再往HBase 3.0里面放了,這也是為了讓HBase 3.0能夠盡快發布出來。

?

同步復制

第一個特性就是同步復制,這里指的是支持雙機房的強同步。之前HBase是無法跨機房進行部署的,基本上就是在同一個機房里面進行部署,多機房部署中間所造成的延遲可能無法承受。所以同步復制可以支持兩個機房之間的強同步,而原來的HBase 2.0是異步的,這個機房是主集群,另外一個是備用集群,兩者之間存在幾秒的延遲,一旦主機群發生宕機的話,那么備用集群的數據不一定是完整的,這個特性主要解決的就是讓備用集群起來變成主機群的時候與之前的主集群所確認過的數據是一致的,至于這些具體是如何實現的,可以參考阿里在HBaseCon Asia2017上的演講,阿里在內部做過一個版本,而HBase 3.0就是將這個特性做到社區里面去,在2018年的HBaseCon上也會進行詳細地講解。目前在社區中,在HBASE-19064上已經基本上可以使用同步復制了。綜上所述,同步復制這個特性在HBase 3.0中一定能夠出現。

?

CCSMap

CCSMap主要解決的就是GC問題,原來的HBase會把實際的數據放到2M的Chunk里面去,但是ConcurrentSkipList來做索引,那么讀取一個對象在哪就需要先去ConcurrentSkipList找一下并去Chunk里面讀取,這樣一來因為現在的機器內存都已經很大了可能達到128G內存,而MapStore也能達到幾十G,這樣一來每個Value都可能成千上萬甚至幾千萬個對象,這些對象都堆在ConcurrentSkipList里面,GC進行掃描則是非常耗費時間的。目前阿里的團隊已經在內部實現將索引放到Chunk里面,所有的數據都是encode到Chunk里面去的,這樣一來對象的數量能夠減少很多,GC的負擔也能大大減輕,這樣一來在Java堆上的東西就會很小了,可能就不需要那么多的調整GC參數的策略了。目前HBASE-20312也已經在做這件事情了。

?

備份&恢復

備份和恢復本來是在HBase 2.0版本要加進去的,但是后來去除掉了。這個就是比較強的一致性,其支持增量備份。目前冷備份就是打一個Snapshot然后考上去,考到另外一個異構的文件系統上去,然后過一段時間再打一個Snapshot再繼續拷貝。這樣實現的好處是比較簡單,不容易出問題。但是可能對于空間的浪費比較嚴重。而備份和增量特性則是在打完Snapshot之后通過Log一點點進行備份,這樣就不會有太多空間的浪費,這一部分目前的代碼質量不是特別好,因此在2.0版本沒有讓它上,而是否能夠在3.0版本中增加也不好確定,因為還需要進一步優化和測試。

?

讀路徑重構

讀路徑優化這個工作目前還沒有開始,但是已經有很多人提出過類似的問題了,就是HBase的讀路徑太過于復雜,發現有些優化的位置不太對,導致這部分的代碼比較亂,如果現在不再進行整理可能之后就沒有人敢去觸碰這部分代碼了。常見的一個優化就是在一個流上Seek,如果發現Seek的點離自己很近,那么就不需要重新Seek一遍把指針放到那里去,只需要直接往后讀取一段就可以了。現在的問題是雖然HBase也有這樣的優化,但是在開啟Scanner的時候,比如Filter需要跳過這一行會返回到Seek到下一行,但是到底是Seek到下一行還是Skip到下一行將會視情況進行,如果距離很近就會Seek過去,如果距離很遠就會Skip過去。

?

這一層在實現的時候是在StoreFileScanner這一層實現的,這是比較頭疼的,因為StoreFileScanner是很多個StoreFile在Merge之后形成的,在這一層進行判斷的時候比較討厭的一點就是下面有好多個文件,所以判斷并不一定非常準確。更正常的是應該由StoreFileScanner決定要Seek到哪里,進而判斷要Seek到的位置有多遠,然后讓自己決定到底是Seek還是Skip。所以對于同一個StoreFileScanner而言,下面很多個StoreFile,有的需要Seek,有些需要Skip。在StoreFileScanner這一層決定使用pread還是stream read,熟悉HDFS的同學可能知道如果開啟HDFS的stream read,那么就會不停地發送數據,pread的好處就是往HDFS發送請求的時候會說從哪個位置開始讀取哪一段,當讀取完畢之后就不會再發了。pread的連接用完之后可以放回到連接庫中去,下次有人需要可以重用這個連接。如果使用stream read可能讀取出來少了4K數據,那么就不讀取了,那么這個連接也就廢掉了,只能關閉了。其實在HBase 1.X版本中Scan有一個參數是setSmall,如果不是用small就默認使用stream read,如果setSmall就是使用pread。目前HBase 2.0做了一個適配默認開始時都是想要使用pread,當發現讀取過長之后切換成stream read,但是其實這與上面存在同樣的問題,因為其也是在StoreScanner層做的,所以問題也很多,有一些文件pread流,有的則是用stream read流。

?

還有一個很嚴重的問題就是減少不必要的bytes比較,看過HBase源碼的人就會比較熟悉,特別是Filter里面需要切換了rowkey,這種情況下需要先比較一下,但是可能之前在其他地方已經比較過了,但是再需要比較的時候拿不到信息。其實這部分測試過,這樣的比較浪費了大量的CPU資源,對于性能的影響是比較大的。所以這部分需要想一些辦法盡量減少不必要的bytes比較,一個可能的辦法是向Scanner的Context里面放一些東西,之后從Context里面取數據,這樣在切換之后如果沒有比較過就比較一下,之后就存儲下來,就不需要比較了。還有一個問題就是保證每次讀完一個cell,RegionScanner都有機會退出,也就是保證heartbeat一定能生效,這個在HBase 1.X版本中已經上線了。這里heartbeat的意思就是可能設置了Filter很稀疏,可能很久都不能掃描到有用的數據返回給你,但是Client卻有Timeout,為了防止過了Timeout所以會返回沒有掃描到數據的提示信息,需要做這樣一個事情,所以一開始發現的最大問題就是Filter退不出來,一直在掃描,還來不及發送heartbeat就已經超時了。之前做過一件事情就是Filter可以跳出來,但是目前代碼里面還有一些問題就是讀取Excel還不能跳出來,這方面也需要進行改進,否則在真正實現的時候就會失效了。這部分是主要提出的問題,目前還沒有具體的工作還沒有開始實現。

?

寫路徑重構

目前一些團隊對于寫路徑優化上做了一些工作,看起來效果基本上還可以。基本上就是用Staged Event Driven的架構實現,這里的寫路徑相比于讀路徑要簡單很多,這是因為讀路徑最主要的具有Filter,這就導致了讀路徑的邏輯會復雜很多。而寫路徑則比較清晰了,先寫出readlog,成功之后更新memstore并在最后complete mvcc就完成了。這樣的改造使得需要的線程數會更少一些,而之前就是一個線程從頭跑到尾,寫readlog時如果沒有寫過來,就會一直在這里堵著等待,之后的更新memstore并在最后complete mvcc也會堵在這里等,所以線程很多時間都是什么事情都沒干的,改成Staged之后線程需要的就會更少一些,性能就會更好一些。寫路徑比讀路徑更加清晰和簡單,但是寫路徑需要注意的一點就是絕對不能出現Bug,讀路徑出現Bug可能只是數據讀不到,但是如果寫路徑出現Bug寫入的數據就丟到了。

?

其他Feature

其實還有一些其他的Feature本在也在HBase 2.0版本中計劃上線,但是因為HBase 2.0版本計劃了太多的新特性,因此不得不將這些特性拿出去,不然就更加發布不出來了。這些特性其一是C++ Client,這個基本上有一個可用的版本了,但是還需要后續的測試包裝等步驟。其二是HLC,Google是使用原子鐘在所有機器上面做了一套硬件,所以拿到的是時鐘誤區基本差不多,時間誤差允許范圍內。而HLC是在沒有這樣的硬件條件下,依靠NCP實現各個機器之間的時間同步,HBase是想把Timestrap類似的東西用HLC實現。還有一個是Spark的Connecter,這個可以幫助Spark實現一些計算的下推,這部分在Master分支中也是有的,只不過因為沒有完成所以沒有出現在HBase 2.0版本中。但是這些特性并不一定都能夠在HBase 3.0中上線。

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的HBase 3.0 可能的新特性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产极品在线观看 | 国产高清在线不卡 | 日韩国产精品久久 | 国产视频一区二区三区在线播放 | 一区二区久久精品66国产精品 | 日本久草视频 | 国产极品一区二区 | 欧美视频在线观看一区 | 婷婷在线视频 | 插插插91 | 97精品在线视频 | 最新在线黄色网址 | 亚洲精品一区二区二区 | 69国产成人精品二区 | 亚洲精品视频在线看 | 欧美一区二区三区在线视频 | 黄色在线a | 日本偷偷操 | 国产成人综合精品 | 淫羞阁av导航 | 任你操精品 | 美国一级片网站 | 麻豆国产一区二区三区四区 | 国产字幕侵犯亲女 | 91色精品 | gogo人体做爰大胆视频 | 国产a不卡 | 人人入人人 | 午夜激情网站 | 黑人操亚洲女人 | 午夜成人免费视频 | 欧美午夜精品一区 | 欧美美女一区二区三区 | 国产网站久久 | 精品电影一区二区 | 少妇免费直播 | 日韩的一区二区 | 中文字幕乱码一区 | 捆绑无遮挡打光屁股调教女仆 | a级网站在线观看 | 欧美色图影院 | 久久久精品人妻一区二区三区四 | 亚洲精品免费在线观看 | 国产女女做受ⅹxx高潮 | 日本九九热 | 亚洲av无码一区二区三区在线播放 | 九七伦理电影 | 热99这里只有精品 | 午夜在线看片 | 成人综合在线视频 | 午夜丰满寂寞少妇精品 | 国内自拍99 | 日韩色图片 | 国产91小视频 | 97色伦97色伦国产欧美空 | 性xxxx狂欢老少配o | 99精品在线看 | 看黄色一级视频 | 国产又黄又嫩又滑又白 | 免费特级黄色片 | 亚洲成人91 | 日本不卡一| 日韩精品一级 | 男人私人影院 | 国产 日韩 欧美 精品 | 黄色avv| 欧美午夜小视频 | cao在线视频 | 国产91在线高潮白浆在线观看 | 香蕉污视频在线观看 | 98精品国产| 色婷婷五| 国产一级爽片 | jizzjizz亚洲| 欧美性猛交xxxx免费看 | 欧美在线 | 亚洲 | 日本欧美三级 | 久久精品国产欧美亚洲人人爽 | 欧美午夜精品一区二区三区 | 成人av电影天堂 | 丝袜人妖 | 夜色在线视频 | 99视频在线播放 | 午夜精品久久久久久久99热浪潮 | 国产亚洲欧美一区二区三区 | 麻豆精品国产传媒 | 国产免费av片在线 | 国产av不卡一区二区 | 成年人午夜影院 | 在线播放不卡 | 国产精品黄色网 | 免费观看的毛片 | 久久精品2019中文字幕 | 午夜免费高清视频 | 国产91热爆ts人妖系列 | 日韩精品一区二区三区不卡 | 女生的胸无遮挡 | 亚洲高清精品视频 | 国产精品久久久av |