EMR Serverless Spark 实践教程 | 通过 EMR Serverless Spark 提交 PySpark 流任务

简介: 在大数据快速发展的时代,流式处理技术对于实时数据分析至关重要。EMR Serverless Spark提供了一个强大而可扩展的平台,它不仅简化了实时数据处理流程,还免去了服务器管理的烦恼,提升了效率。本文将指导您使用EMR Serverless Spark提交PySpark流式任务,展示其在流处理方面的易用性和可运维性。

在大数据快速发展的时代,流式处理技术对于实时数据分析至关重要。EMR Serverless Spark提供了一个强大而可扩展的平台,它不仅简化了实时数据处理流程,还免去了服务器管理的烦恼,提升了效率。本文将指导您使用EMR Serverless Spark提交PySpark流式任务,展示其在流处理方面的易用性和可运维性。


前提条件

已创建工作空间,详情请参见创建工作空间


操作流程

步骤一:创建实时数据流集群并产生消息

  1. 在EMR on ECS页面,创建包含Kafka服务的实时数据流集群,详情请参见创建集群
  2. 登录EMR集群的Master节点,详情请参见登录集群
  3. 执行以下命令,切换目录。
cd /var/log/emr/taihao_exporter


  1. 执行以下命令,创建Topic。
# 创建名为taihaometrics的Topic,分区数10,副本因子2。
kafka-topics.sh --partitions 10 --replication-factor 2 --bootstrap-server core-1-1:9092 --topic taihaometrics --create


  1. 执行以下命令,发送消息。
# 使用kafka-console-producer发送消息到taihaometrics Topic。
tail -f metrics.log | kafka-console-producer.sh --broker-list core-1-1:9092 --topic taihaometrics


步骤二:新增网络连接

  1. 进入网络连接页面。
  1. 在EMR控制台的左侧导航栏,选择EMR Serverless > Spark
  2. Spark页面,单击目标工作空间名称。
  3. EMR Serverless Spark页面,单击左侧导航栏中的网络连接
  1. 网络连接页面,单击新增网络连接
  2. 新增网络连接对话框中,配置以下信息,单击确定

参数

说明

连接名称

输入新增连接的名称。例如,connection_to_emr_kafka。

专有网络

选择与EMR集群相同的专有网络。

如果当前没有可选择的专有网络,请单击创建专有网络,前往专有网络控制台创建,详情请参见创建和管理专有网络

交换机

选择与EMR集群部署在同一专有网络下的相同交换机。

如果当前可用区没有交换机,请单击虚拟交换机,前往专有网络控制台创建,详情请参见创建和管理交换机

状态显示为已成功时,表示新增网络连接成功。


步骤三:为EMR集群添加安全组规则

  1. 获取集群节点交换机的网段。
    您可以在节点管理页面,单击节点组名称,查看关联的交换机信息,然后登录专有网络管理控制台,在交换机页面获取交换机的网段。


  1. 添加安全组规则。
  1. 集群管理页面,单击目标集群的集群ID。
  2. 基础信息页面,单击集群安全组后面的链接。
  3. 在安全组规则页面,单击手动添加,填写端口范围和授权对象,然后单击保存

参数

说明

端口范围

填写9092端口。

授权对象

填写前一步骤中获取的指定交换机的网段。

重要

为防止被外部的用户攻击导致安全问题,授权对象禁止填写为0.0.0.0/0。


步骤四:上传JAR包至OSS

上传kafka.zip中的所有JAR包至OSS,上传操作可以参见简单上传


步骤五:上传资源文件

  1. 在EMR Serverless Spark页面,单击左侧导航栏中的资源上传
  2. 资源上传页面,单击上传文件
  3. 上传文件对话框中,单击待上传文件区域选择pyspark_ss_demo.py文件。


步骤六:新建并启动流任务

  1. 在EMR Serverless Spark页面,单击左侧的任务开发
  2. 单击新建
  3. 输入任务名称,新建一个Application(流任务) > PySpark类型的任务,然后单击确定
  4. 在新建的任务开发中,配置以下信息,其余参数无需配置,然后单击保存

参数

说明

主Python资源

选择前一个步骤中在资源上传页面上传的pyspark_ss_demo.py文件。

引擎版本

Spark的版本,详情请参见引擎版本介绍

运行参数

EMR集群core-1-1节点的内网IP地址。您可以在EMR集群的节点管理页面的Core节点组下查看。

Spark配置

Spark的配置信息。本文示例如下。

spark.jars oss://<yourBucket>/kafka-lib/commons-pool2-2.11.1.jar,oss://<yourBucket>/kafka-lib/kafka-clients-2.8.1.jar,oss://<yourBucket>/kafka-lib/spark-sql-kafka-0-10_2.12-3.3.1.jar,oss://<yourBucket>/kafka-lib/spark-token-provider-kafka-0-10_2.12-3.3.1.jar
spark.emr.serverless.network.service.name connection_to_emr_kafka

说明

spark.jars用于指定Spark任务运行时需要加载的外部JAR包路径。本文示例为您步骤四中上传至OSS的路径,请您根据实际情况替换。


  1. 单击发布
  2. 发布任务对话框中,单击确定
  3. 启动流任务。
  1. 单击前往运维
  2. 单击启动


步骤七:查看日志

  1. 单击日志探查页签。
  2. Driver日志列表中,单击stdOut.log
    在打开的日志文件中,您可以看到应用程序执行的相关信息以及返回的结果。


相关文档

  1. EMR Serverless Spark 版官网:https://www.aliyun.com/product/bigdata/serverlessspark
  2. 产品控制台:https://emr-next.console.aliyun.com/
  3. 产品文档:https://help.aliyun.com/zh/emr/emr-serverless-spark/
  4. PySpark 批任务的开发流程示例:PySpark任务快速入门



EMR Serverless Spark 在 2024年5月正式开启公测,在公测期间可以免费使用最高 100 CU 计算资源,欢迎试用。如果您在使用 EMR Serverless Spark 版的过程中遇到任何疑问,可钉钉扫描以下二维码加入钉钉群(群号:58570004119)咨询。

目录
相关文章
|
8月前
|
SQL 分布式计算 Serverless
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
鹰角网络为应对游戏业务高频活动带来的数据潮汐、资源弹性及稳定性需求,采用阿里云 EMR Serverless Spark 替代原有架构。迁移后实现研发效率提升,支持业务快速发展、计算效率提升,增强SLA保障,稳定性提升,降低运维成本,并支撑全球化数据架构部署。
854 56
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
|
8月前
|
分布式计算 运维 搜索推荐
立马耀:通过阿里云 Serverless Spark 和 Milvus 构建高效向量检索系统,驱动个性化推荐业务
蝉妈妈旗下蝉选通过迁移到阿里云 Serverless Spark 及 Milvus,解决传统架构性能瓶颈与运维复杂性问题。新方案实现离线任务耗时减少40%、失败率降80%,Milvus 向量检索成本降低75%,支持更大规模数据处理,查询响应提速。
447 57
|
DataWorks 数据挖掘 Serverless
阿里云EMR Serverless StarRocks 内容合集
阿里云 EMR StarRocks 提供存算分离架构,支持实时湖仓分析,适用于多种 OLAP 场景。结合 Paimon 与 Flink,助力企业高效处理海量数据,广泛应用于游戏、教育、生活服务等领域,显著提升数据分析效率与业务响应速度。
300 0
|
6月前
|
人工智能 分布式计算 DataWorks
一体系数据平台的进化:基于阿里云 EMR Serverless Spark 的持续演进
本文介绍了一体系汽配供应链平台如何借助阿里云EMR Serverless Spark实现从传统Hadoop平台向云原生架构的迁移。通过融合高质量零部件供应与创新互联网科技,一体系利用EMR Serverless Spark和DataWorks构建高效数据分析体系,解决大规模数据处理瓶颈。方案涵盖实时数据集成、Lakehouse搭建、数仓分层设计及BI/ML应用支持,显著提升数据处理性能与业务响应速度,降低运维成本,为数字化转型奠定基础。最终实现研发效率提升、运维压力减轻,并推动AI技术深度整合,迈向智能化云原生数据平台。
234 4
|
6月前
|
分布式计算 运维 监控
Fusion 引擎赋能:流利说如何用阿里云 Serverless Spark 实现数仓计算加速
本文介绍了流利说与阿里云合作,利用EMR Serverless Spark优化数据处理的全过程。流利说是科技驱动的教育公司,通过AI技术提升用户英语水平。原有架构存在资源管理、成本和性能等痛点,采用EMR Serverless Spark后,实现弹性资源管理、按需计费及性能优化。方案涵盖数据采集、存储、计算到查询的完整能力,支持多种接入方式与高效调度。迁移后任务耗时减少40%,失败率降低80%,成本下降30%。未来将深化合作,探索更多行业解决方案。
362 1
|
2月前
|
人工智能 运维 Kubernetes
Serverless 应用引擎 SAE:为传统应用托底,为 AI 创新加速
在容器技术持续演进与 AI 全面爆发的当下,企业既要稳健托管传统业务,又要高效落地 AI 创新,如何在复杂的基础设施与频繁的版本变化中保持敏捷、稳定与低成本,成了所有技术团队的共同挑战。阿里云 Serverless 应用引擎(SAE)正是为应对这一时代挑战而生的破局者,SAE 以“免运维、强稳定、极致降本”为核心,通过一站式的应用级托管能力,同时支撑传统应用与 AI 应用,让企业把更多精力投入到业务创新。
454 30
|
3月前
|
存储 人工智能 Serverless
函数计算进化之路:AI 应用运行时的状态剖析
AI应用正从“请求-响应”迈向“对话式智能体”,推动Serverless架构向“会话原生”演进。阿里云函数计算引领云上 AI 应用 Serverless 运行时技术创新,实现性能、隔离与成本平衡,开启Serverless AI新范式。
476 12
|
6月前
|
存储 编解码 Serverless
Serverless架构下的OSS应用:函数计算FC自动处理图片/视频转码(演示水印添加+缩略图生成流水线)
本文介绍基于阿里云函数计算(FC)和对象存储(OSS)构建Serverless媒体处理流水线,解决传统方案资源利用率低、运维复杂、成本高等问题。通过事件驱动机制实现图片水印添加、多规格缩略图生成及视频转码优化,支持毫秒级弹性伸缩与精确计费,提升处理效率并降低成本,适用于高并发媒体处理场景。
337 0
|
8月前
|
人工智能 开发框架 安全
Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速
作为云上托管 MCP 服务的最佳运行时,函数计算 FC 为阿里云百炼 MCP 提供弹性调用能力,用户只需提交 npx 命令即可“零改造”将开源 MCP Server 部署到云上,函数计算 FC 会准备好计算资源,并以弹性、可靠的方式运行 MCP 服务,按实际调用时长和次数计费,欢迎你在阿里云百炼和函数计算 FC 上体验 MCP 服务。
726 30