1
我知道hbase從來沒有真正刪除記錄,它只是設置了一個墓碑標記。 但是如果數據量越來越大,並且某天您想要通過在某些選定行上進行硬刪除(實際刪除)來減小大小,該怎麼辦?有沒有辦法在HBase上進行硬刪除(真正的刪除)?
我知道hbase從來沒有真正刪除記錄,它只是設置了一個墓碑標記。 但是如果數據量越來越大,並且某天您想要通過在某些選定行上進行硬刪除(實際刪除)來減小大小,該怎麼辦?有沒有辦法在HBase上進行硬刪除(真正的刪除)?
刪除標記和刪除的單元格在主要壓縮過程中被刪除。小型壓實僅將小型HFile合併爲更大型。您可以使用下面的命令來手動觸發重大壓實:
major_compact "table name"
壓實(主要和次要)是一個在線操作。不需要維護窗口來執行壓縮。
請記住,重大壓縮可能需要很長時間,因爲它會重組所有HFile。爲避免負載較重的系統對性能造成負面影響,您可以考慮在高峯時段以外安排壓縮。
重大壓縮也會自動發生(默認情況下每7天)。計劃的主要壓縮的頻率通過hbase.hregion.majorcompaction
參數進行控制。
輕微壓實也可能升級爲重大壓實。
欲瞭解更多詳情,我建議優秀HBase Reference Guide。
嗨伊萬,謝謝你的回答!重大壓縮需要關閉還是重新啓動?它在任何生產主機上都可行嗎? – Olivia
這是一個在線操作。不需要重新啓動或關閉(通常)。壓縮過程中發生的寫入被存儲在memstore中。 –