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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

HBase——强一致性详解

發布時間:2023/12/31 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HBase——强一致性详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Hbase是一個強一致性數據庫,不是“最終一致性”數據庫,官網給出的介紹:

“Strongly consistent reads/writes: HBase is not an "eventually consistent" DataStore. This makes it very suitable for tasks such as high-speed counter aggregation.”

這里要先提一下分布式系統的CAP原理:
Consistency(一致性), 數據一致更新,所有數據變動都是同步的
Availability(可用性), 好的響應性能
Partition tolerance(分區容錯性) 可靠性

定理:任何分布式系統只可同時滿足二點,沒法三者兼顧。
忠告:架構師不要將精力浪費在如何設計能滿足三者的完美分布式系統,而是應該進行取舍。

1.首先來理解下一致性

對于一致性,可以分為從客戶端和服務端兩個不同的視角。

客戶端來看,一致性主要指的是多并發訪問時更新過的數據如何獲取的問題。從服務端來看,則是更新如何復制分布到整個系統,以保證數據最終一致。一致性是因為有并發讀寫才有的問題,因此在理解一致性的問題時,一定要注意結合考慮并發讀寫的場景。

從客戶端角度,多進程并發訪問時,更新過的數據在不同進程如何獲取的不同策略,決定了不同的一致性。對于關系型數據庫,要求更新過的數據能被后續的訪問都能看到,這是強一致性。如果能容忍后續的部分或者全部訪問不到,則是弱一致性。如果經過一段時間后要求能訪問到更新后的數據,則是最終一致性

服務端角度,如何盡快將更新后的數據分布到整個系統,降低達到最終一致性的時間窗口,是提高系統的可用度和用戶體驗非常重要的方面。對于分布式數據系統:

  • N — 數據復制的份數?
  • W — 更新數據時需要保證寫完成的節點數?
  • R — 讀取數據的時候需要讀取的節點數?

如果W+R>N,寫的節點和讀的節點重疊,則是強一致性。例如對于典型的一主一備同步復制的關系型數據庫,N=2,W=2,R=1,則不管讀的是主庫還是備庫的數據,都是一致的。

如果W+R<=N,則是弱一致性。例如對于一主一備異步復制的關系型數據庫,N=2,W=1,R=1,則如果讀的是備庫,就可能無法讀取主庫已經更新過的數據,所以是弱一致性。

對于分布式系統,為了保證高可用性,一般設置N>=3。不同的N,W,R組合,是在可用性和一致性之間取一個平衡,以適應不同的應用場景。

  • 如果N=W,R=1,任何一個寫節點失效,都會導致寫失敗,因此可用性會降低,但是由于數據分布的N個節點是同步寫入的,因此可以保證強一致性。?
  • 如果N=R,W=1,只需要一個節點寫入成功即可,寫性能和可用性都比較高。但是讀取其他節點的進程可能不能獲取更新后的數據,因此是弱一致性。這種情況下,如果W<(N+1)/2,并且寫入的節點不重疊的話,則會存在寫沖突 ?

2.HBase是強一致性系統?

Hbase具有以下特點

  • 每個值只出現在一個REGION
  • 同一時間一個Region只分配給一個Region服務器
  • 行內的mutation操作都是原子的(原子性操作是指:如果把一個事務可看作是一個程序,它要么完整的被執行,要么完全不執行)。
  • put操作要么成功,要么完全失敗。

聯系上文提到的一致性特點,可以得出HBase是強一致性系統的結論。

當某臺region server fail的時候,它管理的region failover到其他region server時,需要根據WAL log(Write-Ahead Logging)來redo(redolog,有一種日志文件叫做重做日志文件),這時候進行redo的region應該是unavailable的,所以hbase降低了可用性,提高了一致性。設想一下,如果redo的region能夠響應請求,那么可用性提高了,則必然返回不一致的數據(因為redo可能還沒完成),那么hbase就降低一致性來提高可用性了。

3.HBase的強一致性和HDFS的多副本

一開始非常迷惑于HBase的強一致性和HDFS的多副本是怎么協同的。

這一塊兒就需要對HBase和HDFS的讀寫數據流有個比較透徹的理解。

先假設HDFS的副本存儲策略,也就是dfs.replication的值為3(默認值就是3)

這樣所有存儲在HDFS上的文件都有3個副本。那么,HBase的存儲實例,也就是HFile也有3個副本。那么當某一個RegionServer崩潰時,并不用擔心數據的丟失,因為數據是存儲在HDFS上,哪怕崩潰的RegionServer所在的DataNode上有一個副本,在其他DataNode上也還有2個副本。

那么也許你要問,既然有3個副本,如何保證HBase的強一致性呢?

HFile是已經持久化在磁盤上了,而HFile是不能改變的(這個時候暫時把刪除數據這個操作放到一邊,相關內容請看下面的Note),一旦在某一個DataNode上生成一個HFile后就會異步更新到其他兩個DataNode上,這3個HFile是一模一樣的。

那也許你又要問,那我的數據是不斷更新當中啊!

更新的數據是放在Memstore,只有當Memstore里的數據達到閾值,或者時間達到閾值,就會flush到磁盤上,生成HFile,而一旦生成HFile就是不可改變的(compaction,split就是后話啦)。

這里再提一下WAL的一致性

WAL是Write-Ahead logging,這個是Memstore里的數據在RegionServer崩潰時得以恢復的保證。WAL的實現是HLog,HLog也是存儲在HDFS上的,所以HRegionServer崩潰了也不會導致HLog的丟失,它也有備份。

每一次更新都會調用寫日志的sync()方法,這個調用強迫寫入日志的更新都會被文件系統確認。

當前的sync()的實現是管道寫,也就是HDFS寫數據、生成副本的默認方式,這意味著當修改被寫入時,它會被發送到第一個DataNode進行存儲。一旦成功,第一個DataNode就會把修改發送到另一個DataNode來進行相同的工作。只有3個DataNode都已經確認了寫操作,客戶端才被允許繼續進行;

另一種存儲修改的方法是多路寫,也就是寫入被同時送到3臺機器上。當所有主機確認了寫操作后,客戶端才可以繼續。

兩種方法的優缺點:

管道寫需要時間去完成,所以它有很高的延遲,但是它能更好地利用網絡帶寬;多路寫有著比較低的延遲,因為客戶端只需要等待最慢的DataNode確認(假設其余都已成功確認)。但是寫入需要共享發送服務器的網絡帶寬,這對于有著很高負載的系統來說是一個瓶頸。

目前有正在進行的工作能讓HDFS支持上面兩種方式。

?

Note:當客戶端提交刪除操作的時候,數據不是真正的刪除,只是做了一個刪除標記(delete marker,又稱母被標記),表明給定航已經被傷處了,在檢索過程中,這些刪除標記掩蓋了實際值,客戶端讀不到實際值。直到發生compaction的時候數據才會真正被刪除。

?

參考文獻

【1】http://kabike.iteye.com/blog/2168852?utm_source=tuicool

【2】http://www.blogjava.net/hello-yun/archive/2012/04/27/376744.html

【3】《HBase權威指南》Lars George著

總結

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

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

主站蜘蛛池模板: 国产crm系统91在线 | 桃色视频 | 国产精品免费一区二区三区 | 对白刺激theporn | 五月婷中文字幕 | 可以免费看的黄色网址 | 六月丁香婷婷激情 | 亚洲一区二区三区av无码 | 免费在线看污视频 | 国产做爰高潮呻吟视频 | 污黄视频网站 | 久久亚洲av无码精品色午夜麻豆 | 第一色综合 | 国产视频观看 | 香蕉视频传媒 | 大地资源中文在线观看免费版 | 91精品一区二区三区在线观看 | 一区二区视频免费看 | 久久黄色免费视频 | 国产av日韩一区二区三区精品 | 第一av | 欧美成人精品欧美一级乱 | 日韩精品人妻中文字幕有码 | 欧美xxx视频 | 天天狠天天插 | 国产一页| 天堂中文资源在线 | av一区二区在线播放 | 中文字幕一区二区三区四区免费看 | 欧美九九视频 | 欧美图片一区 | 黄色录像一级大片 | 亚洲精品中文字幕乱码三区 | 北条麻妃一区二区三区四区五区 | 99艹 | 97精品人妻一区二区三区在线 | 国产精品sm调教免费专区 | 91草视频 | 91亚洲一线产区二线产区 | 久久97人妻无码一区二区三区 | 美女131爽爽爽 | 色综合久久久无码中文字幕波多 | 亚洲男人影院 | 久久久久久免费毛片精品 | 在线观看免费高清 | 成人无码精品1区2区3区免费看 | 99国产超薄肉色丝袜交足 | 处破痛哭a√18成年片免费 | 偷拍精品一区二区三区 | 一本大道av伊人久久综合 | 三级黄色免费网站 | 亚洲妇女av| 78日本xxxxxxxxx59| 国产成人无遮挡在线视频 | 亚洲乱熟女一区二区 | 91久久精品一区二区三 | 永久免费在线视频 | 激情区 | 一区二区精品久久 | 亚洲欧美国产精品专区久久 | 性巴克成人免费网站 | 男生和女生差差视频 | 樱花视频在线免费观看 | 国产精品久久久久久久久免费相片 | 欧美aa大片 | 波多野结衣一区二区三区高清av | 久久精品毛片 | 日韩美在线 | 中文字幕免费高清网站 | 日本黄色片免费看 | 成人自拍在线 | 日本在线不卡一区二区三区 | 亚洲成人第一页 | 肉感丰满的av演员 | 国产污视频| av网址免费在线观看 | 日本a一级 | www久久com| 91大片在线观看 | 污免费在线观看 | 911亚洲精品 | 成人免费片 | 亚洲天堂av一区 | 日韩一区二区视频在线播放 | 黄色一级国产 | 日韩精品在线电影 | 天天射视频 | 青青青视频在线 | 久久久久国产精品人妻 | 黄色av高清 | 国产黄色大片网站 | 一区二区三区四区高清视频 | 秒拍福利视频 | 欧美三级三级三级爽爽爽 | www.香蕉视频 | 日本一区不卡视频 | 日韩精品短片 | 丰满大乳国产精品 | 国模大尺度视频 |