您的位置:首页 > 运维架构 > 网站架构

hive架构原理简析-mapreduce部分

2012-12-19 15:47 225 查看
整个处理流程包括主要包括,语法解析(抽象语法树,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之间的转换。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: