EMR 产品使用入门 | 学习笔记

本文涉及的产品
对象存储 OSS,20GB 3个月
日志服务 SLS,月写入数据量 50GB 1个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 快速学习 EMR 产品使用入门

开发者学堂课程【E-MapReduce 入门课程EMR 产品使用入门】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/759/detail/13334


EMR 产品使用入门


内容介绍

一、前言

二、E-MapReduce(EMR) 介绍

三、EMR 组件介绍

四、EMR 云上特性

五、课程回顾


一、前言

欢迎参加 EMR 训练营,今天分享的主题是 EMR 产品使用入门,现在的 EMR 研发上面有这样的一个产品就是 JindoFS 湖加速的一个产品,它主要是深度整合云上的数据湖存储,加速引擎计算,然后使用数据湖里面计算和分析达到一个非常高的效率,今天主要是跟大家分享一下以下内容。首先是 EMR 的介绍,然后跟大家一起看一下EMR 的产品的形态和架构,另外还有其他的发展历史;然后第二个就是 EMR 各种组件的介,还有就是 EMR 作为阿里云上的一个大数据产品,它对云上的生态进行一个适配,就是说它有哪些个云上的特性。然后最后是课程的一个回顾。


二、E-MapReduce(EMR) 介绍

首先来看一下 EMR 的产品介绍, EMR 是构建于阿里云 ECS 上的开源大数据平台,早期 EMR 主要是集成了  spark、hadoop 以及 Fink 比较常见的开源大数据, EMR 作为一个 Pass 产品出现在平台上面,这个产品里面就是一般是说有 ias 、pais 以及sais ,比如说定制的功能可能比较少,主要是用产品提供的功能。

EMR 是这样一个 pass  产品,就是它把  ECS  是会和用户联系在一起,它属于用户资源,主要是让用户去管理 ECS,这里的 EMR 也不再是 hadoop 集群,它有六大集群类型,分别是 Hadoop集群、Kafka集群、Zookeeper集群、Data Science集群、Druid集群以及 DataFlow集群。

从早期开源式 Pass 集群到现在已经发展成为了基于开源的大数据+ AI 的平台。

对于阿里云的E-MapReduce(EMR) 发展历程,最开始就是提供云上 Hadoop 集群的一个提升的能力,然后就是这种集群不断的用户实验的增加,然后有一些需求就是说 Hadoop经常有很多作业,然后就怎样去管理集群上的作业并且进行调度。后面就是说对管理和调度之上也有管控平台,它就是常用的一些指标报警,然后还有所有的组件都支持高可用,像它的这种对接源生态,还有认证授权和审计都在这个平台上面。  

EMR 后期也是上智能化高性能发展,产品上面就可以直接进行一个操作,就比如说队列,就是还有一些台灯的控制。高性能就是在底层上面的优化,这样就会达到一个极致的性能。在 EMR 上面已经逐渐发展成为大数据+AI这样的一站式平台。在 EMR 平台的架构上,底层是基于 ECS 和 ACK 的在 EMR 之上的,这个里面就是包括了 EMR 支持的大部分的一些组件,到这里可能有些产品也是不断的迭代,可能新的组件不断的加进来。

在平台架构上可以看到数据集成有Sqoop 、DataX 、Flume、Logstash 、SLS 以及Kafka,在数据存储上有 HDFS、 OSS 以及 JindoFS ,计算引擎也是非常多种多样,就比如平常的 MR 、Hive 、Sqark 、Flink 以及TensorFL ow 等等。

对于 Storm 是 EMR 提供的,它跟用户更加的贴近。在平台架构上也具有监控报警、认证权限(Kerberos Ranger)以及智能运维。 EMR 是基于开源大数据组件就是构建了一个丰富的大数据平台。  

EMR 里面的集群结构主要是有以下几个,就是可以看到中间是一个集群,集群里面有 EMR Header,它主要存放的是管理的节点。  

EMR 还有一种 Task 节点,它相对于 core 节点的区别就是上面没有存储常规数据的,所以说它可以更加灵活的申请和释放,当自身资源不够的时候可以申请这个节点,然后把计算能力快速的扩展上去,除了这一个集群里面有三种节点以外,可以看到就是还有 EMR Gateway 这样的节点类型,它是属于给一个用户去使用的,中间用户是可以通过 Gateway 向集群索要相应的作业,这就意味着 配置也都是打通的,大数据里面会设计很多开发还有一些资源的消耗,这些作业跑去哪里呢?就是跑到这个Gateway 上面。


三、EMR 组件介绍

然后来看一下EMR 里面的组件介绍,刚才在那个架构图里看到提供一些组件?

现在以使用的场景来看EMR 相关的组件,就是去看这些年组建怎么的看了一下,首先就是说大数据平台是要存放海量数据的,所以海量数据存储主要是使用到了 HDFS 、JindoFS+OSS这种成本方案,然后数据的存储是怎么进行一个转换呢?

数据包括数据的导入、抽取以及转换,可能就是这种 ETL 这样一个过程,就是可以使用 JindoDistCP、 Sqoop 以及Sqark这种方式,然后就是数据来了以后会有实时查询和先分析的这种需求,需要使用EMR 里面这种计算查询的组件,比如 Hive 、Spark 、Presto 以及 Impala......然后还有就是有一些交互式分析的需求,比如说可以在一个 web UI 上直接输入这种查询就会有好多的结果。同时可以看一下分布式自动场景,这些总线是怎么使用的?这个存储片的主要是解决这样大数据里一个海量数据是如何存储的?

可以来先看一下这个EMR 里面最主要的这几种,首先是 Apache HDFS,对于EMR 里面的 FSS 是经过社区版本,在社区版本的基础之上进行了一些优化,把那些社区的一些问题支持到一个100pb的级别。

JindoFS  是构建于 OSS 之上进行一个数据服务加速,OSS 应该是做一个数据湖的一个底层存储,JindoFS  是作为一个数据湖加速的方案,它把 OSS 作为底层存储之后再进行门面式的访问,它对接的计算达到了非常好的查询和分析的效率,然后OSS 就是提供一个阿里云的基本存储服务。

首先来看一下Apache HDFS 有怎样的组件结构,这个是Apache HDFS 的一个架构图,可以看到 HDFS 是提供的源数据服务,下面是开发了很多 DN 去存储数据。HDFS 作为一个单点存在的,早期的HDFS 是一个单点的存在,所以如果一旦说 DN 出现了问题就会导致整个集群都不能进行访问了,所以这是一个高可用的架构,可以看到有两个 nn 的,这两个是如何进行协作呢?

它们主要是通过某一个组件进行选举,选出相应的东西之后就向客户端提供服务,同时保持着同步,一旦说出现了问题,它就可以及时接管客户端的请求并继续管理这些nn ,它会写一些日志,把这些日志代写上去,然后去做内存的同步。现在就是经过 EMR 的优化,它现在已经支持到100pb了,HDFS 其实用起来还是比较方便的,但是就是随着用户使用量的不断的增加,可能在1pb以下式不太需要调整的,但是一旦上到一定的规模就要不断的调整,当问题都被暴露出来也是需要一个专家级别的调用,这些问题在 EMR 上得到一个很好的改善,所以针对HDFS 这些问题也是开发JindoFS+OSS  这种存储,JindoFS是构建于 OSS 之上,然后service 也是管理源数据,它可以把源数据及时同步到阿里云的 OTS 服务上就可以做到一个快速的恢复。

HDFS 是一个大规模集群的时候,它可能是小时级别的,但是把数据投到 OTS 上才能够做到秒级分钟级别的恢复。Storage 就是进行一个数据缓存,然后把数据都保存在Storage上,然后还有一份数据是写的 OSS 上面的,这样就是说本地的数据不怕丢失,比如说 HDFS 是有副本的管理的。在 ETL篇当中主要是解决数据从哪里来的问题, EMR 组件里面提供的是  SQOOP 和 Kafka 上,它们把其他数据源的数据导入进来,可以设置远程的一个日志来进行远程消费。

那还有就是见解已经存在集群或者数据层把数据拷贝过来,这时候就需要用一个分公式的文件同步工具,还有就是在Apache Spark 里边存在 Spark Streaming、Delta实时数仓,它们也是解决了把一些数据实时同步过来。

这里就是说因为其他的也可能会有一些吗,所以后期可以介绍 JindoDistCP 这样的功能,知道开源大数据的HDFS 会有很多限制,比如说文件数量多了以后,可能这个dcp  就是因为一开始有分片的时候可能h会卡住了,过了一段时间提上来以后其实它并不是很好用的,所以就做了JindoDistCP 用来解决开源dcp对节点和内存的消耗还有对其他问题进行一系列的优化,开发简单易用的分布式文件拷贝工具,主要帮助一些客户对 HDFS 、 OSS 以及其他数据源之间的数据迁移,还有JindoDistCP深度结合OSS 对象存储的特性,实现No-Rename 拷贝,大大缩短离线数据入湖迁移时间消耗。

在查询分析篇当中,主要是说大数据核心什么需求就来自于查询分析,这也是很多用户日常使用的几个组件。

Hive 是Hadoop 最早的SQL 引擎,所以说这个 Hive 就是最早解决 SQL 的方案,它可以把SQL语句翻译成 EMR 作业,这样就可以在执行SQL语句,快速把集群计算调度起来进行查询分析。最为最常用的 Spark SQL 基本上是兼容 Hive SQL 的,其次就是它性能非常的高。 Impala是 Cloudera 的 SQL 引擎,所以说它的效率也是非常高的,对于 Presto 也是 Hive 的进化版本。在这里面的这几个,由于 Hive  是时间最早的,它也就有一个贡献就是定义了相当于源数据的基础,所有的引擎基本上都需要打通 Hive 源数据的需求。

在 Hive 当中,它首先用的是 HiveServer2接上 CUL 的终端,把一些请求接收过来,内部通过对SQL 的定义与优化,查询用户上面的数据, 这里面的执行阶段其实已经不再是 EMR 的,这个阶段不断地发展,后面其实由 Hive 的相关组件运行的,这种相较于之前的 EMR 在性能方面有了很大的优化的。

在 Spark SQL 当中,它基于 SQL 原生的 API  上面进行了一个封装,它底层通过 DataFrame API 和 DataSource API 对接各种数据,通过某些个 API 提供了可以兼容 Hive 的产品。在 Impala 当中,它的性能是比较快的性能,但是它受限于它的内体语言,所有的跟大数据相关的都是通过 DNI 这种方式去这种实现的,所以说它虽然实现起来属于效率比较高,但是说它数据源其实是比较有限的,很长一段时间的时候就一个格式。

在 Presto 当中,它其实就是 Presto CLI 连接 Presto  Coordinator,然后把用户的请求接收过来,之后再发送到 Presto Worker 上去进行分布式的计算, Presto Worker 是自己独占进行资源调度使用计算资源。然后其实可以看到Presto 性能是比较接近 Impala 的,数据源是比较多的。在交互篇和 Web UI 当中, EMR 提供这样的一个 Web UI 主要是提升操作效率,降低使用门槛。

提升效率就是说早期所需要登陆的 SSH 提交这种作业和相关查询,在 SSH 的窗口里面查看结果,这样其实是很方便的,所以说在 Hadoop 中带 UI 交互打通了页面上的所有访问。下面来看一下 HUE 的使用,他主要是负责交互查询的产品,在 HUE 的查询编辑器里输入一个 SQL ,点击一下箭头就可以把产品结果进行返回,所以使用起来也是比较方便的。

在 Knox 当中,对于 EMR 的一个页面,然后它提供了原生页面的打通,然后这个 Knox 实现的这样一个功能。


四、EMR 云上特性

然后来看一下 EMR 里面云上的特性,EMR 里面集群特性就包括以下几个方面,在服务管理方面,EMR 产品提供一个可视化集群管理控制台;在集群监控方面,它包括事件消息报警体系、指标监控,还有一些服务状态的一些基本重要的自动分析,还有钉钉和短信的报警;在作业管理方面,它里面支持的就是 DAG ,方便的多种作业管理,更好的弹性资源结合,以实现更好的一个调度;在资源管理方面, EMR 通过计算存储分离,这样就会做到计算资源和存储资源的弹性使用,同时按量和包月使用的方式灵活的去选择。

首先可以看一下服务管理, EMR 里面的 HDFS 的配置通过页面上的点击可以进行修改配置,保存在集群上;在集群监控的界面可以看到很多资源的统计、资源的状态以及各种信息详情;在作业管理界面存在着各种各样的作业,然后进行编排,它们之间有相互的依赖,也是一个非常好用的功能;在资源管理的界面上, EMR 对于复杂的东西进行了一个简单开发的 UI ,集群里 yang 的资源通过交互式方式进行一个配置。

然后一起来演示一下EMR的几个功能,现在来看一下功能演示,然后主要演示一下刚才谈到的这几个功能,这个是大家打开EMR的控制台就是这个网址,然后就可以看到这样的一个页面,

如果真没有EMR集群,这里可以快速的创建 EMR 集群,EMR 集群现在是处于一个包年包月的打折优惠中,如果是采用包年包月的方式去购买这个集群,费用是和购买  ECS  一样的,相当于零折优惠。然后就可以创建集群了,看到这样的一个页面大家就可以根据自己的需要选择特定的版本和特定的组件,然后集群类型也是六大集群类型,下一步选择硬件的配置,然后这里有是否可高可用,还有就是硬件配置,硬件配置可以根据自己的需求,然后选择所需要的类型。这个是软件版本号,然后这里是可以快速的点击这个安全组,然后给安全组以后就把自己的登陆集群,如果也是一些公网IP,大家也可以把安全组自己的IP加进去,这里是一个交换机和 APC 的一些信息,

来看一下这个EMR 的集群管理功能,集群管理功能就是说可以控制所有服务的运行状态,包括服务的启停、配置的修改以及配置管理的功能。

可以看到页面里面就是包含监控数据,有一些最常用的一些大数据,中间位置是包含组件和它的数量,然后这里可以控制服务的一个启动,还有这个配置在这里可以看到是说相关的配置,这里都是可以直接进行一个配置的。然后保存好以后点一个自动更新,然后也可以看到这样的一个配置就已经操作成功了,然后它的状态就是在历史操作里,可以看到这个,现在它已经在所有的节点里进行一个执行了,这时候你看到所有的节点也执行完成了,这样就是一个配置修改。

然后也可以控制这个服务的启停,如果是一打重启就会造成了数据在一个时间内出现不可读,所以这里也支持这种滚动冲击的功能,就是说设定一个时端,就比如说重启设定180秒或者是300秒这样的一个预值,保证这个集群在重启的过程中整个存储也是可以稳定正常的工作的。这里还支持 balance ,也可以通过这些操作选项进行一个操作,这样就是一个集群的一个管理使用。

然后来看一下这里有一个集群资源管理,然后这个队列通过 XM 去配置的,同时觉得xm这个文件用配起来其实是非常繁琐的,这里就是有这样一个ui的一个页面,然后可以比较容易理解基本的一些概念,就可以快速的创建这样一个队列,相当于对于直接操作配置文件,它还是一个比较安全的操作。然后来看一下主机的表,主列表就是包含了所有主机的一些信息,包括它的一些配置、数据盘配置和自动盘配置以及规格。这里这个访问链接端口是这样的一个配置,就是说 EMR 里面所有的外部ui都可以通过NEX的形式去透出,所以就是说如果以前访问这个集群是通过打隧道,比如说是ssh这样的一个通信,然后现在就是可以通过它作为一个外部的网关,然后直接点进去就可以看到相关的页面了。

其次再来看一下弹性伸缩的功能,通常在云上可以更加弹性灵活的使用,这样就是一个弹性的功能。在 EMR 当中可能有很多的集群,如果两个集群之间需要互访,可以通过关联集群的功能,可以直接打通两个集群之间的访问。这里还有监控大盘的功能,它就指的是集群级别的监控,主机级别的监控主要是监控主机级别的信息。

这里还提供了主机状态的查询界面,随便选择一台机器点进去,可以看到包含机器的基本信息,除此之外还存在主机快照的功能,基本上所有的集群信息都是以快照的形式进行保存。通常以时间为单位,比如在某一个时间点查看日志出现了内存未打码的情况,然后回到之前的时间点,看一下什么进程把资源进行打码,这个对于排查问题还是非常有帮助的。

下面还是时间的一个统计,把集群的各种状态以时间为单位进行一个统计,这里还有一个服务级别的监控,在这个监控上的这些指标上也有助于大家排查一些问题。

这里面包含了所有使用的容量和空间块数量,大家可以根据块数量去进行一个调优。然后再回头来看一下数据开发,数据开发也是一个比较好用的功能,数据开发里面有两个概念,可以参考文档有各项比较详细的说明,像数据开发里面可以定制各种各样的作业,就比如建议这样一条作业,然后它就执行这样的一个查询,那实际的命令就在这里看,就是如果是回去操作的时候,就是说写好了这样的一个作业,然后就可以通过作业编辑功能把作业配上去,同时也可以在里面进行这样一个调度,然后去运行配置这种集群,这里面可以选择一个长度集群去运行这个代表图,也可以选择一个集群模板,就是说每次运行代表图的时候,然后动态创建一个集群,等这个作业的整个调度运行完了以后再把这个集群释放掉,这样就可以做到一个按量的收费,就是使整个开销是一个非常可控的。

调度状态也可以是定时任务,运行结果可以在这里进行查看,看看哪些成功了,哪些失败了。这里也是一种查询日志包括一些基础信息。


五、课程回顾

主要是介绍了 EMR 一个基本的架构,还有一些它的使用形态,然后也希望大家能了解这个EMR 常用的组件,它是有哪些分类,怎样去使用这样一个基本的概念。

还有就是面对 EMR 控制台的时候,希望有一个基本的操作的能力。当遇到一些问题也能对信息进行诊断排查。

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
SQL 消息中间件 Kafka
实时计算 Flink版产品使用问题之如何在EMR-Flink的Flink SOL中针对source表单独设置并行度
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4月前
|
存储 分布式计算 Serverless
|
5月前
|
分布式计算 运维 数据挖掘
【评测有奖】参加 EMR Serverless Spark 产品评测,赢机械键盘、充电宝等礼品!
即日起至2024年7月18日,参加 EMR Serverless Spark 产品评测,赢机械键盘、充电宝等礼品!
169 7
【评测有奖】参加 EMR Serverless Spark 产品评测,赢机械键盘、充电宝等礼品!
|
4月前
|
DataWorks 安全 API
DataWorks产品使用合集之是否可以不使用DataWorks进行EMR的调度和DataX数据导入
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5月前
|
分布式计算 DataWorks 调度
DataWorks产品使用合集之如何在DataWorks on EMR上创建Spark节点并指定DLF的catalog
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
60 8
|
存储 分布式计算 Cloud Native
阿里云 EMR 基于 Apache DolphinScheduler 产品技术实践和社区贡献
本文整理自阿里云 EMR 数据开发团队负责人孙一凡(Evans 忆梵),在 Apache Spark & DS Meetup 的分享
阿里云 EMR 基于 Apache DolphinScheduler 产品技术实践和社区贡献
|
SQL 存储 DataWorks
视频-《 EMR 数据开发》|学习笔记(四)
快速学习视频-《 EMR 数据开发》
232 0
视频-《 EMR 数据开发》|学习笔记(四)
|
弹性计算 资源调度 运维
视频-《 EMR 集群运维与排障》|学习笔记(四)
快速学习视频-《 EMR 集群运维与排障》
201 0
视频-《 EMR 集群运维与排障》|学习笔记(四)
|
存储 SQL 弹性计算
走进开源大数据平台 EMR | 学习笔记
快速学习走进开源大数据平台 EMR
走进开源大数据平台 EMR | 学习笔记
|
存储 消息中间件 弹性计算
EMR 开通与演示 | 学习笔记
快速学习 EMR 开通与演示
EMR  开通与演示 | 学习笔记