我的群集有以下配置
节点数 - 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万
如何解释这个结果?
您能告诉我如何通过增加执行程序核心数量来提高应用程序性能吗?