处理连续流数据的流处理作业 - Amazon EMR

处理连续流数据的流处理作业

EMR Serverless 中的流处理作业是一种作业模式,可让您近乎实时地分析和处理流数据。这些长时间运行的作业会轮询流数据,并在数据到达时持续处理结果。流处理作业最适合需要实时数据处理的任务,如近实时分析、欺诈检测和推荐引擎。EMR Serverless 流处理作业提供了优化功能,如内置作业弹性、实时监控、增强的日志管理以及与流连接器的集成。

以下是流处理作业的一些用例:

  • 近实时分析:Amazon EMR Serverless 中的流处理作业让您可以近乎实时地处理流数据,以便对日志数据、传感器数据或点击流数据等连续数据流执行实时分析,从而根据最新信息获得见解并及时做出决策。

  • 欺诈检测:在分析数据流并发现可疑模式或异常情况时,可使用流处理作业对金融交易、信用卡业务或在线活动进行近乎实时的欺诈检测。

  • 推荐引擎:流处理作业可以处理用户活动数据并更新推荐模型。这样可根据行为和偏好进行个性化的实时推荐。

  • 社交媒体分析:流处理作业可以处理推文、评论和帖子等社交媒体数据,让组织近乎实时地监控趋势、分析情感和管理品牌声誉。

  • 物联网(IoT)分析:流处理作业可以处理和分析来自物联网设备、传感器和连接机器的高速数据流,以便运行异常检测、预测性维护和其他物联网分析用例。

  • 点击流分析:流处理作业可以处理和分析来自网站或移动应用程序的点击流数据。使用此类数据的企业可以进行分析,以深入了解用户行为、提供个性化用户体验、优化营销活动。

  • 日志监控和分析:流处理作业还可以处理来自服务器、应用程序和网络设备的日志数据。为您提供异常检测、故障排除、系统运行状况和性能。

主要优势

EMR Serverless 中的流处理作业会自动提供作业弹性,这是以下因素组合的结果:

  • 自动重试:EMR Serverless 会自动重试任何失败的作业,无需手动输入。

  • 可用区(AZ)弹性:如果原始可用区出现问题,EMR Serverless 会自动将流处理作业切换到运行状况良好的可用区。

  • 日志管理:

    • 日志轮换:为了更有效地管理磁盘存储,EMR Serverless 会定期轮换长时间流处理作业的日志。这样可防止可能占用磁盘空间的日志累积。

    • 日志压缩:帮助您有效管理和优化托管持久性中的日志文件。在使用托管 Spark History Server 时,压缩还可以改善调试体验。

支持的数据来源和数据接收器

EMR Serverless 可与多个输入数据来源和输出数据接收器配合使用:

  • 支持的输入数据来源:Amazon Kinesis Data Streams、Amazon Managed Streaming for Apache Kafka 和自我管理的 Apache Kafka 集群。默认情况下,Amazon EMR 7.1.0 及更高版本包含 Amazon Kinesis Data Streams 连接器,因此您无需构建或下载任何其他软件包。

  • 支持的输出数据接收器:AWS Glue Data Catalog 表、Amazon S3、Amazon Redshift、MySQL、PostgreSQL Oracle、Oracle、Microsoft SQL、Apache Iceberg、Delta Lake 和 Apache Hudi。

注意事项和限制

使用流处理作业时,请记住以下注意事项和限制。

  • Amazon EMR 7.1.0 及更高版本支持流处理作业。

  • EMR Serverless 期望流处理作业能长时间运行,因此无法设置执行超时来限制作业的运行时间。

  • 流处理作业仅与 Spark 引擎兼容,该引擎构建在结构化流框架之上。

  • EMR Serverless 会无限期重试流处理作业,您无法自定义最大尝试次数。如果失败的尝试次数超过了每小时窗口内的阈值,则会自动包含防抖动功能。默认阈值为一小时内 5 次失败尝试。您可以将此阈值配置为 1 到 10 次尝试。有关更多信息,请参阅作业弹性

  • 流处理作业具有检查点来保存运行时状态和进度,因此 EMR Serverless 可以从最新的检查点恢复流处理作业。有关更多信息,请参阅 Apache Spark 文档中的使用检查点从故障中恢复