Spark with Yarn:提供 spark 资源相关参数的要点?
Spark with Yarn: Point in providing spark-resource related parameters?
我正在阅读有关 Spark 和资源管理的文献,在我的例子中就是 Yarn。
我想我理解了基本概念以及 Yarn 如何将 Spark Master/Workers 封装在容器中。
仍然提供 --driver-memory
、--executor-memory
或 --number-executors
等资源参数是否有意义? Yarn-application-master(spark-master) 不应该找出需求并相应地请求新资源吗?
或者提供这个参数来干扰资源协商过程是否明智?
Spark 需要协商来自 YARN 的资源。提供资源参数告诉 Spark 从 YARN 请求多少资源。
对于 YARN 上的执行者:
- Spark 应用程序使用固定数量的执行程序(默认 = 2)。
- spark-submit、spark-shell 等的
--num-executors
标志设置了预期的执行者数量。
对于 YARN 上的内存管理:
- 使用
--executor-memory
设置每个执行器使用的内存。
- 设置
--executor-cores
告诉 Spark 从 YARN 中声明多少核心。
- 使用
--driver-memory
设置驱动程序进程的内存量。
一些通用的 Spark-on-YARN 注释:
- 如果您的 YARN 集群将应用程序安排到队列中,请使用
--queue
选项。
- Spark 针对内存计算进行了优化,因此请向 YARN 寻求较少数量的内存密集型执行程序(具有多个内核和更多内存)。如果您在 YARN 中设置了内存上限,请小心。
Spark on YARN Documentation 有更多详细信息。
我正在阅读有关 Spark 和资源管理的文献,在我的例子中就是 Yarn。
我想我理解了基本概念以及 Yarn 如何将 Spark Master/Workers 封装在容器中。
仍然提供 --driver-memory
、--executor-memory
或 --number-executors
等资源参数是否有意义? Yarn-application-master(spark-master) 不应该找出需求并相应地请求新资源吗?
或者提供这个参数来干扰资源协商过程是否明智?
Spark 需要协商来自 YARN 的资源。提供资源参数告诉 Spark 从 YARN 请求多少资源。
对于 YARN 上的执行者:
- Spark 应用程序使用固定数量的执行程序(默认 = 2)。
- spark-submit、spark-shell 等的
--num-executors
标志设置了预期的执行者数量。
对于 YARN 上的内存管理:
- 使用
--executor-memory
设置每个执行器使用的内存。 - 设置
--executor-cores
告诉 Spark 从 YARN 中声明多少核心。 - 使用
--driver-memory
设置驱动程序进程的内存量。
一些通用的 Spark-on-YARN 注释:
- 如果您的 YARN 集群将应用程序安排到队列中,请使用
--queue
选项。 - Spark 针对内存计算进行了优化,因此请向 YARN 寻求较少数量的内存密集型执行程序(具有多个内核和更多内存)。如果您在 YARN 中设置了内存上限,请小心。
Spark on YARN Documentation 有更多详细信息。