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

在单独的机器上运行火花驱动器

武彭薄
2023-03-14

目前,我正在群集模式(独立群集)下使用Spark 2.0.0,群集配置如下:

工作线程:使用了4个内核:总共32个,使用了32个内存:总共54.7 GB,使用了42.0 GB

我有4个奴隶(工人)和1台主机。火花盘有三个主要部件-主部件、驱动部件、工作部件(参考)

现在我的问题是,驱动程序正在其中一个工作节点中启动,这阻碍了我在其全部容量(RAM方面)中使用工作节点。例如,如果我在运行spark作业时使用2g内存作为驱动程序内存,那么我在每台机器上只剩下13gb内存作为执行器内存(假设每台机器的RAM总量为15gb)。现在我认为有两种方法可以解决这个问题:

1) 在主机上运行驱动程序,这样我可以指定完整的15gb RAM作为执行器内存

2)显式指定驱动程序机器(工作节点之一),并相应地为该机器的驱动程序和执行器分配内存。对于其余的工作节点,我可以指定最大执行器内存。

我如何实现第1点或第2点?或者它甚至是可能的?
任何指向它的指针都将受到赞赏。

共有1个答案

秋和雅
2023-03-14

要在主机上运行驱动程序,请从主机上运行spark submit并指定部署模式客户端。使用spark submit启动应用程序。

使用--部署模式集群时,无法指定驱动程序将在哪个工作器上运行。但是,如果您使用集群管理器(例如yarn或Mesos),您可以在工作器上运行驱动程序并实现最大的集群利用率。

 类似资料:
  • 在EMR集群或任何集群中,YARN有可能在同一个EC2实例中分配驱动程序和执行器吗?我想知道驱动程序是否可以利用1个EC2实例的存储和处理能力,或者该实例的某个部分将用于服务集群中运行的其他spark作业。这可能会导致我的驱动程序内存不足。 我认为资源管理器是根据集群资源的可用性来决定的?

  • 在Spark独立集群中,主节点是否也运行任务?我不确定是否有Executors进程在主节点上旋转并与工作节点一起工作。 谢了!

  • 我使用的是在AWS EMR 5.30.0上运行的Spark 2.4.5和R5.4xLarge实例(16个vCore、128个GiB内存、EBS仅存储、EBS存储:256 GiB):1个主、1个核心和30个任务。 所以我想我可以编辑其他设置来使UI工作正常,但我不确定是什么。 以下是集群中Spark-defaults.conf中的设置:

  • 我是Spark的初学者,我正在运行我的应用程序,从文本文件中读取14KB的数据,执行一些转换和操作(收集、收集AsMap),并将数据保存到数据库 我在我的macbook上本地运行它,内存为16G,有8个逻辑核。 Java最大堆设置为12G。 这是我用来运行应用程序的命令。 bin/spark-submit-class com . myapp . application-master local[*

  • 我已按照以下指南在本地计算机(Windows 10)上安装spark:https://changhsinlee.com/install-pyspark-windows-jupyter/. 从Anaconda启动笔记本并运行时: 它需要很长时间,而且不会完成(至少在60分钟内)。 在此之前,我收到了错误“java-gage-Process-exited-前…”。阅读此内容后:“https://sta