Spark 内存分配 - 实时场景

问题描述

我正在尝试找出利用集群资源执行 Spark 作业的最佳方法。以下是我的集群详细信息:

  • 集群中的活动节点总数:100
  • 每个节点上的内核总数:16 个内核
  • 集群上可用的内核总数:100 个节点 * 16 个内核 = 1600 个内核
  • 每个节点上的内存分配 (RAM):64 GB
  • 集群上的总内存:64GB * 100 个节点 = 6400 GB

现在我需要使用 spark 作业处理两个文件并通过 spark sql 执行连接操作并将输出数据帧保存到 Hive 表中。两个文件大小分别为 file1.csv (30 GB)file2.csv (10 GB)

这里是我的问题:

  1. 我需要分配多少 Spark Driver 内存 (--driver-memory) 以及为什么?
  2. 我需要定义多少个 Spark Executor (--num-executors) 以及为什么?
  3. 我需要分配多少 Spark Executor Memory (--executor-memory) 以及为什么?
  4. 需要指定多少个驱动程序和执行程序内核?
  5. 让我知道是否还需要任何额外的内存配置来实现更好的并行处理?

提前致谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...