scala - 如何确定在单个节点上运行 spark 的最佳设置?
问题描述
我有 55 GB 数据需要处理。我在具有 32 个内核和 180GB RAM(无集群)的单台机器上运行 Spark-shell。由于它是一个单节点——Driver 和 Workers 都驻留在同一个 JVM 进程中,默认使用 514 MB。
我将 spark.driver.memory 设置为 170G
spark-shell --driver-memory 170g
我正在做一个 map 操作,然后是 group_by,然后是 agg 并写入 parquet 文件。它仍然停留在
无论如何通过更改 spark.executor.memory 或更改使用的核心数而不是使用 Master [*] 来优化性能?如何确定给定任务和数据大小的最佳设置?我应该精确调整 --conf 文件中的哪些值?
简而言之,如何强制 spark 以最好的方式使用所有可用的资源?
解决方案
如果您在单台计算机上运行,更改 spark.executor.memory 不会生效。您需要有一个实际的集群。您可以向集群添加更多节点以减少分区数量并加快处理速度。
推荐阅读
- laravel - laravel 5.2 从今天开始接下来的 3 个事件
- java - 这些 lambda 供应商之间有什么区别?
- javascript - 如何通过 nodejs API 上传文件 - Vuejs
- ruby - 基准宝石改进
- javascript - 如何将数据添加到对象Angular 5+中的集合?
- templates - 为多个文件划分模板不提供数据
- github - 我如何在 github 上搜索特定且准确的术语?
- python - 无效的语法 Python Inside print 2.7.11
- python - 逗号分隔列表的 argparse 操作或类型
- react-native - undefined 不是对象(评估'_this2.setProject.bind')onPress