全托管一站式大规模数据处理和分析Serverless平台 | EMR Serverless Spark 评测

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储OSS,敏感数据保护2.0 200GB 1年
函数计算FC,每月15万CU 3个月
简介: 【7月更文挑战第6天】全托管一站式大规模数据处理和分析Serverless平台 | EMR Serverless Spark 评测

全托管一站式大规模数据处理和分析Serverless平台 | EMR Serverless Spark 评测

在开始今天的评测之前,当然还是老规矩,先来介绍一下我们今天上场的主角 EMR Serverless Spark,那么什么是 EMR Serverless Spark 呢?

EMR Serverless Spark

关于EMR Serverless Spark,以下是一段来自官方的定义EMR Serverless Spark是一款云原生,专为大规模数据处理和分析而设计的全托管Serverless产品。它为企业提供了一站式的数据平台服务,包括任务开发、调试、调度和运维等,极大地简化了数据处理的全生命周期工作流程。使用EMR Serverless Spark,企业可以更专注于数据分析和价值提炼,提高工作效率。

对于企业来说,就是数据处理和分析的工作交给 EMR Serverless Spark 平台做,企业可以更专注于由数据分析所带来的价值提炼

image.png

了解了 EMR Serverless Spark 的主要方向之后,我们再来看一张图来了解 EMR Serverless Spark 的应用场景,也只有有了落地场景的产品才是好产品,不是吗

image.png

好了,关于 EMR Serverless Spark  的产品定位以及应用场景有了基础的了解之后,下面我们开始上手体验。由于本次官方的测评文档中并没有相关的建议体验场景,那么这里我给大家推荐一下官方 EMR Serverless Spark  产品文档中的几大实践教程来体验,教程地址:https://help.aliyun.com/zh/emr/emr-serverless-spark/use-cases/?spm=a2c4g.11186623.0.0.360717035nMMaF

image.png

考虑到前面几种应该有小伙伴已经操作过了,这里我就选择最后一个带大家来一起感受一下来自全托管一站式大规模数据处理和分析Serverless平台 | EMR Serverless Spark 的魅力吧。

在PySpark程序中使用Python三方库

PySpark与 Python、EMR Serverless Spark

今天的实操主题就是在PySpark程序中使用Python三方库,那么在实操之前先来介绍一下 PySpark与 Python、EMR Serverless Spark的小关系。 PySpark作业往往需要借助Python第三方库来增强数据处理和分析能力,通过将这些三方库集成到Serverless Spark环境中,从而确保作业在分布式计算场景下的稳定性和灵活性。

简单的关系捋明白了,下面再来说说今天操作会用到的Conda和PEX这两种方法:【Conda是一个跨平台的包管理和环境管理系统,它允许用户轻松创建、保存、加载和切换多个环境,每个环境都可以拥有独立的Python版本和库依赖。PEX (Python EXecutable) 是一个工具,它可以将Python应用及其所有依赖打包进一个可执行文件中。

说完这些下面就开始准备资源了。

资源准备

工作空间是Serverless Spark的基本单元,用于管理任务、成员、角色和权限。所有的任务开发都需要在具体的工作空间内进行。因此,在开始任务开发之前,我们需要先创建工作空间。

创建工作空间

创建工作空间,那么首先登录E-MapReduce 控制台:https://emr-next.console.aliyun.com/?spm=a2c4g.11186623.0.0.13665d79vhK9Wr#/region/cn-hangzhou/resource/all/overview

image.png

点击【Spark】在授权页面依次完成授权

image.png

授权操作比较简单,对于【同意授权】按钮,直接点击即可完成授权,对于【去授权】在点击后的跳转页面点击【同意授权】就可以了

image.png

完成授权后,在【Spark】页面就可以看到【创建工作空间】按钮

image.png

在弹出的创建工作空间页面输入工作空间名称【emr-2024】点击如图所示红框,准备基础资源

image.png

点击【开通DLF】跳转到开通DLF页面

image.png

点击【免费开通数据湖构建】后在跳转的页面完成 数据湖构建 的开通,在数据湖构建 控制台:https://dlf.console.aliyun.com/cn-hangzhou/home

image.png

点击【开通】完成访问云资源的授权操作

image.png

此时的 数据湖构建 才算开通成功

image.png

再次回到创建工作空间页面,可以看到刚才开通成功的 数据湖构建 DLF 已经自动选择成功,下面需要到 OSS 控制台创建工作空间基础路径

image.png

进入OSS控制台:https://oss.console.aliyun.com/bucket?spm=5176.21192661.0.0.39b09037mwSVpD

image.png

点击【创建Bucket】,输入Bucket 名称【emr-oss-2024】,地域选择【杭州】

image.png

开启 HDFS 服务后选择【完成创建】

image.png

在弹出的页面勾选协议完成Bucket创建

image.png

再次回到创建工作空间页面,完成工作空间的创建

image.png

上传资源文件到OSS

单击kmeans.pykmeans_data.txt,下载所需资源文件,并上传到OSS空间,进入到OSS控制台:https://oss.console.aliyun.com/bucket?spm=a2c6h.13046898.publish-article.12.120f6ffaHS2Z1w,上传 脚本kmeans.py和数据文件kmeans_data.txt 到OSS 平台

image.png

点击【上传文件】完成上传,上传成功后如图

image.png

云服务器ECS

创建云服务器ECS实例,进入到 ECS控制台:https://ecs.console.aliyun.com/home ,点击【创建我的ECS】

image.png

选择【按量付费】,【杭州】地域,服务器规格选择基础规格,操作系统选择 Alibaba Cloud Linux 3系统

image.png

其他的默认,服务器密码选择【自定义密码】

image.png

实例名称修改为【emr-ecs-2024】勾选协议后选择【确认下单】完成云服务器ECS的创建

image.png

云服务器ECS创建成功

image.png

这里需要用到 443端口,如果默认安全组没有开通这个端口需要自行去安全组开通

image.png


使用Conda

点击云服务器ECS控制台的实例后面操作按钮【远程连接】输入服务器密码,登录 ECS实例

image.png

执行如下命令安装Miniconda

wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh

./Miniconda3-latest-Linux-x86_64.sh -b
source miniconda3/bin/activate

执行如下命令构建使用Python 3.8和numpy的Conda环境

conda create -y -n pyspark_conda_env -c conda-forge conda-pack numpy python=3.8
conda activate pyspark_conda_env
conda pack -f -o pyspark_conda_env.tar.gz

上传 pyspark_conda_env.tar.gz 到OSS

由于pyspark_conda_env.tar.gz 文件目前在云服务器ECS上,因此需要先找到  pyspark_conda_env.tar.gz 的路径 /root

image.png

点击 ECS 终端连接的【文件】找到/root 下面需要下载的文件 pyspark_conda_env.tar.gz

image.png

点击下载文件,等待文件下载成功之后上传到 OSS 的Bucket列表下

image.png

上传到OSS控制台之后如图

image.png


开发并运行任务

进入 EMR 工作空间,点击工作空间名称进入工作空间

image.png

单击【任务开发】-【新建】

image.png

输入任务名称,选择任务类型

image.png

参数参照文档中的要求

image.png

按照文档中填写如图内容后,点击【运行】

image.png

点击【运行】按钮后,在【运行记录】点击【详情】

image.png

等待任务显示运行【已成功】

image.png

点击【日志探查】就可以看到相关的运行日志了

image.png

到这里,使用Conda完成 PySpark类型 Application(批任务)的操作就完成了。下面开始使用PEX

使用PEX

使用PEX的操作流程与使用 Conda 的流程是一致的,区别是命令以及基础工具的不同,执行命令 安装PEX与wheel工具

pip3.8 install --user pex wheel \
  --trusted-host mirrors.cloud.aliyuncs.com \
  -i http://mirrors.cloud.aliyuncs.com/pypi/simple/

下载所需库的wheel文件至临时目录

pip3.8 wheel -w /tmp/wheel \
  pyspark==3.3.1 pandas==1.5.3 pyarrow==15.0.1 numpy==1.24.4 \
  --trusted-host mirrors.cloud.aliyuncs.com \
  -i http://mirrors.cloud.aliyuncs.com/pypi/simple/

生成PEX文件

pex -f /tmp/wheel --no-index \
  pyspark==3.3.1 pandas==1.5.3 pyarrow==15.0.1 numpy==1.24.4 \
  -o spark331_pandas153.pex

上传 spark331_pandas153.pex 到OSS

同样的办法,将服务器ECS生成的spark331_pandas153.pex 下载到本地然后上传到 OSS Bucket中。

开发并运行任务

这一步的操作和使用 Conda操作基本也是相同的,只是在任务参数有所不同,如下

image.png

后续的操作补充任务参数后,点击【运行】按钮等待任务运行成功操作是一致的。

释放资源

实验操作完成之后,如果是本次测评使用,后续暂时没有使用场景的话,建议先释放资源比较合适,防止造成不必要的资源浪费。

释放ECS

首先释放云服务器ECS 资源,进入ECS控制台:https://ecs.console.aliyun.com/server/region/cn-hangzhou  选择创建的ECS 实例,点击右侧更多操作,选择【释放】

image.png

在弹出页面选择【立即释放】

image.png

点击【下一步】后勾选协议点击【确定】输入短信验证码完成云服务器ECS 实例的释放

image.png

删除OSS

登录OSS控制台:https://oss.console.aliyun.com/overview 点击【Bucket列表】选择刚才创建的 Bucket 名称

image.png

进入 Bucket 详情页面,先删除文件,然后删除 Bucket

image.png

点击【删除Bucket】在页面选择【立即删除】

image.png

点击【立即删除】输入 Bucket名称之后给出错误提示

image.png

然后根据错误提示重新检查了 Bucket 文件发现还有未删除的文件

image.png

删除Bucket 列表下所有文件后再次尝试删除Bucket,删除成功。

删除EMR工作空间

进入到EMR 工作空间列表页面:https://emr-next.console.aliyun.com/?spm=a2c4g.11186623.0.0.13665d79vhK9Wr#/region/cn-hangzhou/resource/all/serverless/spark/list

点击工作空间右侧【删除】

image.png

输入工作空间名称后点击【确定】完成工作空间的删除

image.png

操作体验

这里来说一下本次关于 使用全托管一站式大规模数据处理和分析Serverless平台 | EMR Serverless Spark  来在PySpark程序中使用Python三方库 的操作,整体上操作文档写的算比较详细了,只是在操作过程中,关于创建工作空间时会需要用到 数据源构建DLF 和 OSS存储文档中没有详细写明操作步骤,不过好在这两项操作比较简单容易理解


在后续的使用Conda 构建使用Python 3.8和numpy的Conda环境后生成的文件

pyspark_conda_env.tar.gz

是在云服务器ECS上的,文档没有说明如何去 云服务器ECS上下载打包好的文件,这里我也是通过一段摸索才最终找到了下载云服务器ECS 到本地的方法,如下

image.png

这一点希望可以在文档中补充出来,毕竟从云服务器ECS上下载文件的操作比较少,因此可能不太会注意这点。后续其他的的操作,包括操作的便携性,数据开发体验整个过程都是很不错的,只需要配置具体的脚本,EMR Serverless Spark就可以根据您创建的任务稳定的运行,这样就大大降低了企业开发人员的学习成本和操作成本,是比较友好的。

既然EMR Serverless Spark为企业提供了一站式的数据平台服务,那么基于大数据分析, EMR Serverless Spark 可以与以下数据产品联动组合,如图

image.png


相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
5月前
|
SQL 分布式计算 Serverless
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
鹰角网络为应对游戏业务高频活动带来的数据潮汐、资源弹性及稳定性需求,采用阿里云 EMR Serverless Spark 替代原有架构。迁移后实现研发效率提升,支持业务快速发展、计算效率提升,增强SLA保障,稳定性提升,降低运维成本,并支撑全球化数据架构部署。
524 56
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
|
5月前
|
分布式计算 运维 搜索推荐
立马耀:通过阿里云 Serverless Spark 和 Milvus 构建高效向量检索系统,驱动个性化推荐业务
蝉妈妈旗下蝉选通过迁移到阿里云 Serverless Spark 及 Milvus,解决传统架构性能瓶颈与运维复杂性问题。新方案实现离线任务耗时减少40%、失败率降80%,Milvus 向量检索成本降低75%,支持更大规模数据处理,查询响应提速。
279 57
|
1月前
|
DataWorks 数据挖掘 Serverless
阿里云EMR Serverless StarRocks 内容合集
阿里云 EMR StarRocks 提供存算分离架构,支持实时湖仓分析,适用于多种 OLAP 场景。结合 Paimon 与 Flink,助力企业高效处理海量数据,广泛应用于游戏、教育、生活服务等领域,显著提升数据分析效率与业务响应速度。
126 0
|
5月前
|
存储 运维 Serverless
千万级数据秒级响应!碧桂园基于 EMR Serverless StarRocks 升级存算分离架构实践
碧桂园服务通过引入 EMR Serverless StarRocks 存算分离架构,解决了海量数据处理中的资源利用率低、并发能力不足等问题,显著降低了硬件和运维成本。实时查询性能提升8倍,查询出错率减少30倍,集群数据 SLA 达99.99%。此次技术升级不仅优化了用户体验,还结合AI打造了“一看”和“—问”智能场景助力精准决策与风险预测。
504 69
|
3月前
|
人工智能 分布式计算 DataWorks
一体系数据平台的进化:基于阿里云 EMR Serverless Spark 的持续演进
本文介绍了一体系汽配供应链平台如何借助阿里云EMR Serverless Spark实现从传统Hadoop平台向云原生架构的迁移。通过融合高质量零部件供应与创新互联网科技,一体系利用EMR Serverless Spark和DataWorks构建高效数据分析体系,解决大规模数据处理瓶颈。方案涵盖实时数据集成、Lakehouse搭建、数仓分层设计及BI/ML应用支持,显著提升数据处理性能与业务响应速度,降低运维成本,为数字化转型奠定基础。最终实现研发效率提升、运维压力减轻,并推动AI技术深度整合,迈向智能化云原生数据平台。
142 4
|
3月前
|
分布式计算 运维 监控
Fusion 引擎赋能:流利说如何用阿里云 Serverless Spark 实现数仓计算加速
本文介绍了流利说与阿里云合作,利用EMR Serverless Spark优化数据处理的全过程。流利说是科技驱动的教育公司,通过AI技术提升用户英语水平。原有架构存在资源管理、成本和性能等痛点,采用EMR Serverless Spark后,实现弹性资源管理、按需计费及性能优化。方案涵盖数据采集、存储、计算到查询的完整能力,支持多种接入方式与高效调度。迁移后任务耗时减少40%,失败率降低80%,成本下降30%。未来将深化合作,探索更多行业解决方案。
172 1
|
7月前
|
SQL 存储 OLAP
阿里云 EMR Serverless StarRocks3.x,极速统一的湖仓新范式
阿里云 EMR Serverless StarRocks3.x,极速统一的湖仓新范式
260 0
|
7月前
|
SQL 分布式计算 Serverless
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
163 0
|
5月前
|
存储 分布式计算 OLAP
百观科技基于阿里云 EMR 的数据湖实践分享
百观科技为应对海量复杂数据处理的算力与成本挑战,基于阿里云 EMR 构建数据湖。EMR 依托高可用的 OSS 存储、开箱即用的 Hadoop/Spark/Iceberg 等开源技术生态及弹性调度,实现数据接入、清洗、聚合与分析全流程。通过 DLF 与 Iceberg 的优化、阶梯式弹性调度(资源利用率提升至70%)及倚天 ARM 机型搭配 EMR Trino 方案,兼顾性能与成本,支撑数据分析需求,降低算力成本。
392 59

热门文章

最新文章