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

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 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


相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
2月前
|
人工智能 Serverless
《触手可及,函数计算玩转 AI 大模型》体验评测
《触手可及,函数计算玩转 AI 大模型》体验评测
|
1月前
|
人工智能 弹性计算 运维
触手可及:阿里云函数计算助力AI大模型的评测
阿里云推出的面向AI服务器的功能计算(Functional Computing, FC),专为AI应用提供弹性计算资源。该服务支持无服务器部署、自动资源管理和多语言支持,极大简化了AI应用的开发和维护。本文全面评测了FC for AI Server的功能特性、使用体验和成本效益,展示了其在高效部署、成本控制和安全性方面的优势,并通过具体应用案例和改进建议,展望了其未来发展方向。
130 4
|
30天前
|
人工智能 弹性计算 运维
《触手可及,函数计算玩转 AI 大模型》解决方案深度评测
本次评测全面评估了《触手可及,函数计算玩转 AI 大模型》解决方案,涵盖实践原理理解、文档清晰度、部署体验、优势展现及生产环境适用性。方案通过函数计算实现AI大模型的高效部署,但模型加载、性能指标和示例代码等方面需进一步细化。文档需增加步骤细化、FAQ、性能指标和示例代码,以提升用户体验。部署体验方面,建议明确依赖库、权限配置和配置文件模板。优势展现方面,建议增加性能对比、案例研究和成本分析。此外,为满足实际生产需求,建议增强高可用性、监控与日志、安全性和扩展性。
38 2
|
1月前
|
人工智能 弹性计算 自然语言处理
《触手可及,函数计算玩转 AI 大模型》解决方案体验与部署评测
在AI技术快速发展的背景下,大模型正推动各行业的智能化转型。企业为抓住机遇,纷纷寻求部署AI大模型以满足特定业务需求。阿里云函数计算凭借按量付费、卓越弹性和快速交付等优势,为企业提供了高效、安全的AI大模型部署方案。本文将详细介绍阿里云函数计算的技术解决方案及其在文生文、图像生成和语音生成等领域的应用实例,展示其在降低成本、提高效率和增强灵活性方面的显著优势。
|
2月前
|
人工智能 弹性计算 运维
评测报告:《触手可及,函数计算玩转 AI 大模型》解决方案
本次评测聚焦于《触手可及,函数计算玩转 AI 大模型》这一解决方案。该方案旨在通过云上的函数计算服务来简化AI大模型的部署过程,使得用户可以更加便捷地利用这些强大的AI能力。本报告将从实践原理的理解、部署体验、优势展现以及实际应用等四个方面进行综合评估。
65 15
|
1月前
|
人工智能 Serverless 文件存储
《触手可及,函数计算玩转 AI 大模型》解决方案评测报告
该解决方案介绍如何利用阿里云函数计算快速部署AI大模型,通过无服务器架构、文件存储NAS和专有网络VPC实现模型持久化存储与私有网络访问。尽管整体描述清晰,但在技术细节上仍有待完善,建议增加架构图帮助理解。阿里云提供了详尽的部署文档,涵盖从选择模板到调用验证的全过程,适合新手用户。但在VPC和NAS配置上需更多示例指导,并优化报错信息提示。此方案展示了函数计算在降低成本、提升弹性和加速交付方面的优势,但可通过具体性能指标和案例进一步强化。适用于快速探索AI大模型效果、缺乏GPU资源的开发者及希望简化技术门槛的企业。未来版本应在细节描述和优势量化上继续优化。
|
2月前
|
消息中间件 关系型数据库 Serverless
函数计算驱动多媒体文件处理解决方案评测
在本次评测中,我有幸体验了函数计算驱动的多媒体文件处理解决方案。
70 28
|
2月前
|
人工智能 运维 大数据
阿里云“触手可及,函数计算玩转 AI 大模型”解决方案评测报告
阿里云“触手可及,函数计算玩转 AI 大模型”解决方案评测报告
97 2
|
2月前
|
Serverless
解决方案评测|函数计算驱动多媒体文件处理获奖名单公布
解决方案评测|函数计算驱动多媒体文件处理获奖名单公布!!
|
2月前
|
运维 监控 Serverless
评测报告 - 函数计算驱动多媒体文件处理
官方文档为使用函数计算处理多媒体文件提供了详尽的指导,涵盖从创建函数到监控的全流程,并附有多种编程语言的代码示例。尽管文档对初学者友好,但在高级配置、故障排查及API应用等方面仍有提升空间。实际体验中,函数计算表现出色,尤其在高并发场景下,具备自动扩展能力,确保高性能和稳定性,且按使用付费模式有助于降低成本。然而,部署过程中仍需注意环境变量配置、超时设置及依赖管理等问题,部分高级功能需更多技术支持。
45 4