在AWS EMR中使用结构化流式处理时,建议应该将EMR集群配置为可伸缩的,这样可以在处理任务执行时进行自动缩放。但是,如果流式处理程序需要保持长时间运行并实时处理数据,则选择始终运行的常驻集群也是一种可行的解决方案。在此过程中,我们可以考虑以下步骤:
在EMR控制台或使用AWS CLI创建一个持久的EMR集群(例如:标准EMR集群/Spark EMR集群)并选择运行结构化流式处理的软件配置选项。
使用Spark结构化流式处理API编写流式处理应用。
使用以下命令将编写的应用程序提交到始终运行的EMR常驻集群:
spark-submit --class [class name] \
--master yarn \
--deploy-mode client \
--num-executors [num_of_executors] \
--executor-cores [num_of_cores] \
--executor-memory [memory_size] \
/path/to/jar [application_parameters]
运行在EMR常驻集群上的Spark应用可以使用以下命令监控:
yarn application -kill [application_id]
请注意,始终运行的EMR集群会持续收取费用,因此需要相应的预算。