2015-06-25 57 views
-1

我最近在Hive和HBase之間進行了整合。我使用HBase serde創建了一個配置單元表,當我將記錄插入配置單元表時,它將被裝載到HBase表中。我想了解如果插入到HiveHBase表中失敗怎麼辦? (HBase服務失敗/網絡問題)。我假設已經加載到HBase的記錄將在那裏,當我重新運行操作時,我將有兩個不同時間戳的數據副本(假設在20K記錄中插入了10k並且發生故障)。Hive HBase在發生故障時的集成行爲

  1. 將記錄插入HBase的最佳方式是什麼?
  2. Can Hive能否提供安全檢查以查看數據是否已經存在?
  3. mapreduce是這樣的場景的最佳拍攝嗎?我將編寫一個mapreduce程序,用於從配置單元讀取數據,並在插入之前通過hbase中的記錄檢查記錄。這確保沒有重複寫入

任何幫助,將不勝感激。

回答

0

是的,當您重新運行加載操作時,您將擁有2個版本的數據。但沒關係,因爲第二個版本將在下一次壓縮中得到清理。只要你的插入是冪等的(他們最有可能的),你就不會有問題。

在Lithium + Klout中,我們使用定製的HBaseSerDe來編寫HFiles,而不是使用Put來插入數據。因此,我們生成HFile並使用批量加載工具在作業完成後加載所有數據。這是您可以整合Hive和HBase的另一種方式。