3

我试图使用 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

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

4

1 回答 1

1

Sqoop 使用特殊线程来发送状态,这样地图任务就不会被 jobtracker 杀死。我有兴趣进一步探讨您的问题。您介意共享 sqoop 日志、地图任务日志之一和您的表架构吗?

雅尔切克

于 2013-02-05T00:53:08.703 回答