00:00
接下来我们就看一章一章的往下学呗,首先是这个have它的一个基本概念,这一章啊,主要是有这四节,第一个什么是have啊,了解一下have,现在大家可能对have是听众印象,就是刚才我所讲的,哎,他要写一些搜狗,写一些搜狗,然后之后第二节呢,我们会讲它的一个优缺点,这个框架我们了解了什么是have之后,我们要需要知道我们为什么要用pad吗?它有什么好处,那既然有好处,肯定有它的一个缺点,其实你讲每个框架,任何框架优缺点的时候,就是为了你以后在工作当中选型的问题吧,因为你解决一个问题的途径不止一种。那个这个时候呢,你肯定要考虑它的一个优缺点问题。你想想看,你这个框架肯定要找到你当前做这个需求,你一定要找到最适合你这个需求的框架呢。啊,市面上框架有很多,而且我们学的框架也是有限的,是有限的。
01:04
然后大家一定要掌握,就是每个框架它的不同的优缺点,然后它的一个特点,帮助你以后在工作当中的一个血型啊,假如你以后成为就是工作两年之后架构师了,是吧,那架构师就不一样了,那就需要你来做这个选型了,你这个业务来了,你前端用什么接,中间用什么传数据啊,后台到了,到了你大数据这边,你拿什么框架来存。然后分析框架服用什么have Spark等等这些东西涉及到一个选型,那你要根据你的业务实际情况,实际情况来选型的,那你就要想到它的一个优缺点,优缺点问题啊,然后后面它的一个整个的一个架构图,我们需要了解一下have它是什么,之后你了解一下它里面有哪些组件,了解一下里边有哪些组件。那之后呢,就是汉语数据库的一个比较,数据库的比较,因为前面必须要跟大家说清楚,如果在后面说,很可能同学就搞混淆了,因为后面的操作一直从那个什么DDL开始,到后面查询这些东西,对吧?你你那时候会感觉跟马斯克没什么差别了,你感觉不到啊,太大的差别,因为我们的马克讲的内容其实也不是特别多,没有学的太深,所以你光从应用的角度写S的角度来说呢,你就会感觉到他们的差别很小,所以你说我们在前面就必须要把have跟数据库,就是咱们所讲的数据库呢,就我们现在只学了一个MYS是吧,那就是跟MYS做对比啊,了解他们的一个区别啊,了解区别啊。
02:47
然后呢,我们看一下第一小节,什么是汉。汉,它是由Facebook开源,用于解决海量注意关键字、海量结构化日志的一个数据统计的一个框架,数据统计的一个框架。
03:05
其实还有是做分析用的,它是做分析用的,它不是一个存储框架,你像我们所讲的哈杜,它是什么框架,存储和分析框架吧,因为它的HDFS是存储的,六是负责分析的,但是have,你要注意它是分析框架。分析过来,它不能存数据的,不能存数据的,你先把握这一点啊,具体的肯定在后面会讲到OK,然后他说have是基于哈杜的一个。数据仓库工具。数据仓库又有个新的概念。新的概念,数据库,存数据的地方,那数据仓库呢?可想而知,肯定也是存数据的地方,对吧,但是他存数据的会比买搜狗要复杂很多,要复杂很多。
04:04
这个还需要涉及到跟其他后面的一个业务层的一个交互啊,现在在这个地方就不具体简单说,因为后面我们会有一个输仓的一个项目啊,专门就是讲这个数仓的来怎么来构建这个书仓啊,公司需求来了,这个数仓应该怎么来设计,怎么来构建,怎么构建,它肯定是根据业务层来的,不可能说单独的你把数据放在。一个数据库里面去找数据仓库,这是不对的啊,这是不对的,他肯定是跟业务层相关的啊,有业务层的好,然后你还需要了解的是提供类似的一个查询功能,查询功能。具体的这句话你能记住就记住吧,记不住暂时也先不用记,先不用记,但是这句话你现在要知道他的本质。
05:00
海口就是我们所讲的have,就have的一个查询语句,Have的查询语句啊,以后你就不能叫circle了,叫口,叫海口,它是将这个海口,它用于转化为map的一个程序。转化为M6来跑的啊,其实你写的搜索,最终你运行的时候,它其实提交到后台以后啊,它是提交给雅安,然后用雅安来分配资源干什么。跑这个member任务的,跑任务的,这是我们所说的后台的那些人员啊,他进来的时候他是不需要。太了解microdu的一个底层的一个实现原理了,他只需要会写还啊会so就够了,因为它有have这个框架呀,它自己就能给你翻译成6%字。自己就能翻译,把你的搜索翻译成ME6啊来操作的,所以他就不需要特别的懂M之60的一个题原,也不需要自己来写这个MEMORY6来写M6,当然我们现在是两个都学了是吧,就MEMORY6啊,还有汉都学了,学完之后你一定要总结的一个问题,当你在写hi的时候,就是写hi客的时候,你一定要想一想,你这个he口如果不让你用hi克做。
06:23
让你写MR程序,你要想一想这个问题应该怎么写,或者说你后面遇到需要写MR程序的时候,你要转换过来想一想,你要想一个什么问题啊。你怎么用哈克来实现这个需求呢?因为你两个都学了,你一定要想一想,你多想一想,多写一写,你面试的时候就会爽一些啊。就会好很多,真的这是真的好,一定要想,因为我们上课过程当中,呃,因为时间关系嘛,就很少给大家扩展,就是啊,我们做一个需求的时候,也用MR实现了,还用实现一遍,或者用还实现了,再用MR实现一遍,没有这个时间,但这个呢,就留给大家了,留给大家了啊,从第一阶段开始就已经说了这个问题了,所以说大家整个学习过程当中啊,一定要带着这个。
07:13
想法去学习。好,然后我们讲的将转化为程序啊,哎,他是怎么转化的,怎么转化的,这个PPT我们来看一下,诶这还咋咋还弄丢了呢。数据仓库通过搜索进行统计分析,就是你传递进去来的开了,哎,客户端传递来还。然后他在have当中啊,它会将常用的这些什么select will group等等,这些是不是你们比较熟的,对分组grow对吧,不要过滤啊,过滤它会将这些关键字写成60%的一个模板。
08:02
它有很多那个模板,很多模板,然后他将这些模板封装到焊里面。就它内部已经集成好了,有很多的一个MR程序在里边,而且是对应于不同的一个搜索语句来的,还是这样的,OK,那接下来就是你客户端提交的这个哈格语句吧,还语句你提交过来了之后,他会去这个模板里面去找相应的跟你这个handle口要对应的那个模板。对的模板,对的模板之后,他匹配就是找到这个模板啊,找到模板你想啊,他这个东西,这些剧会包含那个from。想一想这个封装的模板里面会不会?其实可以有。但是你要想这个最后应用在哪,就是买里用到哪,最后对应的数据来源吧,因为你查询的是来自于哪张表,其实你最后翻译成MR的话。
09:17
他就是硬啊对吧,哎,数据的入口音的方的那个对应的。对吧,啊,你要时时刻刻的有这种,然后什么select VR,你要想一想用哪个组件去控制它。你要想这个事情,首先这个from,因为是最好想的,因为你查询到语句里面,你from其实就是一张表嘛,装一张表对吧,而且你附上一张表,其实就是获取数据,获取数据啊,然后你对应的mmr的获取数据,不就一步的方发的那个组件来复制的。他就是这样子来匹配的,来匹配的之后就是具体的,你既然能匹配出模板了,然后也有实际的数据了,然后你也有你查询的什么select的后面肯定有字段嘛,你查询的字段你要哪些哪些东西。
10:09
然后分组对吧,这些东西。或者说你想想看,你如果说select count一个字段,Count新版,然后。FROM1张表,然后BY,然后ID这个字段你想想看,MR应该是怎么写?就最简单的一个例子啊。然后一个count新,然后from一个T表吧,然后一个ID这个字段,如果你想这个语句,如果让你用二写。是不是很好写,怎么写,是不是就写一个,但是这个应该放在哪。
11:01
这个公看什么,你想想看,这个抗的心是不是每一个组里面它的一个总数啊,那你是不是把这个ID应该放到哪,就你写MR的时候,ID放到哪个地方,是不是K的位置啊,哎,K的位置。然后靠的心就取出值来迭代呗,是吧,迭代给加,当然这是一个很简单的一个例子啊,但是就是学习过程当中一定要去这样,稍微复杂的一点,你也要去这样去想,这样也也需要这样去想啊,后面还涉及到两个表交应呢。对吧,你们不是讲过那个什么map端交应,Reduce端教育,对吧,那你在my circle就是hi里边写的这个教育,那你要想想它是怎么实现的啊,怎么实现的,对吧?啊,你要时时刻刻要想这种问题,想这个问题,那当然咱们这个举的例子呢,比较简单,比较简单,但是后面的。
12:01
涉及到三四个什么子查询的时候,这个时候你要想一想,有可能咱们写出来的一个have还口,它是一个MR跑不完的,有可能吗?它有多个涉及到多个串联的,多个串联的啊。这是我们整个的一个搜到map的一个粗略的过程啊,没有详细的去讲,就是说它里面封装的一个很多的一个模板,然后它会将自己的一个hier转化成这个模板,然后提交给点他去运行啊,这是它整个的一个运行的一个非常粗的一个原理,非常粗的一个原理,最后是生成结果再返回给客户端,那这就不用说了,是吧,呈现到客户来嘛,客户端。控制台打印出来它最后的一个结果。然后这是他将。转化成。
13:00
那我们需要了解的是,它是说还是一个基于哈多的一个基于哈多的一个数据仓库工具,数据仓库工具,那它这个存储,而且我们所讲的have,它并不是一个存储框架,是不是啊,那它是数据应该存在哪HDFS了吧,因为我们介绍这么多,肯定就是它的数据只能存在HDFS,然后它将汉转化为ma程序了。他最终的一个运行也是跟他自己没有什么关系吧,他还是提交给雅安跑到麦热程序吧,那这样看来其实have相当于哈的一个什么什么东西啊插件的,如果这样吧,应该have类似于哈的一个客户端吧。对吧,它可以往这个客通过客户端,它可以往SDF上存数据,你往表里面插数据,这不是存在SDFS吗。
14:04
他还可以取从取数据吗?查询的时候不是取吗?取数据的过程当中,如果说你的业务比较复杂的时候,你涉及到什么com的这种计算的时候,哎,他还要走MR程序对吧?它又可以驱动你的MR,哎,就是have整个的呢,它就类似于一个哈多的一个客户端,相当于哈登的一个客户端。不要看处理的数据是存在HBS的。底层的实现呢,是ma,然后资源的一个分配呢,或者说执行程序啊,都是提交给雅安的,提交给雅安的它就类似于一个客户端,为什么要提这个点,但是我们在后面安装的时候提前说一下啊,那大家觉得我们哈多是不是搭了三台啊,而且是可扩展的是吧?因为我们是三台虚拟机,所以三台你扩展到成千上万台也可以的,那问大家一个问题,就是have,大家觉得我们应该装几个装几个,装三个是不是一个就够了呀,因为他的个客户端啊,当然你可以装很多个,那就是客户端安装在不同的地方对吧?啊,不同的地方而已,但是那个汉网它其实一个就不了。
15:25
一个就够了,因为它又不存储数据,他又不计算,它就是将这个还口转化为my Rose啊就刚才这个事,那所以说他到时候我们在安装have的时候啊,安装一台,安装在一台上面就够了,安装在一台就够了,你客户安装一个就够了嘛,当然你像这个什么,我们举个例子啊,你这个这个谷歌浏览器,相当于刚才那个东西,是不是也是谷歌浏览器的一个客户端啊。我这个装一个就够了吧,但是大家都要用,你自己都去装呗,是这个意思,所以它不涉及到什么一个集群的概念,懂吗?虽然你可能你可以在12102103104都装have,但是他每一个人都是单独的一个什么。
16:12
一个客户端,哈多的客户端啊,他们之间是没有涉及到集群的共同工作的一个概念的在里边的啊,它没有集群的一个概念啊,这是要做区分的,因为后面我们学的框架呀,都是有集群的,都是有集群的,但是have它比较特殊,因为我们从分析过程当中能得出来,汉其实是哈多的一个客户端,客户端是这个问题。
我来说两句