zoukankan      html  css  js  c++  java
  • Hive架构

    一、Hive是什么,作用是什么?

      可以这么简单得理解,Hive是一个工具。它得作用是查询hdfs文件系统上得海量数据,方式是通过HQL语句查询(类似sql)。

    或许你又有疑问了,明明可以在java程序里直接访问HDFS的数据了啊,为什么还出来一个Hive工具,不是多此一举吗?这种想法的确是对的,而为什么还需要hive呢,

    其实hive这个工具就是为了方便那些熟悉sql语句,但是java技能水平有限的小伙伴们。

    二、Hive架构:

                            


    这里我们把Hive架构图从上往下分析:  

    1.最顶层——用户接口:

      包括CLI(command line interface)命令行,Client 和 Web UI。CLI是开发过程中常用的接口。

    2.Metadata:

      hive 的元数据结构描述信息库,元数据默认是存储在数据库derby中,线上一般使用mysql。在hive的配置文件hive-site.xml中配置:

                      

      在配置文件中加入这一段时候,就会在途中路径中指定的mysql中新建hive_metadata这个数据库,hive_metahive就是拿来存储hive的元数据,并不会储存HDFS上的数据文件的内容,只会存储数据文件的相关信息。在查询中的主要功能就是结合元数据的信息,把HDFS映射成table提供给HQL来查询。

    3.Driver: 解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后由  MapReduce调用执行。简单的来说:就是把HQL转成MapReduce的一个过程。

    4.接下来就是HADOOP

      把MapReduce任务放到HADOOP框架中执行,查询HADOOP中的HDFS文件系统中的海量数据。

      

      

     

      

      

      

  • 相关阅读:
    第三课 本代码用于学习vue根组件数据的各种绑定
    第七课 键入事件,点击绑定事件,数据判断及删除事件
    第九课 代码封装localstorage
    第八课 没有封装localstorage
    第五课 vue的事件调用自定义方法
    第六课 点击事件调用自定义方法
    new多个文件编程和split单个文件多个窗口编程
    线性表特点和用法总结
    scanf在输入整型数据和字符型数据时的不同
    tasklet源码注释翻译
  • 原文地址:https://www.cnblogs.com/Zchaowu/p/7384703.html
Copyright © 2011-2022 走看看