hive架构原理简析-mapreduce部分

整个处理流程包括主要包括,语法解析(抽象语法树,AST,采用antlr),语义分析(sematic Analyzer生成查询块),逻辑计划生成(OP tree),逻辑计划优化,物理计划生成(Task tree),以及物理计划执行组成。

下面这张图(不知道是谁画的)简要的说明了整个处理的流程

 

这里重点说一下物理计划生成,以及执行。

物理计划的生成是根据逻辑操作树(operator)来生成的,物理计划由Task对象执行的,每个task有一个woker对象,work代表物理计划的描述。

   主要有FetchWork,MoveWork,MapredWork,CopyWork,DDLWork,FunctionWork,ExplainWork,ConditionalWork

物理计划的执行,是针对每一个物理计划而调用execute方法。

   主要有FetchTask,ConditionalTask,CopyTask,DDLTask,ExplainTask,MapRedTask,MoveTask

其中MapRedTask实现的功能是mapreuce的客户端,它根据woker的描述MapredWork,生成一个plan xml文件,作为hadoop jar [params]相关的命令参数,传递给

mapreduce来执行(ExecMapper,ExecReducer)。

下面这张图比较清晰的说明了在mapreduce的过程中数据的处理过程:

 

FileFormat,需要在定义table时,指定数据的存储格式(store as ),比如TEXTFlLE,SEQUENCEFILE,RCFILE等,当然可以自定义数据存储的格式(store as ROW FORMAT ),

数据的存储格式FileFormat主要是进行record(writable)在文件中是如何存储的,在map时提供文件的读,reduce时提供文件的写。

SerDe,数据的格式转换,writable到operator所用的object之间的转换。

posted @ 2018-04-17 10:05  可可的私房菜  阅读(788)  评论(0编辑  收藏  举报