我正在编写一个Spark结构化的流应用程序,其中使用Spark处理的数据需要下沉到s3存储桶中。
这是我的开发环境。
Hadoop 2.6.0-cdh5.16.1
Spark版本2.3.0.cloudera4
我想限制VCores的使用
到目前为止,我已经使用spark2-submit将选项指定为--conf spark.cores.max = 4。但是,提交作业后,我发现该作业占用了群集中的最大可用VCore(我的群集有12个VCore)
由于VCore不可用,因此下一个作业无法开始。
哪种方法是限制每个作业使用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
我想在没有任何解决方法的情况下限制VCores的使用。
我也尝试过
spark2-shell --num-executors 1 --executor-cores 1 --jars /tmp/elasticsearch-hadoop-7.1.1.jar
下面是观察。
最佳答案
关于apache-spark - 如何在Spark提交期间限制VCore的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56664112/