前言
本文隶属于专栏《Spark 配置参数详解》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
本专栏目录结构和参考文献请见 Spark 配置参数详解
正文
属性名称 | 默认值 | 描述 | 从哪个版本开始 |
---|---|---|---|
spark.reducer.maxReqsInFlight | Int.MaxValue | 此配置限制在任何给定点获取块的远程请求数。当集群中的主机数量增加时,可能会导致到一个或多个节点的大量入站连接,从而导致worker在负载下失败。通过允许它限制fetch请求的数量,可以缓解这种情况。 | 2.0.0 |
spark.reducer.maxBlocksInFlightPerAddress | Int.MaxValue | 此配置限制每个reduce任务从给定主机端口获取的远程块的数量。当在单个获取中或同时从给定地址请求大量块时,这可能会使服务 Executor 或 NodeManager 崩溃。当启用 External Shuffle 时,这对于减少 NodeManager 上的负载特别有用。可以通过将其设置为较低的值来缓解此问题。 | 2.2.1 |
说明
这两个参数,本质上就是限制“文件下载服务
”的吞吐
避免节点因为请求量过大而瘫痪掉,当并行度大到一定程度,N个reduce task去同一个节点拉数据,这有点类似 DOS 攻击
配置不当可能导致的问题
- buffer OOM
- http request time out