2016-08-18 32 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命令有一些条件应该由数据库中的所有表格满足。 –