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 将数据从 Hadoop (Hive) 导出到 Amazon Redshift
Oozie sqoop 任务错误:无法运行程序“hive”:错误=2 没有这样的文件或目录