Deployment 单纱团中的两个火花团

Deployment 单纱团中的两个火花团,deployment,apache-spark,yarn,Deployment,Apache Spark,Yarn,可以在一个大的纱线簇中定义两个火花簇吗?我的意思是,当然我可以在独立模式下部署Spark 假设我有以下机器: h1,h2,h3 k4,k5,k6 s1、s2、s3、s4、s5、s6 t1,t2,t3 数字代表机架。在h上我有HDFS,在k上我有卡夫卡,在s和t上我想安装Spark。在所有机器上都有纱线,因此特别是集群具有机架位置的概念 我希望在s和t上有两个独立的火花簇,这样,如果我在任何t机器上提交作业(在纱线模式下),就不会在s机器上分配任务,反之亦然 这可能吗? 谢谢你,E.这是不可能

可以在一个大的纱线簇中定义两个火花簇吗?我的意思是,当然我可以在独立模式下部署Spark

假设我有以下机器:

  • h1,h2,h3
  • k4,k5,k6
  • s1、s2、s3、s4、s5、s6
  • t1,t2,t3
数字代表机架。在h上我有HDFS,在k上我有卡夫卡,在s和t上我想安装Spark。在所有机器上都有纱线,因此特别是集群具有机架位置的概念

我希望在s和t上有两个独立的火花簇,这样,如果我在任何t机器上提交作业(在纱线模式下),就不会在s机器上分配任务,反之亦然

这可能吗?
谢谢你,E.

这是不可能的,老实说,也没有道理

纱线是一个资源管理器,s*和t*是它的资源。 由于您可以从任意一个节点提交spark作业,因此Thread不会区分它们,因此,如果您设置参数,将动态分配您请求的资源


现在,拆分资源是没有意义的,因为如果一个作业在3个节点上完成需要2小时,那么在6个节点上完成可能只需要1小时。Thread有它的队列,它跟踪传入的作业请求,因此它可以动态地减少/增加分配给正在运行的作业的内存。

您的意思是要在Thread上并行提交两个作业吗?集群是一组机器。不,我的意思是集群是一组机器——我有一个大的纱线集群,我希望在其中创建两个孤立的火花。谢谢你的回答,我会尝试探索更多——在你的例子中,如果这项工作需要2小时,我很好,但我希望其他更高优先级的作业不会因为第一个任务是在不应该的机器上生成而延迟。这至少是我想要实现的,但仍然不确定它是否可行。它是可行的。纱线可以有多个具有不同优先级的队列。所以,若纱线正在运行一个在低优先级队列中提交的作业,而一个新作业在高优先级队列中出现。当前运行的作业资源将在当前周期结束后减少(如果已通过动态内存分配提交),并且纱线将并行运行更高优先级的作业。