2014-04-02 64 views
2

我們正在使用Sqoop將來自各種來源(如Oracle,Teradata)的數據複製到HDFS。我們使用增量更新功能'導入'數據&然後'合併'它與現有的數據。數據首先被填入臨時目錄&然後我們'刪除'舊的&'重新命名'新的。遞增更新HDFS上的數據

問題是,如果用戶在交換目錄時使用諸如Hive之類的工具對HDFS上的數據運行查詢,則查詢異常終止。

有沒有更好的方法來處理HDFS上的更新?

(請注意,即使HBase保留不同的版本,但它不適用於我們,因爲我們希望通過任何列進行查詢。如果您不通過主鍵進行搜索,HBase非常緩慢。)

回答

0

Hadoop的設計並非如此。這對存儲數據非常有用,但不能編輯。我只是在舊數據旁邊添加新數據,並添加它(複製或任何其他導入)時,可以將sufix .tmp添加到文件名。但我沒有使用蜂箱(豬用戶在這裏),並且在豬中我可以告訴A = LOAD'/some/path/to/hdfs/*.log',那將加載除導入的.tmp之外的所有文件。這樣就沒有問題了。