当前位置: 首页 > news >正文

AWS EMR Serverless

AWS概述
EMR Serverless

简介

在AWS概述一文中简单介绍过AWS EMR, 它是AWS提供的云端大数据平台。借助EMR可以设置集群以便在几分钟内使用大数据框架处理和分析数据。创建集群可参考官方文档:Amazon EMR 入门。但集群创建之后需要一直运行,用户需要管理集群的生命周期,包括启动、配置、监控和终止集群。因此EMR集群模式适用于需要长时间运行作业或者需要直接访问底层基础设施进行调试和运维的场景。

相比之下,EMR Serverless模式是一种无需管理集群的无服务器模式。用户只需提交作业,EMR Serverless会自动处理资源的部署、扩展和管理,按需提供计算资源。好处是无需管理集群,用户只需为实际使用的计算和存储资源付费,计算资源在作业完成之后会自动释放。下文将介绍如何创建EMR Serverless并提交作业。

创建EMR Serverless

首先需要一个Studio工作台,直接搜索EMR进入控制台,选择左侧EMR Serverless菜单,导航到landing页,点击“Get started”后会弹出提示窗口:
在这里插入图片描述

确认后AWS会创建一个默认的Studio和关联的Workspace,接下来会让你继续创建Application。这一步可以先停止,回退到工作台的dashboard也可以创建Application。创建Application时需要注意初始化选项,如果使用默认值,则应用的硬件资源基本是没有限制的。因此推荐使用自定义设置,将初始化资源容量和Application limit按照需要进行限制,防止使用过多资源:
在这里插入图片描述
Application创建完成之后,AWS会自动创建一个role,但这个role是aws管理的,不能做任何修改。
我们还需要创建一个新的role,用于执行job。步骤如下:

  • 先创建一个信任策略,如trust-policy.json
{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": {"Service": "emr-serverless.amazonaws.com"},"Action": "sts:AssumeRole"}]
}

该策略允许EMR Serverless服务(emr-serverless.amazonaws.com) 承担(assume)该角色。

  • 创建role
aws iam create-role --role-name EMRServerlessJobRole --assume-role-policy-document file://trust-policy.json

执行成功会返回角色的详细信息,包括ARN。

  • 创建角色策略1
aws iam create-policy --policy-name EMRServerlessS3AndGlueAccessPolicy --policy-document file://emr-custom-polocy.json# 策略文件内容
{"Version": "2012-10-17","Statement": [{"Sid": "ReadAccessForEMRSamples","Effect": "Allow","Action": ["s3:GetObject","s3:ListBucket"],"Resource": ["*"]},{"Sid": "FullAccessToOutputBucket","Effect": "Allow","Action": ["s3:PutObject","s3:GetObject","s3:ListBucket","s3:DeleteObject"],"Resource": ["*"]},{"Sid": "GlueCreateAndReadDataCatalog","Effect": "Allow","Action": ["glue:GetDatabase","glue:CreateDatabase","glue:GetDataBases","glue:CreateTable","glue:GetTable","glue:UpdateTable","glue:DeleteTable","glue:GetTables","glue:GetPartition","glue:GetPartitions","glue:CreatePartition","glue:BatchCreatePartition","glue:GetUserDefinedFunctions"],"Resource": ["*"]}]
}
  • 将角色策略附加给角色
aws iam attach-role-policy --role-name EMRServerlessJobRole --policy-arn arn:aws:iam::123456789:policy/EMRServerlessS3AndGlueAccessPolicy

创建S3桶

创建S3桶以便存储任务的输入和输出文件。下载官方文档Amazon EMR 入门提供的数据集和任务脚本,将其上传到所创建的S3 bucket中:
在这里插入图片描述

运行任务

现在Application和所需的role与S3资源都已经准备好了,可以运行任务了。

点击提交任务按钮,在任务界面输入Job的名称,选择上文创建好的角色,并从S3中选中任务脚本,指定脚本参数如下:

在这里插入图片描述

提交任务,稍等几分钟后即可看到运行结果。打开S3的输出文件夹可以看到具体处理后的结果信息。

提交任务时还可以选择demo任务,这是Spark自带的job示例。该job会输出Pi的值,无需S3和任务参数。

参考资料

[1].https://docs.aws.amazon.com/zh_cn/emr/latest/EMR-Serverless-UserGuide/getting-started.html

相关文章:

  • 23种设计模式——创建型模式
  • JavaEE——声明式事务管理案例:实现用户登录
  • 打开C# 大门:Hallo, World!
  • 【Pycharm】功能介绍
  • 【全网最简单的解决办法】vscode中点击运行出现仅当从 VS 开发人员命令提示符处运行 VS Code 时,cl.exe 生成和调试才可用
  • TypeScript基础教程学习
  • 算法训练营day52
  • Chapter 6 Frequency Response of Amplifiers
  • 代码随想录算法训练营第五十四 | ● 392.判断子序列 ● 115.不同的子序列
  • SpringBoot引入WebSocket依赖报ServerContainer no avaliable
  • centos官方yum源不可用 解决方案(随手记)
  • OBS 录屏软件:录制圆形头像画中画,设置卡通人像(保姆级教程,有步骤图,建议收藏)
  • 首届IEEE RAS峰会,为什么大厂阿里、字节、腾讯都参加了?
  • 让GNSSRTK不再难【第一天】
  • **《Linux/Unix系统编程手册》读书笔记24章**
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • 2017-08-04 前端日报
  • Angular数据绑定机制
  • docker python 配置
  • javascript 总结(常用工具类的封装)
  • JavaScript服务器推送技术之 WebSocket
  • Java多线程(4):使用线程池执行定时任务
  • Laravel 菜鸟晋级之路
  • Netty 4.1 源代码学习:线程模型
  • REST架构的思考
  • Spring Cloud Feign的两种使用姿势
  • 程序员该如何有效的找工作?
  • 七牛云假注销小指南
  • 如何利用MongoDB打造TOP榜小程序
  • 我看到的前端
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 栈实现走出迷宫(C++)
  • 自定义函数
  • UI设计初学者应该如何入门?
  • ​TypeScript都不会用,也敢说会前端?
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • (4)STL算法之比较
  • (poj1.2.1)1970(筛选法模拟)
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (自适应手机端)响应式服装服饰外贸企业网站模板
  • .bat批处理(六):替换字符串中匹配的子串
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .net Stream篇(六)
  • .net wcf memory gates checking failed
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • .NET开发者必备的11款免费工具