当前位置: 首页 > 知识库问答 >
问题:

火花有多少JVM运行在带有多个应用程序的worker上

宣原
2023-03-14

spark.executor.cores=2 spark.executor.memory=10GB

现在Spark在每个worker节点上启动一个Executor的JVM,对吗?

然后,在第一个会话使用configs进行之前,启动另一个Spark应用程序/会话

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

JVM的开销有多大?我的意思是,在用例2中,节点的RAM被分成7个JVM时,有多少RAM不会用于计算目的?

共有1个答案

诸正谊
2023-03-14

正如您提到的,每个工作节点都有2个核心,因此通过设置executor cores=2,每个工作节点将只有1个executor。

用例1

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

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

  • 垃圾回收器暂停会损害Spark作业的吞吐量。
  • 堆大小>32 GB不能使用Compressedooops。

Mesos和YARN可以开箱即用,支持将多个较小的执行器打包到同一个物理主机上,因此请求较小的执行器并不意味着您的应用程序将拥有较少的整体资源。

 类似资料:
  • 问题很明显。当我准备好JVM规范时,我遇到了Java堆栈 “2.5.2 Java虚拟机堆栈” 每个Java虚拟机线程都有一个私有Java虚拟机堆栈,与线程同时创建。Java虚拟机堆栈存储帧(§2.6)。Java虚拟机堆栈类似于C等传统语言的堆栈:它保存局部变量和部分结果,并在方法调用和返回中发挥作用。由于Java虚拟机堆栈除了用于推送和弹出帧之外,从未被直接操作,因此帧可能是堆分配的。Java虚拟

  • 我有一个多Maven模块Spring Boot项目,具有以下结构: webservices和backend都是单独的Spring Boot应用程序(它们生成一个jar文件,我用它来启动它们),它们依赖于commons模块。因此,我将commons作为一个依赖项包含在webservices和后端的pom中。xml。 我对启动我的应用程序没有什么疑问。 如何在单个JVM中启动后端和webservice

  • 如何在同一台服务器上独立运行多个web应用程序? docker是正确的方法(请举例说明)还是矫枉过正? 有没有其他选择我应该考虑? 我还需要考虑其他问题(潜在问题、解决方案)吗?

  • 一些脚本在工作时什么也不做,当我手动运行它们时,其中一个失败了,出现了以下消息: 错误SparkUI:未能绑定SparkUI java.net.bindexception:地址已在使用:服务“SparkUI”在重试16次后失败! 所以我想知道是否有一种特定的方法来并行运行脚本?

  • 问题内容: 如何在一台机器上运行多个JVM?您如何在其他JVM中调用方法? 问题答案: 如何在一台机器上运行多个JVM? 只需启动多个进程即可。 您如何在其他JVM中调用方法? 使用任何类型的RPC框架(RMI,EJB,Web服务等)。

  • 我用RabbitMQ作为消息服务器编写了一个Spring-MVC-Hibernate应用程序 该应用程序现在托管在我本地系统中的单个tomcat服务器上。 我想在多个JVM节点环境中测试我的应用程序,即在多个tomcat服务器上运行的应用程序。 测试应用程序的最佳方法是什么。 我脑海中浮现的一些事情 A、 安装 B.将应用程序托管在像OpenShift、Cloud doundry这样的PAAS上,