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

简介: 快速学习视频-《 E-MapReduce 组件介绍》

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

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


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

2.HIVE

image.png

我们来详细的说一下,一说到CPU的问题,那其实可能大家都会想到就是Have或者pig。这边的话主要我们来就是说一下Hive的这个石仓那基于这个HDFS分布式存储的一个基础如果当时就是三篇论文吗,其中的一篇论文就是一个分布式计算框架的论文就是Mapreduce,框起来的这一部分其实比较形象地说明了这种分布式处理是怎么做的我们会有多个map和多个reduce or map,负责去处理一些就是比如说类似于做一些规律,同时他要从red上去读数据,去做一些就是类似于这种按一些业务统计,同时它会把数据落盘落盘到本地等待reduce or去把它读取。Reduce会去不同的Matter上拉取这个Reduce所需要的数据,这块的话一般通过哈希来看举个例子,我们会把Hello拿到最低的维度上,我们会把Work拉到第二个角色上,然后分别去做处理去做一些分布式的计算,那我们最初的其实我们将业务计算需求需要通过Java去特实现特定的map或者是实现特定的Reduce,然后用这种方法来拆分整个计算,然后到不同的机器上就比如说我的map和Reduce可能都是在不同的机器上有多个来计算,去实现一个高效的分布式计算,然后最后汇总的话会得到一个结果,但是这种方式需要的代码量和工作量是比较大的,但同样呢,对于比如说尽想自己动手,然后有分析的同学,他其实并不友好,既费时间又费体力,其实大家比较平时使用的比较习惯的就是我们刚才所提到的Circle,那其实基于这个需求和痛点,第二个组件就是Hive就应运而生了,他其实为这第一个比较非常重要的功能,那其实就是将SQL解析转化为Mapreduce程序进行分布式的计算就是用分布式的这么一个能力去进行计算,提高了在大体量的数据下数据分析和数据分析的一个便捷性和易用性,这块是其实是少了一个定语,它其实是要在一个大体量的一个数据下,这是她的第一个非常重要的一个功能,第二点相对于第一点来说可能就是没有那么出名第二点其实对于文件系统做了一个数据的映射,那他将数据文件映射为数据库的二维表他会支持结构化或非结构化的数据,这块主要可能举两个比较简单的例子,非结构化的数据,比如说我们平时用的比较多的就像詹森。

image.png

简单看一下,这边都是随机造的一些数据,比如说他有一些ins值有正有负,然后有Float就是浮点类型的,有时间戳类型的日期类型的,也有一些就是字符串类型的我这边伪造的就是一些这个就省市一级的他的这个数据,同时它也有一些就是后边比较大的一些BBS类型的。这是我们灌云的一张数据,然后我们这边的话就是来看一下。

这个是数据的一个基础,因为刚才数据是做了一个演示,然后我们这边的话是用这个500万的数据做一个我们之后演示的一个基础,那我们再来看一下这个Have的基础使用,其实这块儿的话,他的基础使用,在我们后端来说的话,其实是有两个比较主流的客户端,但是其实他也是有一个逐步迭代的一个过程,首先就是我们所说的这个就刚才图里边儿画的一个就是have client,他其实是一个最早的一个Have的一个客户端后边还演进出了这个就是变烂的一个方式。可能就是有的同学可能会问这这个演进的一个方向,它其实或者说它们两个有什么区别,这个beelinehive-cli他要好在哪,那其实我们可以看到这边我也是做了一个简单的总结。首先,第一点的话就是hive-Cli需要将SQL做一个本地的编译。Beeline其实是直接访问HD就是HDFS中Have中的一个help so的一个代理他的量级相对于hive-cli是比较轻的其实这种比较轻的数据,这种客户端是我们比较喜欢的那第二点的话也是他一个非常重要的一点就是这个hive-cli无法对多个就是对多用户进行一个权限的控制,而相对来说这个beeline是可以结合这个Curb去做一些相关权限的控制来达到一个数据的就是在数据查看或者是写入这种做一些权限的控制,那么我们也是可以看到下面的这个图我是用了have client去做了一个相关的一个演示

image.png

可以看到Have是通过一个SQL的形式,你看我这边写了一个从优秀表里边去读出Name和它的一个count就是我计算了一下,每个内幕,他一共有出现了多少次,然后并且我写了一个Happy的条件,我需要就是这个抗指数大于一的那其实我想做一个什么事儿呢,我想看看有没有名字是重的。这块输入的是一个Circle,输出的,它是一个就是他在这个计算过程中是通过这种Mapreduce程序,我们可以看到他的map阶段。他会有这种日志的打出比如说我在一开始的时候map阶段和第四阶段都是0%,在第二个他打人出台的日志之后,它的map阶段已经到100%了,开始Reduce阶段,最后是map和Reduce阶段都到100%计算结束会告诉你我这个一共花了多长时间写了多少行等等最后他会有一个最下面这个红框,我们可以看到它一个结果就是张三这个人名非常普遍一共出现了两次,其他的都是没有这个having count大于一的这么一个条件都不符合这个条件,其实这个里边的数大概挂了三四条就做一个演示用

可以看到这边是陆地用户,已经在EMRhesder节点上了,现在其实就是通过这个Have的两个客户端去做一个查看首先就是登录hive的客户端。然后我们这边可以看到它已经登进来了,但是它会有一些乱七八糟的报警首先看一下我这里边儿一共建了多少个吧。只建了一个,因为EMR的集群可以就是用DLF来数据湖的元数据管理,可以看到所有集群上的一个原数据的就是这个Database我们可以看一下这里就有两张表,big data sys就是我刚才给大家看的那个我自己随机生成的一个500万行的一个数据的一个映射这块一会儿我们会进行一下就是这个数据表,我们会在讲分析那块儿的时候再来看具体看一下这这个就是我刚才演示的那个user表,那这个Have是这样的,其实通过Have可以登录通过beeline其实也是可以登录的,因为beeline比较长,所以我写了一个这个Logo,我们可以看一下就是我们beeline需要通过杠u指定一下hesder的一个1万的端口,然后通过这种方式去直接登录。可以看到现在我们进的就是beeline的这个客户端它的量级相对较轻,然后呢可以看到现在所连的是通过JDBC连接到Have就是EMR的hesder1的1万的端口,跟刚才看到一样他这个还能看到原数据,因为这块儿是那个数据湖统一管理的原数据,我们这边儿再进到刚才的这个看一下吧。做一个简单的查询。因为这个是比较快的,大家可以看到就是我现在其实输入了一个Select相仿,他这个为什么没有刚才的那个那他其实一个是他的客户端的日志打印的不同,一个就是我这个Slide星儿,他其实只是做了Mac的动作,而且它会比刚才的这个更快一些,那这个就是我刚才那个表我们可以看到张三出现了两次剩下的两个就是打了我自己的名儿就做一个简单的演示。这块我们也可以去看一些他的表结构等等就是类似于我们在SQL里边的DSC等等的这个命令都是支持的我们可以就简单的看一下,不看他的所有的都是支持的,我们可以看到就是我这个Test01的这个表他其实一共只有两列第一列是它的Name第二列是他的ID,它的数据类型分别是stringbegins,这个就是客户端这块我们就是先简单的做一些了解。

当我们能通过这种C口,然后来利用这种分布式计算的能力,对HDFS上的数据去进行业务分析和计算之后,那我们必不可少的就是需要一个白屏可视化,比如我们刚才讲的是DFS的时候也说我后端能操作我前端有没有界面,是有的。刚才演示的就是通过have client或者是beeline也是后台登录到数仓里边,然后去看一下里边儿的赛马和Tables,那我们可不可以有是不是也有这种可视化的这种组件,那同学们可能平时比较用的比较常见的像开源的这种地位或者是名气比较大的,这种never cat其实都是普遍的这种随口就书库的一个客户端。当然,这些都是可以连的,可能平时就是比如说就像我们再根据这个云上的用户,他的一些需求的中需求的了解的过程中可能会了解到就是客户除了一个客户端使用的需求以外,还需要在这个查询结果的基础上进行一些简单的分析,然后这个图表的生成以及报表的生成,那这块的话其实就引入了第三个要讲的组件它其实是全称是hadoop user experience,是一个开源的UI系统,它是基于Python的一个web框架实现的,那这块儿的话,只需要网页的话就可以一键完成上述我们所说的这种比如说随口的查询,然后一些简单的数据分析以及一些报表的生成。

相关文章
|
8月前
|
存储 分布式计算 Hadoop
Hadoop基础学习---6、MapReduce框架原理(一)
Hadoop基础学习---6、MapReduce框架原理(一)
|
8月前
|
分布式计算 Hadoop 数据处理
Hadoop基础学习---6、MapReduce框架原理(二)
Hadoop基础学习---6、MapReduce框架原理(二)
|
SQL 分布式计算 关系型数据库
视频-《 E-MapReduce 组件介绍》|学习笔记(三)
快速学习视频-《 E-MapReduce 组件介绍》
122 0
视频-《 E-MapReduce 组件介绍》|学习笔记(三)
|
存储 SQL 弹性计算
视频-《 E-MapReduce 组件介绍》|学习笔记(四)
快速学习视频-《 E-MapReduce 组件介绍》
83 0
视频-《 E-MapReduce 组件介绍》|学习笔记(四)
|
存储 分布式计算 运维
视频-《E-MapReduce 组件介绍》|学习笔记(一)
快速学习视频-《E-MapReduce组件介绍》
98 0
视频-《E-MapReduce 组件介绍》|学习笔记(一)
|
SQL 弹性计算 分布式计算
视频-《E-MapReduce》|学习笔记(四)
快速学习视频-《E-MapReduce》
170 0
视频-《E-MapReduce》|学习笔记(四)
|
存储 SQL 分布式计算
视频-《E-MapReduce》|学习笔记(一)
快速学习视频-《E-MapReduce》
85 0
视频-《E-MapReduce》|学习笔记(一)
|
SQL 弹性计算 分布式计算
视频-《E-MapReduce》|学习笔记(三)
快速学习视频-《E-MapReduce》
163 0
视频-《E-MapReduce》|学习笔记(三)
|
SQL 弹性计算 分布式计算
视频-《E-MapReduce》|学习笔记(二)
快速学习视频-《E-MapReduce》
152 0
视频-《E-MapReduce》|学习笔记(二)
|
资源调度 Kubernetes 网络协议
一文搞懂Flink架构与任务编排|青训营笔记
本文主要讲述Flink的整体架构,以及流处理任务涉及的各个算子的调度编排机制。为模仿实现一个简易流处理引擎作下铺垫。
390 0
一文搞懂Flink架构与任务编排|青训营笔记