温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
好的同学们,那刚才呢,我们是将整个。Hick翻译成MR任务的流程就讲完了对吧?那最后呢,我们再回过头来整体的看一下我们这个流程图啊,那我们打开一个模板啊,然后接下来呢,我们打开我们的PPT啊呃,首先呢,肯定是执行我们的搜语句,在代码当中看到它是按分号隔开才去运行的,如果说只要我们不敲分号,它就认为我们是一条S语句对吧?它继续往后面拼接啊嗯,好,那解析参数定义输入输出流,然后呢,按分号切割啊,这是我们刚才看到的啊,在drive当中呢,主要做了这么三件事情,第一个将ha格。转化为ast,这个其实就是解析器所工作的一个过程,那have当中用到的解析器呢,叫al对吧,那是一个额外的语,额外的框架啊,那你要学习的话,还要学它的一个语法啊,好,那第二件事呢,将ast转化为task,那在这个当中它是比较麻烦的。
01:05
对吧,它是比较麻烦的,它中间呢经过了很多步骤啊,最后呢是提交任务作业去执行,也就是说提交一个MR任务跟我们写的driver没什么两样了啊,那么第一个将hacker转化为这个抽象语法数用的是pass u.pass啊呃,中间呢。先转化为token,然后进行解析,生成我们的ast数,第二个是我们继续对ast进行一个解析,转化为最终的任务数,那用的是semetic里边的analyzer这个方法对吧?那在过程当中呢,我们可以看到第一个将它转化为。查询框继续转化为。Operate tree啊,然后继续逻辑优化,因为它是一个逻辑执行计划,进对它进行逻辑优化之后转成task tree啊,当然在这个过程当中,生成task的时候还得考虑到底是task t引擎还是Spark引擎都可能不太一样了,对吧?最后生成我们的task之后呢,将这个内容变成我们的物理执行计划,好好,那么第三步提交啊,提交的话其实就比较简单了,呃,定义partition呢,当然我们这个不一定按顺序写的对吧?也就是说给job当中呢,设置各种各样的类,包括输出输入我就没有全部去写了,包括我们也看到输出的key value的类都会写上啊,实例化job,最后呢,呃,Submit job就完了,对吧?这是整个hack翻译成MR的一个流程啊,整个的一个流程,所以现在呢,大家就比较清楚了,这个东西是怎么来的,因为我们从源码的角度呢,给大家去点了一下对吧。
02:48
OK,这是我们对于第二章整体的一个总结,开头我们看了一下PPT,结尾的时候呢,在看完源码的基础上再把PPT看一遍,加深一下印象,大家最终需要把这张图肯定要能记得住的啊。
我来说两句