简单翻译下hive开发者指南核心组件部分,加入了自己的一些理解,方便调试时理解
转载注明出处:
http://eclipse-cc.iteye.com/blog/1412001
Hive核心模块
Ø 序列号、反序列化
Ø 元数据存储
Ø 查询处理器
序列化、反序列化
略
元数据存储
元数据存储有以下模块组成:
ØMetaStoreServer:Thrift Server,处理语言无关的元数据请求
ØObjectStore:处理metaStore为SQL存储的情况,使用了JPOX ORM技术(基于JDO技术,JPOX已过时并被合并,现在的项目为DataNucleus),通过该途径可直接获得数据对象,只支持java语言。
ØMetaStoreClient:对应server,提供多种语言客户端,其中java client被Hive中其它组件使用,用于获得元数据
查询处理器
Ø解析与语义分析:解析SQL,生成语法树,将语法树转化为执行计划,最终将执行计划转化为Tasks,供Driver使用,SQL-》Tree-》Plan-》Tasks
Ø优化器:基于规则的优化器
Ø计划组件:计划组件指描述符,用于生成执行计划树,编译器会使用这些组件将SQL“描述”为执行计划树
Ø元数据层:用于编译器访问元数据
ØMR执行引擎:执行MR
ØHadoop输入、输出层:hive job的输入输出
Ø会话层:简单的hive会话实现
Ø数据类型:列数据类型信息,用于元数据管理、序列化反序列化
ØUDF、UDTF:包含实现于接口
ØTools:简单的分析工具