sqoop export 无法将数据从 hive 仓库文件夹加载到 mysql

Posted

技术标签:

【中文标题】sqoop export 无法将数据从 hive 仓库文件夹加载到 mysql【英文标题】:sqoop export fails to load data into mysql from hive warehouse folder 【发布时间】:2015-01-12 09:08:44 【问题描述】:

sqoop 导出失败并出现错误。

我的导出命令是:sqoop export --connect jdbc:mysql://<ip>:3306/<database> --username user --password pass --verbose --table <table name> --export-dir <dir in hdfs>

字段由 hive 默认分隔符终止。

错误信息:

15/01/12 08:50:23 INFO mapred.JobClient: Task Id :     attempt_201412261920_1440_m_000000_1, Status : FAILED
java.util.NoSuchElementException
at java.util.ArrayList$Itr.next(ArrayList.java:757)
at <tablename>.__loadFromFields(<tablename>.java:418)
at <tablename>.parse(<tablename>.java:332)
at com.cloudera.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:81)
at com.cloudera.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:40)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
at com.cloudera.sqoop.mapreduce.AutoProgressMapper.run(AutoProgressMapper.java:189)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:647)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:323)
at org.apache.hadoop.mapred.Child$4.run(Child.java:270)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:416)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1177)
at org.apache.hadoop.mapred.Child.main(Child.java:264)`

【问题讨论】:

您的用户名/密码似乎没有通过身份验证。 【参考方案1】:

我发现了错误。它是 hive 和 mysql 表中列不匹配的 bcz。现在它运行良好。

【讨论】:

什么样的不匹配列? 这是一篇旧帖子,因为我现在不记得完全不匹配。如果我没记错的话,那是因为我们在目标 mysql 表中的字段比 HDFS 文件中可用的字段多。

以上是关于sqoop export 无法将数据从 hive 仓库文件夹加载到 mysql的主要内容,如果未能解决你的问题,请参考以下文章

使用 Sqoop 将数据从 RDBMS 导入 Hive 时,如何在命令行中指定 Hive 数据库名称?

sqoop从mysql导入到hive中问题

我们可以使用 sqoop 将数据从 Hadoop (Hive) 导出到 Amazon Redshift

Oozie sqoop 任务错误:无法运行程序“hive”:错误=2 没有这样的文件或目录

使用 Sqoop 将视图(数据库表重)从 Oracle 迁移到 Hive

Sqooping 数据后 Hive 抛出错误