Hive的概念工作流程优劣势架构介绍

Posted 互联网IT信息

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive的概念工作流程优劣势架构介绍相关的知识,希望对你有一定的参考价值。

1. Hive的简介


概念:

    Hive是一个基于Hadoop的开源数据仓库解决方案。它使用HDFS作为数据存储层;提供一种类SQL的语言HiveQL,通过将HiveQL语句编译成MapReduce完成数据的计算。同时,对于复杂的分析工作,Hive支持用户自定义MapReduce任务。

    在Facebook,Hive数据仓库包括几千张表和超过700T的数据,并被超过100个用户用于报表和即时查询。


2. Hive设计的目的:


    Hive设计目的就是用来管理和查询结构化数据,它屏蔽了底层将sql语句转换为MapReduce任务过程,为用户提供的简单的SQL语句,将用户从复杂的MapReduce编程中解脱出来。

    简单来说,Hive就是在Hadoop上架了一层SQL接口,可以将SQL翻译成MapReduce去Hadoop上执行,这样就使得数据开发和分析人员很方便的使用SQL来完成海量数据的统计和分析,而不必使用编程语言开发MapReduce那么麻烦。


3. Hive工作流程图


    Hive提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作


4. 使用Hive的原因


1)简单易上手。提供了类sql查询语言HQL,提供快速开发的能力。

2)避免了去写MapReduce,减少开发人员的学习成本。

3)统一的元数据管理(Hcalalog),可与pig,presto等共享。

4)为超大数据集设计的计算/扩展能力。MR作为计算引擎,HDFS作为存储系统。


5. Hive的特点


1)可扩展Hive可以自由的扩展集群的规模,一般情况下不需要重启服务。

2)延展性Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。

3)容错良好的容错性,节点出现问题SQL仍可完成执行。


6. Hive与SQL的比较


1 查询语言

1)hive使用类SQL的HQL

2)sql使用sql

2 数据存储位置

1) hive是将数据存储在HDFS中

2) sql可以将数据保存在块设备或者本地文件系统中

3 数据格式

1) Hive 中没有定义专门的数据格式,数据格式可以由用户指定,用户定义数据格式需要指定三个属性:列分隔符(通常为空格、”\t”、”\x001″)、行分隔符(”\n”) 2)以及读取文件数据的方法(Hive 中默认有三个文件格式 TextFile,SequenceFile 以及 RCFile)

数据库中,不同的数据库有不同的存储引擎,定义了自己的数据格式

4 数据更新

1) Hive 中不支持对数据的改写和添加,所有的数据都是在加载的时候中确定好的

2) sql支持数据更新

5 执行延迟

1) hive延迟性高

2) sql延迟性低

6 扩展性

1) hive扩展性好

2) sql扩展性有限

7 索引

hive和sql都支持索引

8 分区

hive和sql都支持分区


7. Hive的架构



8. Hive核心概念解释


元数据仓库(MetaStore):

1)存储元数据的组件,Hive的元数据保存了表的属性和服务信息,为查询操作提供依据。

2)使用RDBMS存储元数据;

3)默认使用Deby存储,常用mysql进行存储;

驱动(Driver):

1)包括:解析器,编译器,优化器,执行器

2)当执行一个HiveQL时,控制HiveQL的生命周期,同时维护着会话句柄及进行会话统计。

3)查询编译器(Query Compiler):

将HiveQL编译成有向无环图形式的map/reduce任务,当有HiveQL经过Driver,HiveQL会先经过Query Compiler

4)优化器(Opeimizer)

5)执行引擎(Execution Engine):按照顺序执行由编译器产生的任务;

Thrift 服务(Thrift Server):

一种跨语言服务的可伸缩软件框架;

客户端接口

1)JDBC/ODBC接口:还不成熟,不支持所有的JDBC/ODBC  API;

2)命令行接口(Command Line Interface)

3)Web Interface

以上是关于Hive的概念工作流程优劣势架构介绍的主要内容,如果未能解决你的问题,请参考以下文章

公有云与私有云优劣势调研

微服务系列:服务注册与发现的实现原理及实现优劣势比较

高并发架构系列:KafkaRocketMQRabbitMQ的优劣势比较

说说JVM常用垃圾回收器的特点、优劣势、使用场景和参数设置

微服务Dubbo和SpringCloud架构设计优劣势比较

关于MySQL集群架构优劣势与适用场景的分析与思考