假设您具有带有Standalone
Manager的Spark集群,通过SparkSession
在客户端应用程序中创建作业来调度作业。客户端应用程序在JVM上运行。为了提高性能,您必须使用不同的配置启动每个作业,请参见下面的“
作业类型”示例 。
问题是您不能从单个JVM创建两个会话。
那么,您如何同时使用不同的会话配置启动多个Spark作业?
通过不同的会话配置,我的意思是:
spark.executor.cores
spark.executor.memory
spark.kryoserializer.buffer.max
spark.scheduler.pool
解决问题的可能方法:
SparkSession
。 可能吗?SparkSession
,这可以称为Spark会话服务。但是您不知道将来会同时启动多少个具有不同配置的作业。目前-我一次只需要2-3个不同的配置。可能就足够了,但不够灵活。Spark独立服务器为应用程序使用简单的FIFO调度程序。默认情况下,每个应用程序都使用群集中的所有可用节点。每个应用程序,每个用户或全局可以限制节点数。其他资源,例如内存,cpus等,可以通过应用程序的SparkConf对象进行控制。
Apache Mesos具有主进程和从属进程。主服务器向应用程序提供资源(在Apache
Mesos中称为框架),该资源可以接受也可以不接受。因此,要求可用资源和正在运行的作业由应用程序本身确定。Apache
Mesos允许对系统中的资源(例如cpus,内存,磁盘和端口)进行细粒度的控制。Apache
Mesos还提供了资源的过程控制控制,Spark会为每个执行器预先分配固定数量的CPU,直到应用程序退出时才释放这些CPU。请注意,在同一群集中,可以将某些应用程序设置为使用细粒度控制,而将其他应用程序设置为使用过程细粒度控制。
Apache Hadoop
YARN的ResourceManager由两部分组成:调度程序和ApplicationsManager。调度程序是可插入的组件。提供了两种实现方式:CapacityScheduler(在一个以上的组织共享的集群中有用)和FairScheduler(确保所有应用程序平均获得相等数量的资源)。两个调度程序都将应用程序分配给一个队列,每个队列都获得在它们之间平均共享的资源。在队列中,资源在应用程序之间共享。ApplicationsManager负责接受作业提交并启动特定于应用程序的ApplicationsMaster。在这种情况下,ApplicationsMaster是Spark应用程序。在Spark应用程序中,资源是在应用程序的SparkConf对象中指定的。
对于您的情况,仅使用独立的情况是不可能的,可能会有一些前提解决方案,但我没有面对
我正在进行一个spark项目,我使用的是一个由3个节点组成的hadoop集群,配置如下: > 8cores和16go Ram(Namenode、Application Master、nodemanager和spark Master和worker)。 4core和8go Ram(datanode,nodemanager和worker) 4cores和4go Ram(datanode、nodemana
我有两个不同的工作(实际上更多,但为了简单起见,假设2)。每个作业可以与另一个作业并行运行,但同一作业的每个实例应该顺序运行(否则实例将共享彼此的资源)。 基本上,我希望这些作业中的每一个都有自己的作业实例队列。我想我可以使用两个不同的线程池作业启动程序(每个都有一个线程),并将一个作业启动程序与每个作业相关联。 在从Spring Batch Admin web UI中启动作业时,是否有一种方法可
问题内容: 我创建了两个列表和,但是每个列表都有不同的创建方法: 但是输出使我感到惊讶: 使用列表推导创建的列表在内存中更大,但是在Python中这两个列表相同。 这是为什么?这是CPython内部的东西,还是其他解释? 问题答案: 在编写时,Python知道它将需要一个正好包含10个对象的列表,因此它会精确地分配该对象。 当您使用列表推导时,Python不知道它需要多少。因此,随着元素的添加,列
参考: Spark独立集群中的工作者、执行者、核心是什么? 火花独立编号执行器/核心控件 如何使用Spark独立集群在辅助节点上管理多个执行器?
在Springboot中有两个不同的@RestController使用不同的MappingJackson2HttpMessageConverter吗?...或者MappingJackson2HttpMessageConverter对于Spring Boot应用程序中的所有@RESTController是通用的吗? 基本上,目标是使用不同的MappingJackson2HttpMessageConv
我正在尝试对消费者群体进行实验 这是我的代码片段 } 当我同时运行两个spark流媒体作业时,它会出错 线程“main”java中出现异常。lang.IllegalStateException:当前没有分配给组织上的分区venkat4-1。阿帕奇。Kafka。客户。消费者内部。订阅状态。组织上的assignedState(SubscriptionState.java:251)。阿帕奇。Kafka。