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

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 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 架构模式
相关文章
|
10天前
|
SQL 分布式计算 Serverless
阿里云 EMR Serverless Spark 版正式开启商业化
阿里云 EMR Serverless Spark 版正式开启商业化,内置 Fusion Engine,100% 兼容开源 Spark 编程接口,相比于开源 Spark 性能提升300%;提供 Notebook 及 SQL 开发、调试、发布、调度、监控诊断等一站式数据开发体验!
53 3
阿里云 EMR Serverless Spark 版正式开启商业化
|
17天前
|
缓存 前端开发 JavaScript
|
2月前
|
SQL 大数据 数据管理
EMR Serverless StarRocks体验测评
【8月更文挑战第14天】EMR Serverless StarRocks体验测评
40 0
|
3月前
|
分布式计算 Serverless Spark
【开发者评测】E-MapReduce Serverless Spark获奖名单
E-MapReduce Serverless Spark获奖名单正式公布!
170 1
|
2月前
|
机器学习/深度学习 Cloud Native Serverless
Serverless 架构问题之CNCF基金会托管的CloudEvents项目内容如何解决
Serverless 架构问题之CNCF基金会托管的CloudEvents项目内容如何解决
28 0
|
3月前
|
分布式计算 监控 Serverless
E-MapReduce Serverless Spark 版测评
E-MapReduce Serverless Spark 版测评
11587 10
|
3月前
|
弹性计算 分布式计算 运维
迟来的EMR Serverless Spark评测报告
本文是一篇关于阿里云EMR Serverless Spark产品评测的文章,作者分享了使用体验和理解。EMR Serverless Spark是阿里云提供的全托管、一站式的Spark数据计算平台,简化了大数据处理流程,让用户专注于数据分析。文章提到了产品的主要优势,如快速启动、弹性伸缩、高资源利用率和低成本。
212 8
|
2月前
|
分布式计算 Serverless 数据处理
EMR Serverless Spark 实践教程 | 通过 Apache Airflow 使用 Livy Operator 提交任务
Apache Airflow 是一个强大的工作流程自动化和调度工具,它允许开发者编排、计划和监控数据管道的执行。EMR Serverless Spark 为处理大规模数据处理任务提供了一个无服务器计算环境。本文为您介绍如何通过 Apache Airflow 的 Livy Operator 实现自动化地向 EMR Serverless Spark 提交任务,以实现任务调度和执行的自动化,帮助您更有效地管理数据处理任务。
158 0
|
3月前
|
运维 数据挖掘 Serverless
深度解析阿里云EMR Serverless StarRocks在OLAP数据分析中的应用场景
阿里云EMR Serverless StarRocks作为一款高性能、全场景覆盖、全托管免运维的OLAP分析引擎,在企业数据分析领域展现出了强大的竞争力和广泛的应用前景。通过其卓越的技术特点、丰富的应用场景以及完善的生态体系支持,EMR Serverless StarRocks正逐步成为企业数字化转型和智能化升级的重要推手。未来随着技术的不断进步和应用场景的不断拓展我们有理由相信EMR Serverless StarRocks将在更多领域发挥重要作用为企业创造更大的价值。
|
20天前
|
人工智能 自然语言处理 Serverless
阿里云函数计算 x NVIDIA 加速企业 AI 应用落地
阿里云函数计算与 NVIDIA TensorRT/TensorRT-LLM 展开合作,通过结合阿里云的无缝计算体验和 NVIDIA 的高性能推理库,开发者能够以更低的成本、更高的效率完成复杂的 AI 任务,加速技术落地和应用创新。
下一篇
无影云桌面