如何在spark提交期间限制vCore的使用

mftmpeh8  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(533)

我正在写一个spark结构的流应用程序,其中使用spark处理的数据需要放入s3存储桶。
这是我的开发环境。
hadoop 2.6.0-cdh5.16.1版本
spark版本2.3.0.4
我想限制vcores的使用
到目前为止,我已经使用spark2 submit将选项指定为--conf spark.cores.max=4。但是在提交作业之后,我发现作业占用了集群中最大的可用vcore(我的集群有12个vcore)
由于vcores不可用,无法开始下一个作业。
限制每个作业使用vCore的最佳方法是什么?
到目前为止,我正在做一些变通方法:我在集群中创建了资源池,并将一些资源分配为
最小资源:4个虚拟内核和8 gb内存
使用这些池分配spark作业以限制vCore的使用。

e.g. spark2-submit --class org.apache.spark.SparkProgram.rt_app --master yarn --deploy-mode cluster --queue rt_pool_r1 /usr/local/abc/rt_app_2.11-1.0.jar

我想限制vCore的使用,而不需要任何解决方法。
我也试过了

spark2-shell --num-executors 1 --executor-cores 1 --jars /tmp/elasticsearch-hadoop-7.1.1.jar

下面是观察。

guykilcj

guykilcj1#

您可以使用“--executor cores”选项,它将为每个executor分配核心数。可参考1和2

相关问题