apache-spark - 如何调整 Spark 以避免排序磁盘溢出?
问题描述
我们有一种算法,目前以逐个分区的方式处理数据foreachPartition
。我意识到这可能不是在 Spark 中处理数据的最佳方式,但从理论上讲,我们应该能够使其工作。
我们有一个问题,即 Spark 在sortWithinPartitions
调用后会溢出数据,分区中有大约45 GB
数据。我们的执行250 GB
程序定义了内存。理论上,内存中有足够的空间来容纳数据(除非 Spark 的排序开销很大)。然而,我们经历了泄漏。有没有一种方法可以准确地计算出每个执行程序需要多少内存才能使其工作?
解决方案
推荐阅读
- javascript - 屏幕上有太多物体时的碰撞问题
- python - 屈服然后返回还是仅仅返回?
- git - 在 git 中,有没有办法覆盖或至少将单个文件合并到所有打开的分支中?
- python - 当类的属性与类的类型相同时导入问题
- flutter-layout - 有谁知道如何使用颤振实现一个搜索栏,该搜索栏具有类似 instagram 的标签?
- sapui5 - 在 SAPUI5 中加载 amcharts 库 - component.js vs index.html
- firebase - Firebase 规则建议
- node.js - Nest.JS 中的 Sequelize 查询在返回前未解决
- c# - 当你达到每小时限制时,有没有办法“通知”?
- python - 如何从现有模型向顺序模型添加层?