Hive体系结构《一》

来源:互联网 发布:淘宝图片空间无法删除 编辑:程序博客网 时间:2024/05/18 22:55
1.Hive体系结构

用户接口,包括 CLI(hive shell),JDBC/ODBC,WebUI(使用的很少)
元数据存储,通常是存储在关系数据库如 mysql, derby 中 
解释器、编译器、优化器、执行器 
Hadoop:用 HDFS 进行存储,利用 MapReduce 进行计算 

组件的基本功能

用户接口主要有三个:CLI,JDBC/ODBC和 WebUI
CLI,即hive  Shell命令行
JDBC/ODBC 是 Hive 的JAVA,与使用传统数据库JDBC的方式类似
WebGUI是通过浏览器访问 Hive 

Hive 将元数据存储在数据库中,如mysql、derby等
元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等

解释器、编译器、优化器完成 HQL(hive的sql) 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS 中,并在随后有 MapReduce 调用执行

Hive 的数据存储在 HDFS 中,大部分的查询由 MapReduce 完成(包含 * 的查询,比如 select * from table 不会生成 MapRedcue 任务) 


2.Metastore元数据
Metastore Hive表的元数据信息
Metastore包含如下的部分:
Database 是表(table)的名字空间。默认的数据库(database)名为‘default’
Table 表(table)的原数据包含信息有:列(list of columns)和它们的类型(types),拥有者(owner),存储空间(storage)信息
Partition 每个分区(partition)都有自己的列(columns)

3.Compiler
Driver调用编译器(compiler)处理HiveQL字串,这些字串可能是一条DDL、DML或查询语句
编译器将字符串转化为策略(plan)
    策略仅由元数据操作和HDFS操作组成,元数据操作只包含DDL语句,HDFS操作只包含LOAD语句
对插入和查询而言,策略由map-reduce任务中的具有方向的非循环图(directedacyclic graph,DAG)组成


4.Hive运行模式
Hive的运行模式即任务的执行环境
分为本地与分布式两种
我们可以通过mapred.job.tracker 来指明
设置方式: hive > SET mapred.job.tracker=local ; 

 

0 0
原创粉丝点击