我是Hbase.Hbase的新手,對隨機更新(放入或刪除)表格很有用,但無法理解hbase如何執行該操作。由於hbase使用HDFS作爲其存儲,並且不可能更新HDFS中的任何內容。 Hbase使用memstore來更新記錄並首先將任何編輯寫入memstore.So MemStore包含任意數量的已更新行,按已排序的鍵順序排列。當它將數據轉儲到磁盤到hfile時,是否將此hfile全局排序hfiles。hbase隨機寫入工作原理
轉儲所有hfile後,hfile被複制到HDFS.Same問題的WAL編輯日誌.WAL日誌文件也被複制到HDFS或不是。對於每一個更新,我們將更新複製到HDFS。
感謝answer.this博客解釋了所有... 但是對序列文件有更多疑問....序列文件中的每個追加都會被複制到所有塊。 – 2014-12-05 09:22:20
這是HDFS的一部分。 HDFS正在進行與HBase類似的工作。您使用OutputStream編寫數據。數據被緩衝到塊大小,然後一旦塊達到該大小就被複制到N臺機器。或多或少是它是如何工作的,你必須認爲一切都是不變的,所以你沒有「記錄」的概念,當你在內存中添加一些東西時,當它達到一個閾值時,數據被合併(在塊),然後複製。 – th30z 2014-12-05 09:58:11
非常感謝..這個問題讓我頭腦發熱了整整一天.. 從更多的閱讀中我得到了與所有區域共享寫入wal的相同的HLog實例。我認爲wal實例(fsOutputStream)在任何寫入之間都沒有關閉。 – 2014-12-05 10:18:41