2017-05-03 105 views
1

在我的HDFS已經存在目錄「MyDatabase的」,我試圖更新是在MySQL與sqoop HDFSSqoop語法覆蓋HDFS進口的所有表

然而數據,在進口清一色tables命令沒有在HDFS目錄中沒有覆蓋選項,僅在蜂巢

我嘗試做以下命令:

sqoop import-all-tables 
--connect jdbc:mysql://10.20.20.43/mydatabase 
--username blizzard 
--password blizzard 
--warehouse-dir /user/hdfs/mydatabase -m 1 
--hive-database mydatabase 
--hive-import 
--hive-overwrite 
--null-string '\\N' 
--null-non-string '\\N' 
--verbose 

但我有一個錯誤:

17/05/03 19:48:13 ERROR tool.ImportAllTablesTool: 
Encountered IOException running import job: 
org.apache.hadoop.mapred.FileAlreadyExistsException: 
Output directory hdfs://10.20.20.43:8020/user/hdfs/mydatabase/table1 
already exists 

我總是想導入所有的數據,因爲我不知道哪一個數據可以被更改。

這樣做的最好方法是什麼?

謝謝!

編輯:

--delete-target-dir命令只對import而不是爲import-all-tables根據文檔https://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html

+1

的[覆蓋HDFS目錄Sqoop進口(http://stackoverflow.com/questions/40130163/overwrite-hdfs-directory-sqoop-import) – Andrew

+0

不重複,如果可能的話重複你請查看文檔,您所說的帖子的命令(--delete-target-dir)僅用於命令導入,而不是用於命令import-all-tables,這是我的疑問 https://sqoop.apache .org/docs/1.4.6/SqoopUserGuide.html @Andrew –

回答

0

您可以刪除所有數據再次重寫它們。之前嘗試:

$hdfs dfs -rm -r /user/hduser/*