[ 譯]Apache HBase Write Path

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   io   檔案   資料   

         翻譯自cloudera,原文直通車:Apache HBase Write Path

        Apache HBase也就是Hadoop Database是基於HDFS之上的.HBase可以隨機擷取和更新儲存在HDFS上的記錄。但是HDFS

上的檔案只能追加而且一旦建立便無法修改。說到這裡你或許會問:那HBase是怎麼做到在HDFS上低延遲的讀和寫呢?在這篇

文章裡,我們就會通過描述HBase的寫的流程來解釋資料在HBase中是如何更新的。

        寫流程描述就是HBase如何完成put或者delete操作。流程開始於client端,然後再到region server,最終結束於當資料寫入

到HFile為止。在這過程中還包括了HBase如何保證region server down掉的時候的資料的完整性(資料不丟失)。所以,理解這個

流程對於深刻理解HBase 如何防止資料丟失的機制是很有協助的。

        HBase中的表的管理涉及到如下三類server:

1.一個處理active狀態的master server2.一個或者多個backup master server3.很多region server

      Region server管理HBase中的table。因為HBase中的table會變得很大,所以他們會分裂成很多分區,這些分區我們稱為region。

每一次Region server會負責處理一個或者多個region的請求。注意:由於region server是唯一用來處理hbase的table資料的,因此

hbase master的crash並不會導致資料丟失

      HBase中的資料的組織方式類似於sorted map的組織方式,把排序後的row key分成不同的region。HBase的用戶端通過調用put

或者delete來更新hbase中的表。當用戶端發出一個請求,預設情況下該請求會立即被路由到region server。我們也可以通過編程的方式

指定讓client先緩衝這些命令,然後以批量的方式提交這個命令。可以通過制定autoflush為off狀態來實現批量提交。如果autoflush被

設定為了off,所有的更改都會被client端緩衝直到使用者調用flush-commits被調用,或者當buffer滿了的時候就會把全部命令批量提交。buffer

的設定是使用“hbase.client.write.buffer”參數來指定的。

     由於HBase的row-key是預排序的,所以可以很輕易的確定哪個region server管理哪些範圍內的row-key的記錄。一個更新要求是針對某一

特定的列。每個row-key都是歸屬於某個regoin的,regoin是在regoin server的管理中的。

 

未完待續。。。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.