设为首页 加入收藏

TOP

hive架构原理简析-mapreduce部分
2018-12-05 01:06:27 】 浏览:23
Tags:hive 架构 原理 简析 -mapreduce部分
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yangbutao/article/details/8331937

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

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

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

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

主要有FetchWorkMoveWorkMapredWorkCopyWorkDDLWorkFunctionWorkExplainWorkConditionalWork

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

主要有FetchTaskConditionalTaskCopyTaskDDLTaskExplainTaskMapRedTaskMoveTask

其中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之间的转换。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇hive集成spark和mysql 下一篇解决hive中文乱码

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目