Sqoop 增量导入“无法将文件附加到目标目录”

Posted

技术标签:

【中文标题】Sqoop 增量导入“无法将文件附加到目标目录”【英文标题】:Sqoop incremental import "Cannot append files to target dir" 【发布时间】:2015-01-14 15:39:03 【问题描述】:

我在使用 Sqoop 将数据从 mysql 导入 Hive 时遇到问题...

这个查询:

sqoop import --connect jdbc:mysql://xx.xx.xx.xx/database \
    --username sqoop --password sqoop --table datatable \
    --target-dir /home/cloudera/user/hive/warehouse/database.db/datatable \
    --as-parquetfile -m 1 --append

返回此错误:

15/01/14 16:27:28 WARN util.AppendUtils:无法将文件附加到目标目录;没有这样的目录:_sqoop/14162350000000781_32315_servername.ip-xx-xx-xx.eu_datatable

文件以这种方式位于 /user/root/_sqoop/ 中:/user/root/_sqoop/14162350000000781_32315_servername/ip-xx-xx-xx/eu_datatable/

主机名中的点被斜杠替换是否正常?这似乎是问题,但没有人抱怨这个问题......

编辑:当使用文本格式而不是 Parquet 时,它可以正常工作。

谢谢!

【问题讨论】:

sqoop 的版本是多少? 我也有类似的问题。我正在运行命令: sqoop import --connect "..." --password "..." --username "..." --hbase-create-table --table "TRANSFER_HBASE01" --hbase-table " HBASE01" --column-family "transfer01" --target-dir "/user/mapr/TRANSFER_HBASE01" --check-column "ID" --incremental "append" --last-value 5 我收到警告:WARN util.AppendUtils:无法将文件附加到目标目录;没有这样的目录:_sqoop/891283d89d584bf3b06c73122805e270_TRANSFER_HBASE01 从 pig 脚本读取时我无法获取增量数据。有没有人为此找到任何解决方案? 在运行从 postgresql 到 avro 的增量导出时,我遇到了同样的问题。没有增量更新也能正常工作。 【参考方案1】:

就我而言,现在仍然是个问题。

即使你使用sqoop 1.4.6,结果还是一样。

https://issues.apache.org/jira/browse/SQOOP-2165

【讨论】:

以上是关于Sqoop 增量导入“无法将文件附加到目标目录”的主要内容,如果未能解决你的问题,请参考以下文章

sqoop导入增量数据

Sqoop基础

怎么用sqoop增量从hive往oracle数据库导数据

sqoop如何在增量导入中导入固定数量的行?

如何使用 Sqoop 从 MySQL 增量导入到 Hive?

通过 oozie 从 sqoop 作业增量导入不会更新 sqoop 元存储中的 incremental.last.value