Apache Spark - 保持执行程序数相同如果我增加执行程序核心数,应用程序性能会提高

时间:2016-03-22 09:51:01

标签: java amazon-web-services apache-spark emr

我的群集有以下配置

节点数 - 6, 机器 - M3.2xlarge, 每个节点的核心数 - 8, 每个节点的内存-30 GB,

我正在运行spark应用程序,它正在从HDFS读取数据并发送到SNS / SQS。

我正在使用以下命令来运行此作业

    spark-submit --class com.message.processor.HDFSMessageReader --master 
yarn-client --num-executors 17 --executor-cores 30 --executor-memory 6G  
/home/hadoop/panther-0.0.1-SNAPSHOT-jar-with-dependencies.jar
 /user/data/jsonData/* arn:aws:sns:us-east-1:618673372431:pantherSNS https://sns.us-east-1.amazonaws.com true

这里我将执行程序的数量保持在最大和不同数量的执行程序核心,以下是我得到的结果 -

在这里,我审阅了Cloudera给出的博客来计算执行者和执行者内存的数量。

情景1 - - 执行者数量= 17, - 执行者核心数= 3

结果 - 通过SNS发送到SQS的总消息= 120万

情景2-- - 执行者数量= 17, - 执行者核心数= 10

结果 - 通过SNS发送到SQS的总消息= 440万

情景3-- - 执行者数量= 17, - 执行者核心数= 20

结果 - 通过SNS发送到SQS的总消息= 850万

情景4-- - 执行者数量= 17, - 执行者核心数= 30

结果 - 通过SNS发送到SQS的总消息= 1270万

如何解释这个结果?

您能告诉我如何通过增加执行程序核心数量来提高应用程序性能吗?

0 个答案:

没有答案