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

本文涉及的产品
对象存储 OSS,20GB 3个月
函数计算FC,每月15万CU 3个月
对象存储 OSS,内容安全 1000 次 1年
简介: 【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


相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
2月前
|
SQL 分布式计算 Serverless
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
鹰角网络为应对游戏业务高频活动带来的数据潮汐、资源弹性及稳定性需求,采用阿里云 EMR Serverless Spark 替代原有架构。迁移后实现研发效率提升,支持业务快速发展、计算效率提升,增强SLA保障,稳定性提升,降低运维成本,并支撑全球化数据架构部署。
257 56
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
|
2月前
|
分布式计算 运维 搜索推荐
立马耀:通过阿里云 Serverless Spark 和 Milvus 构建高效向量检索系统,驱动个性化推荐业务
蝉妈妈旗下蝉选通过迁移到阿里云 Serverless Spark 及 Milvus,解决传统架构性能瓶颈与运维复杂性问题。新方案实现离线任务耗时减少40%、失败率降80%,Milvus 向量检索成本降低75%,支持更大规模数据处理,查询响应提速。
165 57
|
2月前
|
存储 运维 Serverless
千万级数据秒级响应!碧桂园基于 EMR Serverless StarRocks 升级存算分离架构实践
碧桂园服务通过引入 EMR Serverless StarRocks 存算分离架构,解决了海量数据处理中的资源利用率低、并发能力不足等问题,显著降低了硬件和运维成本。实时查询性能提升8倍,查询出错率减少30倍,集群数据 SLA 达99.99%。此次技术升级不仅优化了用户体验,还结合AI打造了“一看”和“—问”智能场景助力精准决策与风险预测。
247 69
|
1月前
|
人工智能 运维 安全
阿里云 Serverless 助力海牙湾构建弹性、高效、智能的 AI 数字化平台
海牙湾(G-Town)是一家以“供应链+场景+技术+AI”为核心驱动力的科技公司,致力于为各行业提供数字化转型解决方案。通过采用阿里云Serverless架构,解决了弹性能力不足、资源浪费与运维低效的问题。SAE全托管特性降低了技术复杂度,并计划进一步探索Serverless与AI结合,推动智能数字化发展。海牙湾业务覆盖金融、美妆、能源等领域,与多家知名企业建立战略合作,持续优化用户体验和供应链决策能力,保障信息安全并创造可量化的商业价值。未来,公司将深化云原生技术应用,助力更多行业实现高效数字化转型。
166 19
|
4月前
|
存储 分布式计算 物联网
美的楼宇科技基于阿里云 EMR Serverless Spark 构建 LakeHouse 湖仓数据平台
美的楼宇科技基于阿里云 EMR Serverless Spark 建设 IoT 数据平台,实现了数据与 AI 技术的有效融合,解决了美的楼宇科技设备数据量庞大且持续增长、数据半结构化、数据价值缺乏深度挖掘的痛点问题。并结合 EMR Serverless StarRocks 搭建了 Lakehouse 平台,最终实现不同场景下整体性能提升50%以上,同时综合成本下降30%。
422 58
|
4月前
|
机器学习/深度学习 分布式计算 大数据
阿里云 EMR Serverless Spark 在微财机器学习场景下的应用
面对机器学习场景下的训练瓶颈,微财选择基于阿里云 EMR Serverless Spark 建立数据平台。通过 EMR Serverless Spark,微财突破了单机训练使用的数据规模瓶颈,大幅提升了训练效率,解决了存算分离架构下 Shuffle 稳定性和性能困扰,为智能风控等业务提供了强有力的技术支撑。
251 15
|
3月前
|
存储 人工智能 Serverless
AI 短剧遇上函数计算,一键搭建内容创意平台
AI 短剧遇上函数计算,一键搭建内容创意平台
|
4月前
|
SQL 存储 OLAP
阿里云 EMR Serverless StarRocks3.x,极速统一的湖仓新范式
阿里云 EMR Serverless StarRocks3.x,极速统一的湖仓新范式
|
4月前
|
SQL 分布式计算 Serverless
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
|
2月前
|
人工智能 开发框架 安全
Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速
作为云上托管 MCP 服务的最佳运行时,函数计算 FC 为阿里云百炼 MCP 提供弹性调用能力,用户只需提交 npx 命令即可“零改造”将开源 MCP Server 部署到云上,函数计算 FC 会准备好计算资源,并以弹性、可靠的方式运行 MCP 服务,按实际调用时长和次数计费,欢迎你在阿里云百炼和函数计算 FC 上体验 MCP 服务。
296 29

热门文章

最新文章