美文网首页
Hive的架构

Hive的架构

作者: VincentLeon | 来源:发表于2020-04-03 00:10 被阅读0次

    Hive的架构原理


    image
    1. 两种客户端

    (1)CLI(command-line interface):命令行客户端(可以在shell中操作);

    (2)JDBC客户端

    1. 四种驱动Driver

    (1)SQL Parser解析器:检查sql语法是否有错误;

    (2)Physical Plan编译器:把sql语句转化成mr程序;

    (3)Query Optimizer优化器:优化sql语句;

    (4)Execution执行器:执行MR程序。

    1. 元数据库Meta store

    (1)Meta store是Hive数据库中的一个库,用于存储处理数据的元数据,包括:

    表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等。

    (2)Meta store默认存储在Hive自带的derby数据库中,但因为derby无法实现并发,实际工作中一般将derby替换为mysql;

    (3)Hive中处理的数据分两部分存放:

         ① 处理的结构化数据,存储在HDFS中
    
         ② 表的元数据存储在元数据库mysql中
    

    这样,有了表的元数据信息,就能找到对应的字段;然后把字段映射到结构化数据中,这样就可以通过映射形成一张虚表;

    也就是说,表的元数据和mysql中的结构化数据,通过映射,构成一张虚表,用于Hive查询数据分析。

    hive的存储过程:

    启动hive时,会初始化hive,这时会在mysql中生成大约36张表(后续随着业务的复杂会增加),然后创建表,会在mysql中存放这个表的信息(不是以表的形式存在的,而是把表的属性以数据的形式放在mysql中,这样在hive中使用sql命令一样是能够查到这张表的)。然后把本地的文本文件使用hive命令格式化导入到表中,这样这些数据就存放到hdfs中,而不是在mysql或hive中。
    ————————————————
    版权声明:本文为CSDN博主「攻城狮Kevin」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/wx1528159409/java/article/details/84667658

    相关文章

      网友评论

          本文标题:Hive的架构

          本文链接:https://www.haomeiwen.com/subject/tycrphtx.html