【问题标题】:Spark Worker and Executors CoresSpark Worker 和 Executors 核心
【发布时间】:2017-05-25 22:21:52
【问题描述】:
我有一个在 HDFS 之上以 YARN 模式运行的 Spark 集群。我启动了一名具有 2 个内核和 2g 内存的工作人员。然后我提交了一个动态配置为 1 个执行器和 3 个核心的作业。尽管如此,我的工作仍然可以运行。有人可以解释启动工作人员的核心数量与执行者要求的核心数量之间的区别吗?我的理解是,由于执行者在工作人员内部运行,因此他们无法获得比工作人员可用的资源更多的资源。
【问题讨论】:
标签:
hadoop
apache-spark
hadoop-yarn
【解决方案1】:
->Spark 在工作节点内启动 n 个执行器。
-> Spark 使用核心数和 executor-memory 参数在应用程序提交到 spark 集群时启动 executor。
-> 在 spark 提交中,我们不能指定工作节点的核心数。
【解决方案2】:
检查yarn-site.xml中的参数yarn.nodemanager.resource.cpu-vcores。
yarn.nodemanager.resource.cpu-vcores 控制每个节点上容器使用的最大核数。