2016-08-18 51 views
1

我試圖使用Sqoop將所有表從幾個SQL Server數據庫導入HDFS。我正在使用Cloudera CDH 5.7。因此,我輸入以下命令:Sqoop import-all-tables命令的問題

sqoop import-all-tables --connect "jdbc:sqlserver://X.X.X.X:1433;database=FEPDB" --username XXXXX --password XXXXX --hive-import 

它成功運行,但'FEPDB'數據庫中的所有表都沒有被導入。我在HDFS的hive目錄中找不到它們,或者列出了Hive中存在的所有表。

所以我試圖將所有表導入HDFS中的目錄,然後創建配置單元表。我給下面的命令:

sqoop import-all-tables --connect "jdbc:sqlserver://X.X.X.X:1433;database=FEPDB" --username XXXXX --password XXXXX --target-dir "/user/FEPDB" 

它給了我一個錯誤說

無法識別的說法--target-dir的

不--target-dir參數與進口工作-all-tables命令?爲什麼數據庫中的所有表格都不是首先導入的?有沒有辦法讓這些錯誤越過並以更簡單的方式導入所有表格?

任何幫助,將不勝感激。謝謝。

+0

這不是問題所在。我已經嘗試過了。 –

回答

0

進口的所有桌期待與--warehouse-dir的參數,提供倉庫目錄和HDFS路徑,它會工作

+0

我試過了,但不起作用。我已經給出了以下命令: sqoop import-all-tables --connect「jdbc:sqlserver:// XXXX:1433; database = FEPDB」--username xxxx --password xxxx --hive-import --warehouse-dir 「用戶/配置單元/倉庫/ FEPDB」 我在--warehouse-dir參數中提到的目錄是空的。 –

+0

什麼錯誤?你提供了--hive-import --create-hive-table --hive-database dbname --hive-home/user/hive/warehouse,Eventhough --hive-home不是強制性的..但是把實際的錯誤。 –

+0

我運行它時沒有收到任何錯誤。它只是我提到的作爲--warehouse-dir的目錄是空的。我會嘗試你提到的其他論點。 –

0

請試試這個:sqoop進口的所有桌--connect「的jdbc:SQLSERVER :// XXXX:1433; database = FEPDB「--username XXXXX --password XXXXX --warehouse-dir

+0

試過了。但它不起作用。 import-all-tables有一些必須滿足的條件才能從數據庫中導入所有表。我想最好是逐一導入每個表格。 –

+0

你可以發佈你收到的錯誤嗎? –

+0

我發現最好逐個上傳表格,因爲import-all-tables命令有一些條件應該由數據庫中的所有表格滿足。 –