00:00
好,接下来呢,给大家总结一下啊,这个项目当中用户行为采集这一块啊,这个文档我们花了两天时间,那下面呢,看一看这两天时间我们要掌握哪些内容,那第一个也就是这个数据商务的概念对应的第一章,第一章当中对应的一道面试题,那这样面试题就是数仓的输入数据源和输出数据源分别是什么?那输入数据源对我们来说是什么呢?用户行为数据,也就日志数据,还有一部分是加vae后台呢,业务数据啊,其实还有一个爬虫爬过来的数据啊,OK,那输出输出至少要输出到一个地方,报表啊,就是报表。百分之八九十都是有的,那像这个优化项和推荐系统个别公式是没有的啊,只有一些技术比较强的一些公式啊才有啊,OK,那这是这一块第段面辑搞定,那下面呢,就是这个第二章这一块啊,第二章呢,是完全按照这个企业开发的模式啊洗走的,那这里面其实他即是开发的时候我们要分析的问题,同时也是面试的时候,面试官容易问到你面的一些问题。
01:19
啊,其实这些问题啊,能考验出你这真正干过还是没干过。啊,那往往没什么呢,就喜欢这么去问你啊,那么来看,那这里面第一大问题就是集群规模怎么计算。啊,往往边我就跟你说一条,我就是一条数据,每天啊一条数一条日志1K左右,那剩下的事情你来给我分析,我要买多少台服务器啊,而且你要给我个说法。这个内存和硬盘用到什么地方去了?啊好,给出合理性的分析,那这里面啊,日后呢,大家可以说我这个每天的数据量呢是。有100万的日活啊,每个人的一天大概是100条左右的日志啊,那正好呢,就是1亿条啊,一条数据,那么这1亿条数据呢,约等于100G左右啊,那其实这里面好记好记哪呢,100万就对应着。
02:17
100G之前呢,给大家说的就是别个班说的数据量呢,是10G作为参考标准啊,10G到50G任意去说,那10G这边对应的就是啊,10万的10万对应的实G的数据啊,OK,好,那么半年内不扩容服务器的情况下,那就是100G乘以180T啊,约等于18T,好,那保存三个副本,那就是18G乘以三啊54T。预留20%~30%,那我这里面预留的是30%,那就除以0.7,预留20%除以0.8 OK,嗯,好,那这里面呢,大概是77T,那也就是说8T的这个磁盘满十台服务器就差不多了。
03:07
啊习T,那这里面要注意还没有考虑这个数仓分成,日后呢,我们最后的项目的时候,或者说在你们毕业之前给大家说一下这东西啊,因为你讲完数仓里面的尝次之后,你对这里面的这个概念才会有进一步的一个理解啊现在说呢,你没有感觉哈,好,那正好下一个呢,就是这个放假的版本选型,比如说他会问你,你们选择的是阿帕奇S电去去搭建的这个框架。啊,那这里面你说阿帕奇和斯电延续都可以啊,都可以记住啊,在企业当中都有,只不过是斯地延续的占有量稍微多一些啊,稍微多一些啊OK,还有呢,就是中小型公司大部分都用它啊,那有大公司啊,大厂啊,基本上可以用的这个阿帕奇啊,它属于最原生的啊好,那呢,这里面还有一个HTP,就知道它目前呢是不是特别稳定,国内使用的就少一些啊这样啊,这是版本的选型,那下面呢,这块呢,是这个服务器的一个选型。
04:14
啊,浮于全景服务器呢,这里面就分物理机还是云主机,那通常情况下啊,对于我们来说。啊,可以选择云主机,那这个呢,就是它的运维少啊,现在的运维少一些啊,略少一些啊,那对于我们开发同学来说,可以建议老板。买这个啊,因为你们的运维能力还凑合是吧,嗯,还好啊,至少这个只要让你去改这个什么发型,一些配置啊啊都没问题啊,这个领导一看,哇塞,这哥们贼溜是吧,所以不来玩了,也许对你高看一下啊。但是其实这个云主机啊,就是定制化的一买啊,只要你钱出的到位,其他都不是事啊,那在什么公司愿意去用它呢?
05:04
金融类模式啊,贼有钱啊,一般就是直接买的没到位,一步把定制化安装好,你把这个Spark什么hi全部安完啊,直接调通,剩下的事儿你来找数据,就这么简单啊,包括他们之间那个数据传输数据啊啊,导入导出啊啊,其实阿里都有一套专门的一套工具啊,只要你花钱就行了。啊,他就给你出解决方案啊,OK啊行,那这个是这个选择,那这些就是我们整个这个项目当中啊,要记住的一些内容啊,那除了这个之外,那下面这个5.3。记以下这一块,这一块呢,就是真正的这个列题了,那我们从我的学习的顺序开始,那就是linus style还ber主keepper罗卡啊,中间还有一个have对吧?还有在下一个文档给大家去讲这里练题。那像这种面试题,嗯,在其他班或者以后也是怎么怎么来考大家呢,我直接就问你linu有哪些面试题,你直接就跟我说。
06:12
啊,这个很重要很重要,这个我准备大家给这个以前的学生说,说什么呢,你要知道你会啥。不要用面试官去问你啊,你去问一个,我答一个,那可以只是一个入门级的水平,如果说是你主动的把这些东西全部给它串联起来。啊,主动的在你脑海当中形成一个知识网。那么你才是真正的把这些东西消化到。很重要,那看一看这里面难不难啊,非常简单,可以说我倒背不六啊,这些题正的背反背怎么背都行。那么来看过吗?那innux当中第一道面试题就是innu式的常用面量啊,那好,Li常用面料你能想到哪些?
07:01
同学说CDLS我直接弄死你,你就可以撤了啊,这不行啊,不行,那来吧说说啊套吧,查看内存,还有翻EF,还有FPS啊,还有吗?BF啊,DF-H啊,这都好好的命令啊,高级的还有加,还有I套还有ne state,查看端口号对吧?啊OK啊,这些是主流的,也就说查看内存,查看磁盘啊,查看端口号啊等等这些都是非常非常有用的,你说出来这些才能代表你对这道题掌握到位了。啊长这里面很重要啊啊嗯,这些,那下面还有一个sell的常用工具,这道题就比较弱一些了啊在咱深圳的片啊就更少了啊之前在哪最多呢,京东。
08:09
以前进行过面试,几乎这几个是必问的啊,他会怎么问呢?他会给你出一个场景题。啊,他让你去跟一堆字串啊,或者一些文件夹文件,让你去用aw ksd card sound啊去解决这个问题。啊,比如说截取出在一个文件当中,截取出一某一列啊,截取某一个特殊的字符啊等等干这些事啊,那这块呢,那现在已经弱化到什么情况呢。你问Excel这块你知不知道有哪些常用的工具,比如说WKSD,看了算了,只要说出名字,目前来说就OK了。啊,非常简单是吧?啊,只要说赛L那个变试题,那就是当常用工具,就有aw KD啊,就够了啊,那如果说你想进一步深入研究到你毕业的时候,这块咱们上课是不是讲了配套的试题啊,把那几道面试题带上就够了啊,就如果时间不允许的话,那你只需要记住这四个名字啊,OK,好好。
09:15
那这里是例决赛啊,你看我们讲了三天啊,加一起其实就这么两道题,没了啊,头就够了,那下面接下来就是这个highop,那highopop这块问大家个问题,Highloop有几个文档。三个文档怎么还整了四个了,还有入门H加S那六呢?是这样吗?四个档那第一个文档当中只有两道面试题。常用的端口号有哪些?但是啊,非常简单这道题,而且他是谁来问的,通常情况下是HR。啊,H200问题啊,他虽然说不知道是咋回事,但是他死记硬背啊,你要说出来500701记倒挂了,就这么简单啊,那好,那这个路面这一块呢,第一道题就是长数等号啊,有50070,还有19888,还有8088还有。
10:18
9000还有8032还有吗。8020,嗯,幺九,还有这个5009050010啊,5010啊。好,那差不多这么多,那这里面必须要说出来的,500708088啊,80881988历史服气啊,这上的是必须要零,好那第二道孩子,我第二题是这样的。嗨,多个集群搭建过程当中需要配置哪些配置文件?比有几个八个配置软件对吧?啊八个配软件分别是Co赛A加赛ma在啊四个核心配三个因为啊,分别是as因维,雅恩因维,Maprid因维,还有一个s slave s啊s slave啊就这么八个文件,那他还会问一下在搭建这个集群过程当中,哪两个东西是必须安装的。
11:22
官网上说吧。JD k mustb Mr star,还有一个s mustb Mr star,就这两个东西必须要搞定啊,再再去啊,这就可以好,那你看第一个文档,就这两道题,你们学了两天啊,只需要掌握这个,从面试的角度来说啊,那接下来第二个文档当中AKS。只有一道面试题啊,准确来说不是面试题,它叫笔试题。什么比离呢?HDFS的读写流程,两张图一块完事啊,最美的那像这种图啊,如果说你没记下来怎么办?
12:06
求助是吧?啊把这个拿手机把面问问题一拍照发群里面,这边你的朋友给关注了是吧?啊就这么简单,那你要没有朋友那就算了,没有朋友那今天晚上是吧?啊这个天色天色挺好啊,可以洗个脚啥的是吧?行,那这个呢,就是呃,你要有朋友,那这道题就稳稳的过是吧,而且没几个不难哈,就几个框框,好那接下来就来到了第三个文档map。那里面大家一定知道一道题对吧,啊suffer。必须得会的,而且面试呢,几乎也是必问的,那这里面的问题就是。首先问一下什么是杀手?从哪到哪。
13:01
每个班问,每个班都错的一塌糊涂,都觉得简单,那我找一个高层的。那就班长吧,你给我说说什么叫沙盘从哪到哪,从结束。你看完了,稳稳的,错了。想想,Map结束,Reduce开始。Map阶一共就两个阶段,Map阶段和人流阶段啊。这么说话严重的就是不严谨,准确来说应该是什么?卖法方法时候,Reduce方法之前,这才是准确的suffer这个过程获悉,你要是map完事,Reduce开始,那是不是整个你就两个阶段map完事了,它中间一条线吗?啊,那不可能对吧?啊,这不可能啊,OK啊,这个几乎是每个班必发的问题啊,并不代表你班啊,是第一次出现啊,很正常,大家说一下,那就是卖克方法之后,理定方法之前,这一段过程也是回洗的过程,叫suffer,那suffer过程当中出了哪些事呢?
14:10
从这个麦克方法出来,先到哪里,准确来说先到的是分区的方法,是分区吗?啊是不是获取了它是哪个分区的,然后再进入到这个管原缓区吧,哎,再进入缓绕分区啊,标记每个它是哪个分区的啊写进来,进来之后,那在这里面进行分区和排序对吧?啊排序也就是一写之前进行排序,那左侧角写出去,右侧角写出引啊在这里面,那这个环形网程可以多大?一默认100兆啊,到达多少的时候进行一些函数80 OK,那一写之前要对这个内容进行排序,那排序采用的方法是快排,对谁进行快排,Key的索引进行快排对吧?嗯,那K对这个索引快排。
15:10
排序的这个规则是什么?过点排序,按照质点顺序进行排序啊,所以说排序这块有这么几个点,一个是排序的手段,用的是快排啊,那对谁排序,对的是K的索引对吧?啊进行排序,OK,然后它排序的时候按照什么规律是质点顺序进行排序,所以说这才是达到真正的点上啊,要说的非常到位啊,OK,那行,那这个排法序出来进行排序,然后排完序的数据进行一写啊一写。那对预写的文件我们要进行规定排序啊归排序啊,规定排完序之后,把对应的数据放到相应的分区,然后排好序。
16:00
啊,等待reduce端来拉取对吧,那么端拉取这些数据。拉过来,拉取定分级的数据拉过来,首先放到内存当中,内存不够了,一写到磁盘,那不管是内存当中的还是磁盘当中的数据,要进行规定排序,归完定排序之后写入到维就的方法,写入之前可以进行一次分组排序,是这样吗?啊,这是排序啊,这是整个一个三化过程,那你这样说完只能得50分。嗯,还差50。查什么呢?那你说在整个这个发包过程当中,你做了哪些优化?如果你不把优化圈出来的话,那这个面试官是不是特别满意的。嗯。那好,那我们来看一看,那像这种这个优化,你就沿着这个数据线数据流啊去优化,首先它数据进入到环原缓冲区对吧,那还原缓冲区默认是100兆,你可以把它调整为200兆啊好,那它溢写的比例80%可以调整到90~95啊95那。
17:17
我增大这个内存和增大这个阀值目的是什么?减小一些的是知道吗?嗯,对,OK啊。那这是这块,那好,那产生了大量的这个,一写文件之后进行归零,它默认一次归零多少,十个啊,那这块我可以增大末级的个数,对吧,我十个是不是可以调整到15个或者20个,前提条件是机器的性能主不好啊,主抗OK好,那进行个变,那好,那在规定过程当中,我可以对数据进行combine。Combine的条件是什么?不影响最终的业务逻辑,那什么情况下影响最终业务逻辑,求平均值,那什么条件不影响呢?求和汇总对吧?啊汇总不影响啊,那这个要知道OK,那还有那归完序之后啊,放到对应的这个值盘上啊,准备传输。
18:22
那么我为了减少磁盘的IO,我可以对数据进行压缩啊压缩对吧?啊压缩,那好,问题来了,在六当中哪些地方能进行压缩?Map输入啊,Map输出reduce输出啊,这个三个地方,那么这三个地方它是有不同的特点的,输入的地方需要尽可能的让它支持切片啊切片,那么输出的地方要注意的是什么?速度尽可能的快好,那么支持界面的有哪几个压缩方法?
19:03
拉德罗和BJ嘛,To啊b to OK,那么输出这一块讲究的快,谁快耐,还有拉特罗也还可以啊,不是班长啊,这块不是班长,虽然很快啊,那这块呢是这啊之后呢是输出啊,输出。输出这块,如果我想永久的保存。那我肯定选择压缩率最高的啊,但是呢,它是不是压缩慢一些啊,压缩慢一些啊,那个是什么?记这个吧啊记这个OK,那你说输出端,还有如果输出端想让数据他他作为下一个卖就S的输入的话,那这块你要考虑可以让它支持碎片啊碎片OK哈,那你说这个压缩啊,你要知道这么三个位置啊,而且他们呢,处理的方式呢,是不一样的哈,OK。
20:04
行,那这个完事之后还没完,只是把map阶段整个的优化说完了,那么来到这个radio端,Radio端他要拉取对应分区的数据过来。那么在拉的过程当中,它一次默认是拉取五个啊,这样你可以这么画一下啊,这前面呢是迈克任务,那任务最后一题呢是RE6,那我一次只能拉取默认的啊五个,那我这一块可以调整增加拉取的个数啊,比如说十个啊或者15个啊这样那前提条件还是机器性能要OK啊OK,好,那拉取过来数据进入到还原缓冲去,那我可以啊,不是还原,是内存,我可以增大这个内存啊,增大内存啊,OK,那差不多了,那这样呢,这个优化手段map和reduce阶段搞定,那么从整体上还要进行进一步优化,什么优化呢?
21:07
跑任何任务是不是得有map task和reduce task?那map task任务默认的内存大小多少?没讲过,一说就没讲过,还好啊,这块还不错啊啊,终于有有说讲过了啊,一个G啊,又带几个内存默认。要是一个G啊,一个G,我可以证明一下啊,证明一下这个郭老师讲过来。要不然证明不了他清白了。之前班的同学都是老师讲啊啊直播没讲啊,相当还不错啊,好像有提到。再看看。这是咱的档了是吧,我没给更换嘛,好,那这一个来看,那这里面参数就是map阶段memory大小啊,一个map大可使用的支源上限是1024兆,也就是1G啊,1G在真正的开发当中呢,可以调到四到六个G啊,调G或者更高一些啊,肯定四个G往上,根据实际情况,那当然还有ma当中reduce的内存那一个人定T资源上限1024啊也20,那可以调整它的大小,那同时还可以调整CPU的格数啊,每一个map s用的最多的这个格数也可以调它,那还有每个reduce s CPU的格数。
22:46
啊,这些CPU你看很好记,一个是这个内存,那个就是CPU啊,那还有一块。还有一块我们可以调整啊,这些都是这些了啊。我们还可以调整什么呢?
23:01
他这个没写。我可以调整这个ma,就S失败重试的次数,比如说ma阶段和零六阶段啊,失败重试的这个次数往这写了吗?啊差不多哈,这里有一个map test最大城市次数对吧,还有一个失败城市的次数啊这一块。好,那就是这么几块啊,这么几块,比如说你进入CPU内存啊,我可以调大啊,这就OK了。行,那这个完成之后继续。啊优化,那么刚才其实我们只是把这个map,就是当中S优化完了。对吧,啊计算其实hi动还包括HDS对吧,不光是F法六程,那HDFS它最严重的问题就是小小文件啊小文件,那处理小文件的优化小段有哪些规则。
24:01
第一个归档也是哈,归档第二个啊压缩其实是改变这个数据格式啊,其实是将大量的小文件放到自定义input的里面去,其实是用的squ file这种存储格式,对吧?啊减少它的存储空间这一块,那还有一个是。先别说到这啊,先我先说一下这个吧,这个它优化了什么。哈,归档和自定义不同,慢了,他怎么就把这个来接来优化了呢,把多个小文件放到一个整体里面,对外是一个整体,对内是一个一个的文件。那它就减少了内部到的存储空间啊,因为你像这里面,比如说有1万个文件,那它对外只占用150个字节左右啊,对吧,如果说你要是把这110万个文件全放出来,那你要150个乘以一半。
25:06
是不是这么大空间呢?啊好,那这一块,那就是减少内部的这个压力,那下边还有一个。那就是这个JVM重用啊,那JVM重用它减少的是什么呢?你看前端全是一个一个的小文件,比如说0K11KB的1KB的全是这种小文件,那么你执行每一个任务的时候都要开和关,然后再开再关。频繁的开关,也就是说我开关的时间比我运行的时间还长啊,那这时候就可以开启,就要重用啊,就把这个东西不关掉,一直运行好,那速度就很快。成语运行啊,这个过程啊,那还有那个小文件处理当中还有一个combine file input form,它这个处理的是将多个小文件看成一个界面是吧?啊,开启一个mapb t把它放在一起处理啊,那这个呢,是减少这个mapb text的个。
26:20
啊,所以说他们的角动作是不一样的啊啊,那这个呢,就是这个整个它优化,如果你能达成这种状态,那就是把整个S及S的优化和还优化说完了,那基本上就是满分。啊,所以说要说就要说透了啊好,那这个完成之后,那下边就是到了盐。那雅安当中两道没题。啊,D大呢,就是延的调度策略和盐的攻克机制。嗯。一个是调造器,云拿是调到器,一个是工作机制,那我们先说这个,呃,比较难的工作机制吧,啊工作机制,那记不记得这个甲的工作机制呢?
27:04
好,这边是客户端,这边是集群啊,Resource manager。好,那客户端最后一行代码叫job点位for company提交代码对吧?提交代码,然后他把这个提交给resource manager啊申请运行这个应用程序,那么这个resource manager他就会返回他一个地址,给他地址干什么。让他把要运行的东西上传到这个地址里面去,对吧,一个机器地址,那这个客户端向这个机器地址提交哪三样东西。切片信息啊,配置文件,还有加号是代号啊价包那好,那切片未来影响什么。
28:00
影响未来卖态势的个数。卖肉。是不是动态更改的一些配置参数啊,按照这个参数去执行这个照表啊,那OK,那价包给他说你要运行谁,那肯定是运行它好,那这边提行完,提交完成之后,客户端告诉李校在这说我已经提交完了啊,你来运行我的任务,同时要求申请运行application master application master也是整个任务的广告啊,运行到那你一申请运行resource manager,它有N多个客户段。你有了投单,我就不能及时响应你,那对不起排队对不对,排队就形成一个任务,那这个任务就会放到对应的任务队列里面去啊,任务队列里面去。好,那这个任务队列里面啊,产生任务之后,就会有人空闲的去领取这个任务note manager。
29:03
啊,领取任务,那领取到这个任务,他要运行这个任务就需要支援,那需要支援的话,那就得。有容器container啊,一个container申请对应的CPU和内存啊,CPU内存同时在这里面又启动了I master对吧。啊,启动整个这行照这个老大吗?啊全他那启动它之后,他就会去这个集群这个地址去读这个切片的信息,读完一看,诶,我正好要启动两个慢拍,那这时候。这面儿正好有两个。这样,那他那边提交说你要我要运行两个外台,那好,那这个任务再分发给对应的measure。那manager需要运行任务,同样需要container容器。虚拟化出CPU和内存,好,那他们准备好之后,这边的APP master。
30:07
一条命令过去说开始执行,那这里面经过一个执行算出结果,放到对应的分区里面,也说map阶段就结束了。Map计段结束之后,接下来就要运行reduce阶段,那这里面假设是有两个分区,那这个分区读这里的数据啊,读过来,那这图这这图这啊,那reduce test也读完之后,他最终把这个数据写到比如说ES上。然起来。啊,运行完成,那这边F8就会告诉这个单车说我已经运行完这个任务了,你把我杀死了是吧,这一三死这时啊,这就是整个盐的一个调度工作机制啊,就这么简单。啊简不简单,那这里面呢,有这一块,这块呢是这个调度器啊,马上呢,我们来讲解一下这块的调度器啊好。
31:04
那说工作机制我说完了,那下面我们说一下这个雅的调度器,那盐的调用器有几种呢?三种分别是Fi啊,Fat,然后容量,还有公平调度器,默认是哪一个容量调度器,OK,这就是至少前两道题答对了,那下面第三道题就是它们之间的区别。好,那第一个方法的调度器,它属于单对列啊,先进先出,同一时间只有一个任务执行,OK,好,这是法搞定,那下一个容量调度器,容量调度器属于多队列啊,各队列每一个任务,每一个队列当中同一时间只有一个任务执行啊,它的并发度是队列的个数对列个数,你看这是三方并发度对吧,列个数啊,那下一个公平调度器,公平调度器首先它是多队列。
32:16
啊,多在列,每一个队列当中,同一时间有多个任务执行啊,那么执行的条件就是谁缺额越多,我就优先执行谁。啊,这是,那它的并发度呢,就是大于等于对列的个数啊,大于等于这个数,那么在实际开发当中,我怎么去选这个对列呢。什么场景下选公平,什么场景下选什么呢?对并发度要求比较高的场景,CPU容量比较大,我们选择公屏啊,一般在大公司愿意去选择公屏啊,因为它数据量比较大啊,数器的要求反啊,而且服务器性能还好,那我们肯定选择公屏,那容量大的器呢,一般就是。
33:08
对这个并发度要求不是特别高啊,这种中小型企业啊,往往去选择容量调速器啊,OK哈,这是这一块交气,你看还说就没了,这才几句话,20分钟搞定,你们学了四篇啊,轻轻松松啊。所以说你们要复习的话,那没没个头啊,我带你们复习的话,三天之内搞定,陪我睡三天妥妥的。这么多人呢,这你闹心是吧,我还有王老师呢,行啊,再就是孩子们啊,孩子们就这点事,你看就点事啊,那接下来呢,又额外给大家增加了这几道标红的,那在标红的呢,就是咱们在这个项目当中啊,用到的一个呢,是ADS的多多重,所以是在开发当中,我们要把这个A点板配成多目录,原因就是因为服务器它默认它有N多个插槽啊插槽,那么如果你只配置一个目的话,它只会指向一块磁板上,那这个磁盘满了,那你需要re balance或者一个重新去分配这个,呃目录,那就不合适了哈,OK,可以提前配上啊。
34:18
那下一个就是AJYS的参数调用,那参数呢,这里面给大家讲了两个啊,一个呢,是来处理内not和内not之间心跳一个通信的一个问题啊,如果通信延时比较长,尽量配置成20乘以log集群的个数啊,集群的个数啊这么一个值啊啊那还有一个参数是要求镜像文件和编辑日志尽量分开啊分开,那其实也给大家说说,大数据基金当中尽量录入的能分开的都分开对吧?啊,尽量能多录入的就多目录,OK。那项目经验那个就是基准测试啊,这可以说是目前啊,对你来说以后找不到的杀手锏啊,这种一说就OK了,就知道你干不干功,比如说你说卡卡测试啊,然后这个还做测试啊,卡卡监控。
35:15
啊,辅助监控这些一说才是真正的开发时候啊,要用到的啊,这些东西都是要用的,那这个基准测试,我们测的是IBFS呢,图性能和写性能同时还测,应该说准确来没怎么测是吧?啊告诉你们应该要测的是mmr的计算能力啊,计算能力啊,其实是做了一个随机数的一个排序啊排序OK,没了。这还有个结束了。啊,这样到。
我来说两句