首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在具有多个应用程序的工作人员上运行多少JVM?

在具有多个应用程序的工作人员上运行多少JVM?
EN

Stack Overflow用户
提问于 2017-05-17 10:00:52
回答 1查看 3.7K关注 0票数 2

我使用的是星火+独立集群管理器。我有5个工作节点,每个工作节点有2个核心和14 GB的RAM。

我如何才能计算出在工作节点上将启动多少JVM火花?

用例1

  1. 我以信任开始应用程序/会话。 spark.executor.cores=2 spark.executor.memory=10GB 此时,Spark在每个工作节点上启动一个执行器的JVM,对吗?
  2. 然后,我启动另一个火花应用程序/会话之前,第一个会话正在进行与信任 spark.executor.cores=2 spark.executor.memory=4GB 此时,每个工作节点上都有两个JVM,对吗?

用例2

我以吐露的方式开始申请/会话:

代码语言:javascript
复制
sstsp.spark.shuffle.service.enabled=true
sstsp.spark.dynamicAllocation.enabled=true
sstsp.spark.dynamicAllocation.maxExecutors=35
sstsp.spark.executor.cores=2
sstsp.spark.executor.memory=2GB

这意味着每个工作节点将启动7个执行器(JVM),每个2GB RAM,对吗?

附注:

JVM的开销有多大?我的意思是,在用例2中,有多少内存将不用于计算,其中节点的RAM被分配到7个JVM中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-17 11:31:49

正如您所提到的,每个工作节点都有两个核心,所以通过设置executor cores=2,每个工作节点只有一个执行器。

用例1

1) 5个工作节点=5个执行者

2) 5个工作节点=5个执行器(基于可用性)

用例2

就执行器而言,core=2最大执行器将为每个工作节点5,1个执行器。

要在一台机器上启动多个执行器,您需要启动多个独立的工作人员,每个工作人员都有自己的JVM。它引入了由于这些JVM进程造成的不必要的开销,前提是该工作程序上有足够的内核。

如果您在内存丰富的节点上以独立模式运行Spark,那么在同一个节点上有多个工作实例是有益的,因为一个非常大的堆大小有两个缺点:

Mesos和same可以在开箱即用的情况下支持将多个较小的执行器打包到同一个物理主机上,因此请求较小的执行程序并不意味着应用程序的总体资源将更少。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44021624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档