我们有一个问题,有时会发生,但经常发生。当我们为特定的表运行sqoop import时,有时它会在5分钟内完成。有时需要2.5小时。在这种情况下,我们总是看到一个失败的map任务,它花费了大约2小时10分钟。你能帮我提供解决办法吗。
1) 失败的任务总是失败,并出现以下错误。当预计会出现以下错误时,我们是否可以在10-15分钟内而不是等待2小时使map任务失败。
"2018-03-06 00:09:41,485错误[main]org.apache.sqoop.mapreduce.db.dbrecordreader:顶级异常:com.microsoft.sqlserver.jdbc.sqlserverexception:com.microsoft.sqlserver.jdbc.sqlserverconnection.terminate(sqlserverconnection)上的连接超时(读取失败)。java:1671)在com.microsoft.sqlserver.jdbc.sqlserverconnection.terminate(sqlserverconnection)。java:1658)在com.microsoft.sqlserver.jdbc.tdschannel.read(iobuffer。java:1789)在com.microsoft.sqlserver.jdbc.tdsreader.readpacket(iobuffer。java:5031)在com.microsoft.sqlserver.jdbc.tdsreader.nextpacket(iobuffer。java:4941)在com.microsoft.sqlserver.jdbc.tdsreader.load(iobuffer。java:4917)在com.microsoft.sqlserver.jdbc.tdsreader.readbytes(iobuffer。java:5210)在com.microsoft.sqlserver.jdbc.tdsreader.readwrappedbytes(iobuffer。java:5232)在com.microsoft.sqlserver.jdbc.tdsreader.readunsignedshort(iobuffer。java:5147)"
正在附加失败任务的日志文件。
请帮忙解决。
谢谢,桑德普
1条答案
按热度按时间5lhxktic1#
显然,修复此错误的来源将是一个更好的解决方案,但是带有超时的脏工作区现在应该可以为您节省一些时间。
在使用sqoop时,可以在工具名称后面定义通用hadoop选项。e、 g sqoop import-dmapred.map.max.attempts--连接。。。
在您的案例中,有许多选项可能很有用,但我猜您需要mapred.task.timeout之类的选项。
mapred.task.timeout:“如果任务既不读取输入,也不写入输出,也不更新其状态字符串,则任务终止前的毫秒数”
有关mapreduce相关属性的完整列表,请参见:https://hadoop.apache.org/docs/r1.0.4/mapred-default.html
这里有更多的hadoop属性:hadoop框架中使用的属性的完整列表
希望这有帮助