Apache Spark in Yarn不使用所有核心

时间:2015-10-22 16:25:37

标签: apache-spark yarn pyspark emr amazon-emr

编辑2: 我更改了执行程序内存的数量,发现执行程序的数量受分配的内存量的限制。 spark.executor.memory是分配给每个执行程序的内存量,而不是所有执行程序可用的内存总量。所以现在我有11个执行者产卵。现在的问题仍然是每个执行者只使用一个核心。

我在EMR集群上运行Spark,由于某种原因,我似乎无法获得工作来利用完整的系统资源。我使用Spark maximizeResourceAllocation True启动了集群,但我已将配置编辑为:

public class ElemType
{
   public string MyProperty { get; set; }
}

static void Main(string[] args) {
    Expression<Func<string[], Func<ElemType, bool>>> exp = (arr) => (ElemType et) => arr.Contains(et.MyProperty);
    var compiled = exp.Compile();
    var func = compiled(new[] { "aaa", "bbb" });

    var query = new List<ElemType> { 
        new ElemType { MyProperty = "aaa" }, 
        new ElemType { MyProperty = "bbb" }, 
        new ElemType { MyProperty = "cccc" } 
    };

    var result = query.Where("MyProperty", new[] { "aaa", "bbb" });
} 

集群有四个工作节点,8个核心x 2个线程,每个16GB RAM: Cluster Metrics

我根据this帖子选择了火花设置。

根据我的理解,这应该启动11个执行器,每个执行器3个(我可能误解了应用程序主机运行的位置),每个执行器可以访问5个核心。

但是,当我通过spark-submit提交作业时,我会看到以下内容: enter image description here

这似乎只显示了4个核心。此外,只产生了三个执行者: enter image description here

我在这里缺少一些东西吗?即使我没有正确理解配置参数,我也不明白为什么会这样。

编辑: 我尝试过提交我的工作有很多不同的选择,但我也有同样的行为。 spark-submit --deploy-mode client --master yarn [*] --num-executors 11 --executor-cores 5 --verbose parse_ad_logs.py

我根据链接的可能欺骗问题包括了纱线[*] - 尽管我可以找到很多相关信息。

0 个答案:

没有答案