视频-《E-MapReduce 组件介绍》|学习笔记(一)

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 快速学习视频-《E-MapReduce组件介绍》

开发者学堂课程企业运维训练营之大数据 EMR 原理与实践视频-《E-MapReduce 组件介绍》学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1242/detail/18443


视频-《E-MapReduce 组件介绍》

 

内容介绍

一、温故知新

二、本讲

 

一、温故知新

同学对于大数据的发展史以及EMR集群整体的架构基础功能进行了相关分享,不知道是不是还有印象。

大家对于独特历史,比如知名度比较高的Hive的出仓,可能现在有一定的了解。上次跟大家一起学习总结了一下,大家看看上周学习的怎么样,检测一下学习的成果

一共总结了五个部分,第一部分是大数据的发展史,简单的做一个总结,就是从Google的论文,Google三篇论文的提出以及nash搜索引擎的实现,会从my Produce的计算框架到Circle转换到My preduce程序的数仓的组件Have或者是PK,在此之后也会有纯内存计算的,比如Spark或者一种机器分析或者实施分析查询的计算引擎,比如出仓做一些批处理,从批处理到流处理以及到流批一体的新秀的Flink。再到本讲的主角EMR,可以说是一个层层递进高速发展的趋势。

第二部分讲到了EMR的产品架构,这块涉及的比较多,EMR的产品架构大概会分成五个部分

第一部分是批处理,批处理主要是两个一个变数仓的组件,一个是Have,一个是PK以及Spark实现了一个比较常用的或者是解释性比较好的一个C口到一个My preduce或者是一个底层计算框架的一个转换,可以用C口去做一个分布式的计算

第二块流处理,流处理有三个比较主要的组件,大家应该都还有印象第一个是Storm,第二个是spark streaming,第三个是Flink,Flink跟Storm的一个区别是第二部分

第三部分是偏分析的ad hoc的一个用来做交互式分析的一个查询逐渐就会涉及到click housecrystal这种比较常见的就是业务人员比如说一个宽表上去进行一个多维度,进行一个指标的计算以及一些相关的业务分析

四部分是一个事务型的在线服务引擎像h base。

第五部分是本讲主角EMR,这块主要讲到了他跟开源Hadoop生态就是Hadoop全家桶的一个对比,分成几部分,首先在成本性能易用性弹性安全性可靠性以及售后的服务支持等方面都有明显的不同和优势,第三部分是EMR中的一些基础概念,会涉及到基础地狱,我的这个集群部署在哪个地域可能趋势什么样的,网络交换机,可能还会涉及到一些CPU的数量存储的一个大小他的安全组整体集群它是一个付费类型节点的类型以及集群的类型。

第四部分是运维,EMR运维就是集群运维的功能,会涉及到哪几部分呢,主要涉及到了集群的查看,我们要上到集群上去查看,比如所有的节点资源的情况,资源的情况可能还会根据业务涉及到一些伸缩还有比如说用户管理监控告警日志分析

第五块是EMR开发的功能,这一部分主要是与另一款data works的一个深度集成就是官网上所提到的这种Artwork的一个方案,他的旨在帮助我们在一个可视化的UI界面上进行高效的一个代码开发,以及一些相关的调度或者监控告警的一个配置,会在第四部分同学做一个比较详细的分享,整体上一讲有这五个部分,大家对EMR有一个整体的了解以后那其实我们就言归正传了,这次直播的正传那本次的话其实为大家讲解的就是EMR产品中,基于我们非常常见的一个离线数据分析的一个场景,那在使用过程中会高度依赖的一系列组件的相关介绍。

 

二、本讲

本次的训练营包括如下几个组件的讲解这个是本讲的一个目录大家可以看到列出了七个。

image.png

这个PPT也是刚打开,大家可能也会有所预习,屏幕上的这些可能同学们会在平时的工作或者学习当中或多或少的都对这个上面的词,或者说对阿帕奇或者是阿帕奇下面哈顿都有一些了解,那我们就本次就是一起来看一下这些组件,然后在离线分析场景中所使用到的功能和他们的特点,这七个部分,其实可以再进行一个比较细的划分,那其实可以分成两部分前五部分其实是一个开源的组件,然后后两部分的话其实是我们云上的一个组件。可以根据这个特点,把他们画成两部分。

首先按照顺序来说,开源组件的这一部分为大家带来的主要就是离线大数据分析的这个场景中目前在业界或者是使用的比较多比较普遍或者比较典型的五个组件,这块首先会从基础开始说做计算肯定有数据HDFS其实就是一个大数据的一个分布式存储系统,有了存储之后会介绍have have是嫁在HDFS上的一个数仓他跟pic其实是做了一个非常伟大的一个工程,那就是把C口转化成一个分布式计算的框架在分布式计算框架上去进行计算。

第三部分的话其实是WUI的提供的一个组件,它其实提供了一个可视化的界面去提交CPU任务或则类似于Spark任务,同时他也可以做数据分析

第四部分基于数据分析为主,它的通用性比较强,相对于汉语来他会相对因为它基因内存计算会快一点的一个Spark以及支持这个联邦机器查询的分布式的MPP架构的一个计算引擎Crystal。

自然这一块其实我们带来了两个自然组件的介绍,首先就是jinndoFS这个其实在上一讲中,最后同学有提问,就是他和这个OSS hdfs的关系这部分因为我们的班主任,后来也有过相关的反馈这一次临时加了一节来做一个简单的介绍这块最后一块就是刚才我也在就是介绍了上一讲也会提到的一个就是my aunt works的这么一个深度的集成。

1、HDFS

image.png

整体就是这七个部分,现在就是按流程进入这个咱们整体讲解的一个环节,首先就是HDFS。大家不管在介绍什么东西的时候都会先从按照一个逻辑从底层往上曾去说HDFS就相当于海陆生态一个比较重要的一个底座,它处于一个比较底层的位置,对于大数据领域来说,底座优先说到的肯定就是数据的存储。就是这个叫re dis tribute system的这么一个HDFS的一个H加法就是它的一个简称,可以看到它的起源,我们也在上一讲中有所提到,谷歌在零四年的论文google file system的一个工程化的实现HDFS主要解决就是它的功能它主要解决了海量的数据的分布式存储管理以及来自上层,比如说计算引擎或者是程序对于数据或者文件的一个读写请求的应答。这块主要是他的起源和功能作为大数据领域里边分布式计算的重要的底座,那同学们可能会有些疑问就是HDFS相比于传统的这种小型机的存储它有什么好处,HDFS有什么功能特点。

这个时候可能会比较常问的一个问题,从这两个问题入手,进行一个简单的介绍,首先的就是分布式意味着它有一个很好的扩展性,那对于传统的比如说led的这种。如果对比数据库来说呢,就像Oracle或者像地铺的那种小熊机或者说我们普遍教的这种刀片机来说的话,它的磁盘就相对于这种小型机的一个磁盘扩展来说,HDFS只需要横向的扩展节点即可,在一个数据量比较就体量比较大的一个情况下,这个其实它就意味着一个低成本这个低成本其实可能同学们有些就是无法理解他这个是一个怎么说法呢,那他其实是这样的,就是因为如果只有一台机器,数据量小的时候我去对这个服务器或者说我们所说的这个节点去做一个把叉的一个挂载磁盘就很方便也很便宜,但数据量大了,这个单一机器的资源扩展的费用是陡增的,它是非常不划算的同时我们看到这个特点的第一行还有一个高可用的HDFS的一个多节点,他一个方便的扩展的这么一个特点,同时它在多点上也会有冗余存储的一个策略,他其实保证了我们数据的高可用比如说我截某个节点因为一些不可抗力导致了数据的丢失,其他节点上还有同样的一份数据做复制,同对外提供读写请求那这块其实就是它的高可用

同时作为一个比较成熟的分布式文件系统HDFS对外提供了种类Shell的命令来去做文件的管理类似于常使用Linux,Linux在文件系统里,我们可能会做一些类似于Mac dll创建一个文件夹,或者是Copy这种CPMV命令,那它其实也是跟这个非常类似的。这种的话就会让我们非常方便理解快速上手同时就是针对于主流的一些编程语言,比如说Java,那他其实也提供了一个丰富的非常丰富的一个API来完成了我们日常的读写以及对数据或者文件的一个管理的需求。读写以及对文件数据管理的一个需求,其实对于多数同学来说以及就是本次设定的这个离线分析的这么一个场景下,这个部分就是第二的这个部分。

他其实应该是一个使用最为常见和频繁的一个部分,所以这部分的话,一会儿我们会在EMR的一个测试环境中做一个展示这块儿的话,其实我们可以简单的理解为就像右边这个图一样,我们不管是通过shell命令还是说通过Java的段代码,其实他都是创建了一个Client。这个Client通过HTTP请求的方式去请求HDFS的集群这个Client会根据给他输入的指令先去跟HDFS集群的老大,也就是它的name node,这个负责元数据管理的节点去进行交互,在这个过程中首先要进行健全健全之后会返回能不能创建文件夹能不能读取文件夹,如果能读取能创建你要去哪里读取文件,我们获得到他反馈的信息之后,如果是读取或者是写入文件,那么我们还会跟右边的DataNote去做一个交互,去在订餐app中或者是存储或者是读取文件。

可能有的同学会说,像这种比较好用的文件存储系统,那我们就是说Shell的就是说Linux的就是说这种Java的就是我们所说的这种黑屏加变成代码的一个模式,而我呢就是比如说我是一个比较偏业务分析的工作,那我有没有一个可视化的白屏界面,可以通过拖拉拽的方式,然后去做,比如说我要做我比如说我是人力数据,或者说我是财务数据对数据或者文件,通过这个可视化的百分界面去做一些文件夹的创建做一些数据的归档,那其实肯定是可以的这我们一会儿也会去跟大家一起看一下它的一个白天界面是什么样的第四点就是文件的权限管理,这昨天也有同学去问整个EMR集群的数据安全相关的问题,这块儿的话,其实HDFS作为其中的一个组件,它其实也是考很好的考虑到了这个数据安全的问题。

这部分其实HDFS提供了两种方案第一个是类似Linux,这种优质的user group以及Other的权限体系是这样的就是比较基础的这种map reduce的程序,那我们比如说通过Java去实现一个简单的Word会把Java编译好后的一个大包通过一个命令的方式在不管是在或者是通过其他方式跑起来,那这个大包在做的时候就是在进行计算的时候,它会将大包从他的主节点发送到他的一个数据节点上它的原则是尽量让计算向数据靠拢因为移动一个炸包就是几十兆用更新版本的一些功能,或者说我们发现新版本的功能上有一些医术,我们需要去对这些问题去进行一个bug的时候,我们可能也会涉及一些这种组件的更新,这个滚动更新和升级其实可以保证整个HDFS的服务,对于外界的服务是不会断的,它整体对于外界来说是无感的那我们就简单的来看一下简单的创建一个集群,然后这个集群到服务里边也是有HDFS的,然后我们刚才所提到的这种类似Shell或者是比如说Java的一些代码去达到一些上传数据或者是归档数据操作文件夹的一个方式,我们一会儿都来看一下这块儿我们先来看一下这一页PPT。

image.png

首先就是HDFS刚才提到的两个基础操作,那我们就在这边做了一个图片的展示,基于少这端的面料就是这种HDFSDFS。如果是创建文件夹是Maker,如果复制是CP第二种的话对应我们右边的这一侧它就是一个java SDK去操作做相同的操作跟生命是一样的先从本地集群的登录,可以看到集群上HDF4服务的部署的,我们这边去做一个集成的登录登录到集群的header节点上可以看到这边就是已经登录到EMR节点上了,然后我们看一下,现在他的这个基础上的服务是比较多的,现在他那弄的就是我们HDFS的一个主节点是在这上的那我们来看一下EMR其实跟我们的内容是一样的,我们可以看一下现在的这个文件系统根目录下都有哪些文件夹,我之前也是做了一些就是这个分享的准备,所以有一些文件夹不是系统直接创建的是我创建的,比如说这个Monday2Monday3、培训这个还有我的名字,这种孙玉峰的这种文件夹都是后面我再创建的,像TMPR或者是这种flow agent创建的m mo gen flow都是创建好的其实可以做一个创建,先创建一个叫Tuesday的一个文件夹,用来放数据,简单的伪造一点数据保存一下做一个上传。我们会用put命令,把本地的一个文件上传到我们HDFS集群中,然后用他高可用的一个就是冗余存储的方式高可用的一个对外提供服务的方式,去把数据做一个存储我们就放到刚才这个下面可以看到这个现在下面已经有了一个数据

我们这边再就是看完这种Shell的方式,我们再看一下这个Java类的我这边也是简单的写了一个就是我们测试的一个脚本这边用g unit做了文件系统的文件系统创建和关闭,中间做了一个创建目录的操作,然后这边其实也是改一下,比如说我创建一个Monday4的一个目录,可以通过这种方式去把它提交到集群上了。这边显示就是已经执行完了,那我们利用这个Shell这边再做一下验证。这个是刚才的情况,可以看到现在的情况相比刚才是多了一个目录

image.png

其实在这个下面创建了一个file system的一个对象,我们其实还是可以做其他的一些事的,比如说list files,他这个提供了很多的方式,可以去调用这些方式来达到对于文件操作系统的使用的目的,这边的话就暂时先用这个来简单的演示一下

image.png

时间关系,刚才提到了一个白工具,其实这,我也是就是一开始就直接打开了,可以看到在这里边是由HDFS的一个路径的在这创建或者是上传或下载数据

image.png

这个界面就是刚才所说白屏的界面,我们的目录文件夹都在这儿,然后我们可以去做一些上传下载和更改文件。当我们将一个数据存储在HDFS之后我们的最终目的是使用比如说上传的一些数据或者是里边已经存在的一些数据,然后据业务需求,基于这些数据去进行相关的一个指标的计算,然后在相应的维度下得到一些业务的指标或者结果现在这种存储的方式,虽然可视化程度很好,可扩展很可靠,但是我们怎么用我们最终目的还是要把它用起来,那么我们能用传统的数据库的Soho来计算吗,其实大家在上一讲中也有过一些了解

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
SQL 分布式计算 并行计算
Hadoop学习笔记(三)之MapReduce
Hadoop学习笔记(三)之MapReduce
|
6月前
|
存储 SQL 分布式计算
Hadoop(HDFS+MapReduce+Hive+数仓基础概念)学习笔记(自用)
Hadoop(HDFS+MapReduce+Hive+数仓基础概念)学习笔记(自用)
530 0
|
存储 SQL 弹性计算
视频-《 E-MapReduce 组件介绍》|学习笔记(四)
快速学习视频-《 E-MapReduce 组件介绍》
101 0
视频-《 E-MapReduce 组件介绍》|学习笔记(四)
|
SQL 分布式计算 关系型数据库
视频-《 E-MapReduce 组件介绍》|学习笔记(三)
快速学习视频-《 E-MapReduce 组件介绍》
154 0
视频-《 E-MapReduce 组件介绍》|学习笔记(三)
|
SQL 弹性计算 分布式计算
视频-《E-MapReduce》|学习笔记(四)
快速学习视频-《E-MapReduce》
196 0
视频-《E-MapReduce》|学习笔记(四)
|
数据采集 分布式计算 搜索推荐
Hadoop学习---7、OutputFormat数据输出、MapReduce内核源码解析、Join应用、数据清洗、MapReduce开发总结(一)
Hadoop学习---7、OutputFormat数据输出、MapReduce内核源码解析、Join应用、数据清洗、MapReduce开发总结(一)
|
存储 分布式计算 Hadoop
Hadoop基础学习---6、MapReduce框架原理(一)
Hadoop基础学习---6、MapReduce框架原理(一)
|
存储 分布式计算 Hadoop
【Hadoop】一个例子带你了解MapReduce
【Hadoop】一个例子带你了解MapReduce
98 1
|
数据采集 缓存 分布式计算
Hadoop学习---7、OutputFormat数据输出、MapReduce内核源码解析、Join应用、数据清洗、MapReduce开发总结(二)
Hadoop学习---7、OutputFormat数据输出、MapReduce内核源码解析、Join应用、数据清洗、MapReduce开发总结(二)
|
分布式计算 Hadoop 数据处理
Hadoop基础学习---6、MapReduce框架原理(二)
Hadoop基础学习---6、MapReduce框架原理(二)