1

在火花数据帧(4x)上执行几个连接时,我收到以下错误:

org.apache.spark.shuffle.FetchFailedException: failed to allocate 16777216 byte(s) of direct memory (used: 4294967296, max: 4294967296)

即使设置:

--conf "spark.executor.extraJavaOptions-XX:MaxDirectMemorySize=4G" \

它没有解决。

4

1 回答 1

4

似乎有太多的飞行块。尝试使用较小的spark.reducer.maxBlocksInFlightPerAddress. 作为参考,看看这个JIRA

引用文字:

对于启用了外部随机播放的配置,我们观察到如果一个非常大的不。的块从远程主机获取,这会使 NM 承受额外的压力并可能使其崩溃。此更改引入了配置 spark.reducer.maxBlocksInFlightPerAddress ,以限制数量。从给定的远程地址获取地图输出的数量。此处应用的更改适用于两种情况 - 启用和禁用外部随机播放时。

于 2020-03-23T23:18:06.993 回答