zoukankan      html  css  js  c++  java
  • 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接口

  • 相关阅读:
    IOS开发中实现UITableView按照首字母将集合进行检索分组
    IOS开发中设置导航栏主题
    IOS中使用.xib文件封装一个自定义View
    IOS中将字典转成模型对象
    WindowsPhone8中LongListSelector的扩展解决其不能绑定SelectdeItem的问题
    WindowsPhone8.1 开发-- 二维码扫描
    tomcat 开机自启
    redis ubuntu 开机自启
    webStorm 中使用 supervisor 调试
    ubuntu 14.04 tab失效问题
  • 原文地址:https://www.cnblogs.com/lyr999736/p/9467854.html
Copyright © 2011-2022 走看看