当前位置 博文首页 > Shockang的博客:spark.reducer.maxReqsInFlight和spark.reducer

    Shockang的博客:spark.reducer.maxReqsInFlight和spark.reducer

    作者:[db:作者] 时间:2021-08-13 09:49

    前言

    本文隶属于专栏《Spark 配置参数详解》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

    本专栏目录结构和参考文献请见 Spark 配置参数详解

    正文

    属性名称默认值描述从哪个版本开始
    spark.reducer.maxReqsInFlightInt.MaxValue此配置限制在任何给定点获取块的远程请求数。当集群中的主机数量增加时,可能会导致到一个或多个节点的大量入站连接,从而导致worker在负载下失败。通过允许它限制fetch请求的数量,可以缓解这种情况。2.0.0
    spark.reducer.maxBlocksInFlightPerAddressInt.MaxValue此配置限制每个reduce任务从给定主机端口获取的远程块的数量。当在单个获取中或同时从给定地址请求大量块时,这可能会使服务 Executor 或 NodeManager 崩溃。当启用 External Shuffle 时,这对于减少 NodeManager 上的负载特别有用。可以通过将其设置为较低的值来缓解此问题。2.2.1

    说明

    这两个参数,本质上就是限制“文件下载服务”的吞吐

    避免节点因为请求量过大而瘫痪掉,当并行度大到一定程度,N个reduce task去同一个节点拉数据,这有点类似 DOS 攻击

    配置不当可能导致的问题

    1. buffer OOM
    2. http request time out
    cs