写点什么

在 Amazon EMR 中构建由 Spark 支持的 Amazon SageMaker Notebook

  • 2019-10-31
  • 本文字数:3016 字

    阅读完需:约 10 分钟

在 Amazon EMR 中构建由 Spark 支持的 Amazon SageMaker Notebook

在 2017 年 AWS re:Invent 上介绍的 Amazon SageMaker 可以为数据科学和机器学习工作流程提供完全托管服务。Amazon SageMaker 的其中一个重要组成部分是功能强大的 Jupyter Notebook 接口,该接口可用来构建模型。通过将 Notebook 实例连接到 Amazon EMR 上运行的 Apache Spark 集群,可以增强 Amazon SageMaker 的功能。Amazon EMR 是一个用于处理大量数据的托管框架。通过将二者结合,可以基于大量数据构建模型。


Spark 是一个可以快速处理大数据的开源集群计算框架,并且包含适用于机器学习工作负载的 MLlib。为了方便在 Amazon SageMaker Notebook 与 Spark EMR 集群之间建立连接,需要使用 Livy。Livy 是一个开源 REST 接口,无需 Spark 客户端便可从任何位置与 Spark 集群交互。


本博文将向您介绍如何运行 Spark EMR 集群,如何配置必要的安全组以便在 Amazon SageMaker 与 EMR 之间进行通信,以及如何打开 Amazon SageMaker Notebook,最后还会介绍如何使用 Livy 将该 Notebook 连接到 EMR 上的 Spark。此设置将使用 PySpark、PySpark3、Spark 和 SparkR notebook。

设置 EMR Spark 和 Livy

打开 AWS 管理控制台,然后从屏幕顶部的服务菜单中选择“分析”部分下的 EMR。选择创建集群。转到高级选项 (位于顶部,其旁边是 Create Cluster – Quick Options (创建集群 – 快速选项)),取消选中所有选项。然后,专门选中 LivySpark。选择 Next



网络下方,选择您的 VPC。在本博文示例中,我的 VPC 名为 sagemaker-spark。此外,您还需要记下您的“EC2 子网”,因为稍后需要该信息。



选择下一步,然后选择创建集群。可以根据需要随意将您认为可能适合的其他任何选项加入集群中,例如,向集群添加用于对节点进行远程访问的密钥对,或者是自定义名称。


现在,您需要为您的 Spark 集群的节点获取私有 IP 地址。


依次选择服务EMR。等到您的集群被标记为正在等待 (绿色) 后选择所创建的集群。选择 Hardware (硬件) 选项卡。



选择您的主 ID,然后向右滚动,找到私有 IP 地址。保存该信息供稍后使用。在本博文示例中,我的私有 IP 地址为 10.0.0.65,但您的地址会有所不同。


设置安全组并打开端口

下面,我们需要设置安全组并打开相关端口,这样一来,Amazon SageMaker Notebook 方能通过端口 8998 上的 Livy 与 Spark 集群进行通信。


在控制台中,依次选择服务EC2。在左侧导航窗格中,选择安全组。然后,选择创建安全组按钮。


设置安全组名称 (我的是 sagemaker-notebook)、描述以及用于您的 EMR 集群的 VPC (我的是 sagemaker-spark)。



选择创建


这将创建安全组,使我们能够仅打开此组中的实例的端口。我们仍需要在 ElasticMapReduce-master 组中打开该端口。


仍然在安全组中,获取您的 SageMaker notebook 安全组的组 ID。我的是 sg-35610640,但您的将会有所不同。保存该值供稍后使用。



我们需要修改在创建 EMR 集群时自动创建的 EMR 主安全组。选择您的 ElasticMapReduce-master 组,然后选择入站选项卡。选择编辑按钮,然后选择添加规则按钮。


我们需要在端口 8998 上创建自定义 TCP 规则,然后将安全组 ID 设置为我们先前收集的 SageMaker notebook 安全组中的“组 ID”。请记住,我的是 sg-35610640。以下示例是完成操作后字段的显示情况:



选择保存按钮。现在,您已经打开了重要端口,因此,您的 SageMaker Notebook 实例可以通过 Livy 与您的 EMR 集群进行通信。

设置 SageMaker Notebook

现在,我们可以使用通过 Livy 运行的 EMR Spark 集群以及相关端口。接下来,我们来启动和运行 Amazon SageMaker Notebook 实例。


依次选择服务Amazon SageMaker。选择 Create Notebook Instance (创建 Notebook 实例) 按钮。


您需要设置 Notebook instance name (Notebook 实例名称),然后选择 Notebook instance type (Notebook 实例类型)。请注意,Notebook 实例名称有一些命名约束:最多包含 63 个字母数字字符,可以包含连字符但不能包含空格,并且在 AWS 区域中您的帐户内必须是唯一的。您还需要设置一个 IAM 角色,该角色具有 AmazonSageMakerFullAccess 权限,并且还有权访问任何必要的 Amazon Simple Storage Service (Amazon S3) 存储桶。您需要指定该角色对哪些存储桶具有访问权限,但可以让 Amazon SageMaker 为您生成该角色。



之后,您需要确保设置的 Notebook 实例与 EMR 集群位于相同的 VPC 中 (我的是 sagemaker-spark)。另外,还要选择与 EMR 集群相同的子网 (之前在创建 EMR 时,您应该已经记下了该信息)。最后,将您的安全组设置为之前为 Notebook 实例创建的组 (我的是 sagemaker-notebook)。


选择 Create Notebook Instance (创建 Notebook 实例)



耐心等待,直到 EMR 完成集群配置,SageMaker Notebook 状态显示 InService (正在服务)

将 Notebook 连接到 Amazon EMR

现在,我们的 EMR Spark 集群和 Amazon SageMaker Notebook 均已运行,但它们彼此还无法通信。下一步是在 SageMaker 中设置 Sparkmagic,以便它知道如何找到我们的 EMR 集群。


仍然在 Amazon SageMaker 控制台中,转到 Notebook Instances (Notebook 实例),然后在已配置的实例上选择打开


在 Jupyter 控制台中,依次选择 New (新)Terminal (终端)



键入以下命令:




然后,您需要编辑 config.json,并将“localhost”的各个实例替换为之前使用的 EMR 主实例的私有 IP。我的是 10.0.0.65,之前我们看到过,但您的会有所不同!


我使用了以下命令:


  • nano config.json

  • ctrl+\

  • localhost

  • <您的 EMR 主实例的私有 IP>

  • a

  • ctrl+x

  • y

  • enter


这样应该会替换三个内核凭证的“url”字段中 localhost 的三个实例。您可以根据自己的喜好随意使用任何编辑器,然后保存更改。



继续操作之前,我们应该先测试通过 Livy 与 EMR 的连接。为此,我们运行以下命令 (将 EMR 主实例私有 IP 替换为您实例的 IP 地址):


  • curl <EMR 主实例私有 IP>:8998/sessions


您的输出应类似以下内容:



如果出现错误,可能意味着您的端口尚未在安全组中打开,因此,建议您返回检查这些设置!


我们将终端关闭。键入 exit,然后关闭浏览器选项卡和终端。打开 Jupyter 的选项卡,依次选择 New (新)Sparkmagic (PySpark) 以打开 PySpark notebook。为了进行确认,我们依次选择内核重启以重新启动内核。



让我们在第一个单元中使用以下命令来测试连接:


  • %%info


同时键入 shiftenter 以运行该单元,显示的输出应该如下所示:



恭喜您!Sparkmagic 内核现在已在您的 Jupyter Notebook 中运行,因而可以使用 Livy 与您的 EMR Spark 集群进行通信。


作者介绍


Thomas Hughes 是 AWS 专业服务组织的一名数据科学家。他获得了加州大学圣巴巴拉分校的博士学位,解决了社会科学、教育学和广告学方面的诸多难题。目前正致力于解决机器学习在遇到大数据时出现的一些最为棘手的问题。



Stefano Stefani 是 AWS 的首席高级工程师,也是 AWS 众多服务领域的主管技术专家:Amazon SimpleDB、Amazon DynamoDB、Amazon Redshift 和 Amazon Aurora。目前,他在以下 Amazon AI 领域担任相同的职位:Amazon Lex、Amazon Rekognition、Amazon SageMaker、Amazon Transcribe 等。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/build-amazon-sagemaker-notebooks-backed-by-spark-in-amazon-emr/


2019-10-31 08:00722

评论

发布
暂无评论
发现更多内容

新能源汽车品牌加速出海 赛力斯“硬实力”助力全球化布局

科技热闻

基于云原生的物联大数据智能服务

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

关于接口可维护性的一些建议 | 京东云技术团队

京东科技开发者

京东云 接口设计 企业号 5 月 PK 榜

NineData:高效高质量的Redis可视化管理工具

NineData

数据库 redis 开发工具 Redis 可视化工具 NineData

阿里技术总监纯手打的内部手册《MySQL笔记》真是太硬核了

Java MySQL 数据库

GitHub项目免费教你提示工程,全中文教学,小白也能懂

Openlab_cosmoplat

人工智能 GitHub 开源社区

MySQL触发器Trigger加载以及目前局限

GreatSQL

MySQL greatsql greatsql社区

ZBrush 2023 v2023.1.1最新激活版下载 三维数字雕刻和绘画

Rose

ZBrush 2023安装教程 ZBrush 2023下载地址 ZBrush 2023破解版 角色建模 特效制作

魔改xxl-job,彻底告别手动配置任务!

Java你猿哥

Java 分布式 定时任务 ssm Job

开发者反响热烈,阿里云免费试用产品增至 80 多款!

云布道师

阿里云

探究 JavaScript 前端热点面试题(三):让你在面试中游刃有余!

沉浸式趣谈

大数据拥抱云原生 HashData助力资管数字化转型

酷克数据HashData

B 站构建实时数据湖的探索和实践

Apache Flink

大数据 flink 实时计算

如果你项目使用了MyBatis-Plus你一定要用它

Java你猿哥

Java mybatis ssm Mybatis Plus

一个同事喜欢查别人的BUG,截图发工作大群,还喜欢甩锅怎么办?

Java你猿哥

Java 程序员 ssm 编码 java编程

SVN管理工具Cornerstone入门教程

Rose

cornerstone 4破解 SVN管理 Cornerstone教程 Mac版Cornerstone许可证

PullTube for Mac使用技巧:快速导出铃声、缩略图和短片

Rose

Mac视频下载器 PullTube下载 PullTube使用教程

涅槃重生,BitKeep如何闯出千万用户新起点

鳄鱼视界

IDP 与 DevOps平台:相似之处与关键差异

SEAL安全

IdP 平台工程 内部开发者平台

记录内网Docker启动Stable-Diffusion遇到的几个坑

华为云开发者联盟

开发 华为云 华为云开发者联盟 企业号 5 月 PK 榜

吃透这份406页的Java修炼宝典,直接送你进入一线大厂

Java java面试 Java八股文 Java面试题 Java面试八股文

Python从0到1丨带你了解图像直方图理论知识和绘制实现

华为云开发者联盟

Python 人工智能 华为云 华为云开发者联盟 企业号 5 月 PK 榜

日常开发中,程序员如何提升技术?这13个点一定要做到!

Java你猿哥

Java ssm java基础 日常开发 java 编程

CrossOver 让你在Mac上轻松运行 PC 游戏

Rose

虚拟机 CrossOver2023 Mac电脑运行win CrossOver Mac下载

揭秘RLHF;可商用开源LLM列表;领域编译器的前世今生

OneFlow

人工智能 深度学习 RLHF

Git 代码分支管理 | 京东云技术团队

京东科技开发者

git 京东云 企业号 5 月 PK 榜

日常开发中,程序员如何提升技术?这13个点一定要做到!

程序员小毕

Java 程序员 程序人生 后端 架构师

清华大佬首推"中高级Java程序员进阶小册",程序员架构进阶必备

Java你猿哥

Java 算法 Spring Boot JVM java面试

涨薪40K!来自阿里内部绝学的“微服务架构手册”

Java你猿哥

架构 微服务 微服务架构 ssm 架构师

SecureCRT中文乱码怎么办?解决 SecureCRT中文乱码方法

Rose

SecureCRT下载 SecureCRT激活版 SecureCRT许可证 SecureCRT中文乱码

阿里P8级架构师十年心血终成Java核心精讲与网络协议文档;

Java java面试 Java八股文 Java面试题 Java面试八股文

在 Amazon EMR 中构建由 Spark 支持的 Amazon SageMaker Notebook_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章