是否可以在一个大的Yarn集群中定义两个Spark集群?Yarn模式下的Spark我的意思是,当然我可以在独立模式下部署Spark。
假设我有以下机器:
- h1、h2、h3
- k4、k5、k6
- s1、s2、s3、s4、s5、s6
- t1、t2、t3
数字表示机架。在h上我有HDFS,在k上我有Kafka,在s和t上我想安装Spark。在所有机器上都有Yarn,因此集群特别具有机架位置的概念。
我希望在s和t上有2个独立的Spark集群,这样,如果我在任何t台机器上提交作业(在Yarn模式下),就不会在s台机器上分配任务,反之亦然。
这可能吗?谢谢你,E.
这是不可能的,老实说,也没有意义。
Yarn是一个资源管理器,s*和t*是它的资源。由于您可以从任意一个节点提交spark作业,所以yarn不会区分它们,因此如果您设置参数,它将动态分配您要求的资源。
现在,拆分资源是没有意义的,因为如果一个作业在3个节点上需要2小时才能完成,那么在6个节点上可能只需要1小时。yarn有它的队列,它可以跟踪传入的作业请求,因此它可以动态地减少/增加分配给正在运行的作业的内存。