Spark大数据计算时出现“Channel空闲超时”
大数据计算时出现“Channel空闲超时”
现象描述
在10节点集群,30T数据量下,执行tpcds测试时,出现如下错误。
Connection to 10.10.10.1 has been quiet for 123450 ms while there are still 5 outstanding requests. Assuming connection is dead; please adjust spark.network.timeout if this is wrong.
可能原因
当Map Server繁忙时,Reduce Client发出请求,得不到响应。当等待时间超过一个阈值时,出现错误。默认的时间为120秒。
定位思路
无。
处理步骤
上述问题是在request个数很大时发生的,属于正常现象。解决措施有两种:
- 将spark.shuffle.io.connectionTimeout参数调大。10节点、30T数据的TPCDS测试中设置为2000s,运行正常。此参数与spark.network.timeout配合使用,优先使用spark.shuffle.io.connectionTimeout参数设置的值。如果spark.shuffle.io.connectionTimeout未设置,则使用spark.network.timeout的参数值。
- 调大spark.shuffle.io.serverThreads来解决,将此参数的值设置为core个数的两倍。