aws emr是否适合ha spark直接流应用程序

lymnna71  于 2021-05-18  发布在  Spark
关注(0)|答案(1)|浏览(490)

我正在尝试在aws emr中运行apachespark直接流应用程序。应用程序接收数据并发送到aws kinesis,需要一直运行。
如果核心节点被杀死,它就会停止。但是当核心节点被替换时,它应该自我修复。
现在我注意到:当我杀死一个核心节点(模拟一个问题)时,它被aws emr替代。但是应用程序停止工作(不再向kinesis发送任何输出),并且在中也不会继续工作,除非我重新启动它。
我在日志中看到的是:

ERROR YarnClusterScheduler: Lost executor 1 on ip-10-1-10-100.eu-central-1.compute.internal: Slave lost

这是意料之中的。但后来我发现:

20/11/02 13:15:32 WARN TaskSetManager: Lost task 193.1 in stage 373.0 (TID 37583, ip-10-1-10-225.eu-central-1.compute.internal, executor 2): FetchFailed(null, shuffleId=186, mapIndex=-1, mapId=-1, reduceId=193, message=
org.apache.spark.shuffle.MetadataFetchFailedException: Missing an output location for shuffle 186

这些只是警告,但应用程序不再产生任何输出。
所以我停止应用程序并重新启动它。现在它又产生了输出。
我的问题是:aws emr是否适合自我修复应用程序,比如我需要的那个?还是我用错工具了?如果是,如何在更换核心节点后继续使用spark应用程序?

hjzp0vay

hjzp0vay1#

它建议对核心示例使用on-demand
同时使用任务示例来利用spot示例。
看一看
amazon emr-当我们有核心节点时,任务节点需要什么?
主节点、核心节点和任务节点上的aws文档

相关问题