美文网首页
Hive知识梳理

Hive知识梳理

作者: Moon_魔宽 | 来源:发表于2019-01-15 23:50 被阅读0次

    版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/1ca9fbfe2fbb

    【Hive学习路线图】

    【什么是Hive】

    1、Facebook实现并开源

    2、是基于Hadoop的一个数据仓库工具

    3、将结构化的数据映射为一张数据库表

    4、提供HQL(Hive SQL)查询

    5、底层数据存储在HDFS上

    6、本质是将SQL语句转换为MR任务运行

    7、适用于离线批量数据计算、统计分析,也就是数据仓库,使不熟悉MR的用户很方便利用HQL处理和计算HDFS上结构化数据

    【特点】

    1、Hive启动延时很长,不适用交互查询

    2、不支持事务(没有增删改,所以主要应用OLAP联机分析处理,而非OLTP联机事务处理)

    【内部架构】

    Hive内部架构由四部分组成:

    1、用户接口

    CLI,Shell (command line interface)终端命令行,采用交互式形式使用Hive命令行与Hive交互(调试、生产、学习)

    JDBC/ODBC,是Hive基于Java或C操作提供的客户端,用户(运维、开发、应用)通过其连接至Hive Server服务

    Web UI,通过浏览器访问

    2、跨语言服务

    thirft server可以用来进行可扩展且跨语言的服务,可以让用户使用不同的编程语言来调用Hive的接口。

    3、底层的Driver

    Driver组件完成HQL查询语句从词法分析、语法分析、编译、优化及生成逻辑执行计划的生成。生成的逻辑执行计划存储在HDFS中,并由MR调用执行。

    Hive的核心是驱动引擎,这与RDBMS很像,由四部分组成:

    (1)解释器:将Hive SQL语句转换为抽象语法树(AST)

    (2)编译器:将语法树编译为逻辑执行计划

    (3)优化器:对逻辑执行计划进行优化

    (4)执行器:调用底层运行框架执行逻辑执行计划

    执行流程:Hive Sql通过命令行或客户端提交,经过compiler编译器,运用Metastore中的元数据进行类型检测和语法分析,生成一个逻辑方案,通过优化,产生一个MR任务。

    4、元数据存储

    元数据是存储在Hive中的数据描述信息,包括:表名、列、分区及其属性、表的属性、数据所在目录等。

    Hive自带默认会存将Metastore存在Derby数据库中。由于Derby只允许一个会话连接,不适合多用户操作,不适用生产环境。所以生产常用mysql作为元数据库,Hive和Mysql之间通过MetaStore服务交互。

    【数据组织】

    1、Hive存储结构包括数据库、表、视图、分区、表数据

    数据库、表、分区等都都对应HDFS上的一个目录。表数据对应HDFS对应目录下的文件。

    2、Hive中所有数据都存储在HDFS上,可支持TextFile、SequenceFile、RCFile、PQ或自定义格式,目前生产采用RCFile

    3、Hive表分隔符

    Hive默认列分隔符:Ctrl+A,\001

    默认行分隔符:换行符 \n

    4、数据模型

    database:在HDFS中表现为{hive.metastore.warehouse,dir}目录下一个文件

    table:在HDFS中表现为所属database目录下的一个文件夹

    external table:与table类似,不过其数据存放位置可以指定任意HDFS目录

    partition:在HDFS中表现为table目录下的子目录

    bucket:在HDFS中表现为同一个表目录或者分区目录下根据某个字段值进行hash散列之后的多个文件

    view:与传统数据库类似,只读

    5、除元数据存储在mysql中,其他所有数据都存放在HDFS上

    6、Hive表分为内部表、外部表、分区表和Bucket表

    【内部表和外部表区别】

    删除内部表,表元数据和数据均删除

    删除外部表,表元数据删除,数据保留

    使用外部表的场景是针对一个数据集有多个不同的 Schema

    【分区表和分区桶】

    Hive数据表可以根据某些字段进行分区操作,细化数据管理,提高查询性能。

    表和分区可以进一步被划分为Buckets,分桶表的原理类似MR编程中的HashPatrion。

    相关文章

      网友评论

          本文标题:Hive知识梳理

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