我有集群有以下配置

节点数 - 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

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

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

场景1 - - Actuator 数量= 17, - Actuator 核心数= 3

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

场景2-- - Actuator 数量= 17, - Actuator 核心数= 10

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

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

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

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

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

如何解释这个结果?

您能否通过增加执行程序核心数量让我知道应用程序性能如何提高?