sqoop导入数据到hive和hdfs

Sqoop import data to hive and hdfs

可以用sqoop将数据导入hdfs和hive吗? 我已经用两个不同的用户(root 和 admin)试过了 在 root 和 admin 之间的命令下面

[根目录]

sqoop import --connect jdbc:mysql://10.6.162.58/test_alpha --username pbd -P --table posts --hive-import --hive-database test_root --hive-table posts1 --hive-drop-import-delims --null-string '\N' --null-non-string '\N' --target-dir test_hive_root/2

[管理员]

sqoop import --connect jdbc:mysql://10.6.162.58/test_alpha --username pbd -P --table posts --hive-import --hive-database test_admin --hive-table posts1 --hive-drop-import-delims --null-string '\N' --null-non-string '\N' --target-dir test_hive_admin/2

它returns:

两种方式都成功导入数据到hive,但是都无法导入到HDFS。

对于 root,它不会创建我定义的目录 "test_hive_root/2"

对于admin,它只是创建目录"test_hive_admin/2"但只有"success"文件已经创建而不是数据(通常当我将它导入HDFS时,它会创建"success"文件和另外 4 个文件)

我该如何解决这个问题? sqoop可以导入HDFS和Hive吗?

希望您在为 --target-dir

提供路径时使用 / 前缀
sqoop import --connect jdbc:mysql://10.6.162.58/test_alpha --username pbd -P --table posts --hive-import --hive-database test_root --hive-table posts1 --hive-drop-import-delims --null-string '\N' --null-non-string '\N' --target-dir /test_hive_root/2

target-dir 控制数据在加载到 Hive 之前需要临时存储的位置 table,但不会在该位置创建配置单元 table。

Table是在hive.metastore.warehouse.dir属性中指定的目录下创建的hive-site.xml.

如果要导入到特定目录,则使用不带 hive-import 参数的 target-dir,并在 HDFS 目录之上创建配置单元 table。

(或)

创建 Hive 外部 table 指向您的目标目录,然后在 sqoop 导入中删除 --create-hive-table 参数和 --target-dir.

在此处阅读答案:https://community.hortonworks.com/questions/198586/running-a-sqoop-job-with-a-target-dir-destination.html

这里:https://community.hortonworks.com/questions/193934/sqoop-import-mssql-table-into-hdfs.html