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/193934/sqoop-import-mssql-table-into-hdfs.html
可以用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/193934/sqoop-import-mssql-table-into-hdfs.html