apache-spark - 如何在Spark提交期间限制VCore的使用

标签 apache-spark hadoop yarn resourcemanager

我正在编写一个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

下面是观察。
enter image description here

最佳答案

您可以使用“--executor-cores”选项,它将为每个执行器分配核心数。
可以引用12

关于apache-spark - 如何在Spark提交期间限制VCore的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56664112/

相关文章:

scala - 两个对象SCALA之间的调用方法

scala - 如果列表中存在,则从列中删除单词

unit-testing - 测试 Spark : how to create a clean environment for each test

java - hadoop节点管理器被SIGSEGV杀死

python - Spark SQL Row_number() PartitionBy Sort Desc

java - Spark 序列化的奇怪之处

sql - 如何在spark中使用多个键构建查找功能

hadoop - 大数据 - Hadoop(文件系统)

apache-spark - EMR 5.x | yarn 上的 Spark |退出代码 137 和 Java 堆空间错误

hadoop - Spark:Spark UI无法反射(reflect)正确的执行者数量