我们正在运行的内核比SPARK_WORKER_CORES(设置为1)所预期的更多。作为深入研究的一部分,我们考虑一下文档中的几个spark组件及其描述:
辅助节点 可以在集群中运行应用程序代码的任何节点
执行程序为执行程序的工作程序节点上的应用程序启动的进程,用于运行任务并将数据跨任务存储在内存或磁盘存储中。每个应用程序都有自己的执行程序。
所以-对于最后一句话:给定工作节点上的单个应用程序上可以有多个执行程序吗?还是只有一个?
对的,这是可能的。原则上,您将Spark配置为具有一定数量的执行程序,并且每个执行程序具有一定数量的内核。节点数转换为Yarn或其他群集处理资源的方式,但是AFAIK Spark对此完全不可知。
如果节点具有足够的内存和核心,则群集很有可能将两个执行程序分配给同一节点。归根结底,这些只是要分发的资源。您将看到文档中的配置示例与节点无关:
$ ./bin/spark-submit --class org.apache.spark.examples.SparkPi \
--master yarn-cluster \
--num-executors 3 \
--driver-memory 4g \
--executor-memory 2g \
--executor-cores 1 \
lib/spark-examples*.jar \
10
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4254 次 |
| 最近记录: |