我的Hbase在三臺機器上運行,一臺用於hmaster,另外兩臺用作regionServers,現在我想我必須做一些複製工作,因爲這是一個防止機器崩潰或斷電的生產環境。但是我閱讀一些Hbase文檔,並找不到任何方式來複制我的數據。我使用的唯一方法是設置hadoop複製,我設置hdfs-site.xml dfs.replicate = 1。 那麼是否有更好的方法來做Hbase的熱複製備份? 在此先感謝Hbase複製
Hbase複製
回答
在您的生產環境中,您需要數據的副本,以便在發生節點故障或羣集故障時,您的數據將保持安全。 如果我的理解是正確的,那麼你可以去你的數據節點
- 定期間隔備份到從集羣將從其 各自的區域服務器複製數據。更多相關信息,請here
的HBase使用HDFS來存儲數據,因此默認情況下你將不得不在HDFS爲您的數據複製(默認情況下,你將不得不在HDFS的3複製)。所以你不必擔心明確地複製。
HBase完全依賴HDFS複製。
所有數據都存在於HDFS而不是HBase(HBase內部存儲到HDFS)。 HBase只是這個數據的訪問機制。由於您設置了dfs.replication = 1,請定期嘗試進行datanode備份。
如果您擔心HBase中的區域服務器,那麼這些數據存在於Zookeeper中。即使你的Master/RS出現故障,它應該恢復到正常狀態。
如果您特別擔心區域,它們會被HBase作爲目錄表(ROOT,META)存儲。這些就像HDFS中的普通表一樣。
因此,請將社區建議的複製更改爲> 1(或默認爲3)。
您不需要Hbase的複製因子。如前所述,由於Hbase通過HDFS存儲數據,所以複製將由HDFS處理。如果RegionServer出現故障(在Hbase中)HMaster會將死區服務器處理的區域分配給健康的區域服務器,或者發生dataNode故障(在HDFS中),HMaster將從新數據節點(由NameNode提供)分配新數據塊,到一個健康且有效的區域服務器。
要知道有你的問題「複製」的兩個不同的含義:HDFS塊
複製。這裏
replication
表示「在不同的數據節點上保留塊的多個(redudant)副本」,這就是HDFS如何實現高可用性。您通過「dfs.replication」設置屬性告訴HDFS保留多少個副本。檢查「HDFS體系結構指南」中的Data replication部分。HBase集羣之間的複製。這裏
replication
表示「將此羣集的更新發送到另一個羣集,以便後者可用作備份」。它可以用作災難恢復解決方案,我猜是你想要的。您需要設置另一個hbase集羣(稱爲從屬集羣或備份集羣),配置複製。之後,當主集羣由於某種原因而關閉時,可以故障切換到備份集羣。請查看this cloudera blog post和this section of hbase book瞭解更多詳情。
Hbase表格以數據塊的形式存儲在HDFS中。 Hadoop分佈式文件系統(HDFS)使我們能夠決定哪些複製因子用於塊。理想情況下,它保持在3.這確保了任何給定時間3個相同數據的副本將出現在羣集的節點中,並且在任何節點發生故障的情況下,相同的數據將在別處可用以提供查詢。該屬性是hdfs-site.xml中的dfs.replication。 Hbase還允許我們將羣集狀態複製到另一個羣集。這就是將一個Hbase羣集中存在的整個數據複製到另一個羣集。這樣做的好處是管理災難恢復。
現在,關於複製有三個概念。
- hdfs圖層中的塊複製。
- hbase集羣之間的複製。
- 區域複製。
dfs.replication指的是第一個概念。它保證物理機器發生單一故障,您的數據是安全的。
如果dfs.replication = 1,datanode的單點故障(磁盤故障)可能導致數據塊損壞,從而導致數據丟失。
- 1. Hbase表複製
- 2. HBase的複製無法複製數據
- 3. 如何複製hbase數據
- 4. 如何將hbase表從hbase-0.94集羣複製到hbase-0.98集羣
- 5. Hbase是否具有區域複製
- 6. HBase:複製是如何工作的?
- 7. HDFS - HBase複製不起作用
- 8. 複製獨立的HBase 0.2部署
- 9. HBase:複製粘貼目錄的工作?
- 10. HBase中的恢復
- 11. 如何將手動複製的hbase文件集成到hbase實例中?
- 12. 恢復如何在HBase的
- 13. 更改Hbase大小限制
- 14. 如何在HBase中更改Column家族的複製
- 15. Hbase導出不會複製到本地文件系統
- 16. HBase在Java中複製一行(重命名行鍵)
- 17. 將數據從一個hbase表複製到另一個
- 18. 在Hbase中使用WAL進行恢復
- 19. Hbase如何處理重複記錄?
- 20. sqoop中的複合鍵--hbase-row-key
- 21. 如何修復Hbase的Zookeeper錯誤
- 22. 如何測試HBase中的恢復?
- 23. 使用異步HBase客戶端從HBase服務器故障恢復
- 24. 從HBase獲取二進制數據
- 25. 如何強制HBase在HDFS上運行?
- 26. HBase的 - FS關機無法抑制鉤
- 27. hbase導出行大小限制
- 28. 關於複製和區域服務器熱點的HBase表關鍵設計
- 29. 複製HBase的表到另一個不同的隊列在地圖降低
- 30. 如何將一個表從一個hbase集羣複製到另一個集羣?