映射成功后 sqoop 导出失败

Posted

技术标签:

【中文标题】映射成功后 sqoop 导出失败【英文标题】:sqoop export failed after successful map 【发布时间】:2017-09-13 09:03:50 【问题描述】:
1.sqoop export --connect jdbc:mysql://localhost:3306/hduser_db --username hduser 
    --password hduser --table export --export-dir /user/hive/warehouse/three --
fields-terminated-by ','

17/09/13 14:10:45 INFO mapreduce.Job:  map 0% reduce 0%
17/09/13 14:10:50 INFO mapreduce.Job:  map 100% reduce 0%
17/09/13 14:10:51 INFO mapreduce.Job: Job job_1505199140014_0033 failed with 
state FAILED due to: Task failed task_1505199140014_0033_m_000000
ob failed as tasks failed. failedMaps:1 failedReduces:0

2.17/09/13 14:10:51 INFO mapreduce.Job: Counters: 8

工作计数器 失败的地图任务=1 启动地图任务=1 机架本地地图任务=1 所有地图在占用槽中花费的总时间(ms)=2947 所有reduce在占用槽中花费的总时间(ms)=0 所有map任务花费的总时间(ms)=2947 所有地图任务花费的总 vcore-毫秒=2947 所有地图任务占用的总兆字节毫秒数=3017728 17/09/13 14:10:51 WARN mapreduce.Counters:Group FileSystemCounters 是 弃用 2013 年 9 月 17 日 14:10:51 信息 mapreduce.ExportJobBase:传输 0 个字节 14.8875 秒 17/09/13 14:10:51 WARN mapreduce.Counters: Group org.apache.hadoop.mapred.Task$C 17/09/13 14:10:51 INFO mapreduce.ExportJobBase:导出 0 条记录。 17/09/13 14:10:51 错误工具。导出工具:导出期间出错: 导出作业失败! 在 org.apache.sqoop.mapreduce.ExportJobBase.runExport(ExportJobBase.java 在 org.apache.sqoop.manager.SqlManager.exportTable(SqlManager.java:931) 在 org.apache.sqoop.tool.ExportTool.exportTable(ExportTool.java:80) 在 org.apache.sqoop.tool.ExportTool.run(ExportTool.java:99) 在 org.apache.sqoop.Sqoop.run(Sqoop.java:147) 在 org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 在 org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183) 在 org.apache.sqoop.Sqoop.runTool(Sqoop.java:234) 在 org.apache.sqoop.Sqoop.runTool(Sqoop.java:243) 在 org.apache.sqoop.Sqoop.main(Sqoop.java:252)

【问题讨论】:

【参考方案1】:

运行导出命令时- 必须注意以下步骤。

    源(HDFS 数据)和目标(rdbms 上的表)之间的数据类型、列名应该匹配。

    我们应该在 --columns 参数中指定所有列名。

例如:

sqoop 导出 --connect jdbc:mysql://localhost:3306/hduser_db --用户名 hduser --密码hduser --表导出 --export-dir /user/hive/warehouse/three --fields-terminated-by ',' --columns "column1,column2,...." ;

【讨论】:

以上是关于映射成功后 sqoop 导出失败的主要内容,如果未能解决你的问题,请参考以下文章

Sqoop

Sqoop 导出失败。无法解析输入数据:'<data>'

sqoop从oracle导数据后是空表

Sqoop 在导出到 Oracle 期间失败

关于映射网络驱动器不成功的问题

无法使用 RestKit 处理成功的 204 响应并正确映射失败的响应