由于任务超时,Sqoop导入作业失败

时间:2013-02-04 06:03:48

标签: hadoop bigdata sqoop

我试图使用sqoop将MySQL中的1 TB表导入HDFS。使用的命令是:

sqoop import --connect jdbc:mysql://xx.xx.xxx.xx/MyDB --username myuser --password mypass --table mytable --split-by rowkey -m 14

执行边界值查询后,所有映射器都会启动,但一段时间后,任务会因超时(1200秒)而被终止。我认为,这是因为执行在每个映射器中运行的select查询所花费的时间超过了为超时设置的时间(在sqoop中似乎是1200秒);因此它无法报告状态,随后任务被杀死。 (我也尝试过100 gb数据集;由于多个映射器超时,它仍然失败。)对于单映射器导入,它工作正常,因为不需要过滤结果集。在sqoop中使用多个映射器时,是否有任何方法可以覆盖映射任务超时(例如将其设置为0或非常高的值)?

1 个答案:

答案 0 :(得分:0)

Sqoop正在使用特殊线程发送状态,以便地图任务不会被jobtracker杀死。我有兴趣进一步探讨你的问题。您是否介意共享sqoop日志,映射任务日志之一和表模式?

Jarcec