HIVE架构

1.hive是数据仓库,在hadoop基础上处理结构化数据;它驻留在hadoop之上,用户对数据的统计,查询和简单的分析操作。

2.hive不是

 a.关系型数据库

 b.OLTP

 c.实时查询和行级更新操作

3.hive特点

a.表模型存储在database(关系型)中,处理的数据存储在HDFS上;

  b.设计模式遵循OLAP

  c.它提供了一套类SQL的语言(HiveQL or HQL),用于执行查询

  d.它是简单的,快速的,可扩展的和易伸缩的

4.hive架构




hive ytd去重计数 hive如何去重_hive ytd去重计数


a.(用户接口)User Interface:hive提供Web UI 、command line和HD Insight;

  b.(元数据):hive选择独立的的数据库(MySQL)用于存储metadata,元数据包含:表的信息、databases信息、表的列信息、字段类型信息和HDFS mapping(映射);

  c.(HQL处理引擎)HiveQL Process Engine:HiveQL类似于SQL,用于查询转移的模式信息。它是对MapReduce程序的传统方法的替换之一

  d.(执行引擎)Execution Engine:HiveQL流程引擎和MapReduce的连接部分是Hive执行引擎。执行引擎处理查询并生成与MapReduce结果相同的结果

  e.(HDFS or HBASE):Hadoop分布式文件系统或HBASE是将数据存储到文件系统中的数据存储技术。

工作流程


hive ytd去重计数 hive如何去重_元数据_02


1.(执行查询操作)Execute Query

命令行或Web UI之类的Hive接口将查询发送给Driver(任何数据库驱动程序,如JDBC,ODBC等)以执行。

2.(获取计划任务)Get plan

Driver借助查询编译器解析查询,检查语法和查询计划或查询需求。

3.(获取元数据信息)Get Metadata

编译器将元数据请求发送到Metastore(任何数据库)。

4.(发送元数据)

MetaStore将元数据作为对编译器的响应发送出去。

5.(发送计划任务)Send Plan

编译器检查需求并将计划重新发送给Driver。到目前为止,查询的解析和编译已经完成。

6.(执行计划任务)Execute Plan

Driver将执行计划发送到执行引擎。

7.(执行Job任务)Execute Job

在内部,执行任务的过程是MapReduce Job。执行引擎将Job发送到ResourceManager,(在这里注意,执行器在执行方案时,会判断:如果当前方案不涉及到MR组件,比如为表添加分区信息、比如字符串操作等,比如简单的查询操作等,此时就会直接和元数据库交互,然后去HDFS上去找具体数据。如果方案需要转化成MR job)ResourceManager位于Name节点中,并将job分配给datanode中的NodeManager。在这里,查询执行MapReduce任务.

7.1.(元数据操作)Metadata Ops 在执行的同时,执行引擎可以使用Metastore执行元数据操作。

8.(拉取结果集)Fetch Result 执行引擎将从datanode上获取结果集;

9.(发送结果集至driver)Send Results 执行引擎将这些结果值发送给Driver。

10.(driver将result发送至interface)Send Results Driver将结果发送到Hive接口