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架构

    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是将数据存储到文件系统中的数据存储技术。

 

工作流程 

  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,

     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接口

 

posted @ 2018-08-13 14:23  Coding_Now  阅读(2315)  评论(0编辑  收藏  举报