购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1 Hive技术概述

Hive数据仓库基于Hadoop开发,是Hadoop生态圈组件之一,具备海量数据存储和处理能力,是大数据领域离线批量处理数据的常用工具。本节将简单介绍Hive,包括Hive的起源、特点及其架构,这是学习与掌握Hive海量数据存储计算的第一步。

3.1.1 Hive简介

面对越来越大的数据规模,传统的数据库已经无法满足数据的管理和分析需求。为了解决这一问题,Facebook自主研发出一款数据管理规模远超传统数据库的新产品——Hive。

Hive是基于HDFS和MapReduce的分布式数据仓库。传统的数据库主要应用于基本的、日常的事务处理,如银行转账。数据仓库则侧重决策支持,提供直观的查询结果,主要用于数据分析。Hive与传统数据库(RDBMS)的对比如表3-1所示。

表3-1 Hive与传统数据库的对比

3.1.2 Hive的特点

Hive具有可伸缩、可扩展、高容错的特点,具体分析如下。

1)可伸缩:Hive为超大数据集设计了计算和扩展能力(MapReduce作为计算引擎,HDFS作为存储系统)。一般情况下,Hive可以自由地扩展集群的规模,无须重启服务。

2)可扩展:除了HQL自身提供的能力,用户还可以自定义数据类型,用任何语言自定义Mapper和Reducer脚本,以及自定义函数(普通函数、聚集函数)等,这赋予了Hive极大的可扩展性。

3)高容错:Hive本身并没有执行机制,用户查询的执行是通过MapReduce框架实现的,由于MapReduce框架本身具有高容错的特点,所以Hive也相应具有高容错的特点。

相较于传统的数据库,Hive的结构更为简单,处理数据的规模更为庞大,但它不支持数据更新,有较高的延迟,并且在作业提交和调度的时候需要大量的开销。也就是说,Hive不能在大规模数据集上实现低延迟、快速的查询。

3.1.3 Hive的架构

Hive架构由用户接口、Hive元数据库、Hive解析器、Hadoop集群组成,如图3-1所示。

图3-1 Hive架构

1)用户接口:用于连接访问Hive,包括命令行接口(CLI)、JDBC/ODBC和HWI(Hive Web Interface)3种方式。

2)Hive元数据库(MetaStore):Hive数据包括数据文件和元数据。数据文件存储在HDFS中;元数据存储在数据库中,如Derby(Hive默认数据库)、MySQL数据库等,Hive中的元数据包括表的名字、表的列和分区、表的属性、表的数据所在的目录等。

3)Hive解析器(驱动Driver):Hive解析器的核心功能是根据用户编写的SQL语法匹配出相应的MapReduce模板,并形成对应的MapReduce任务进行执行。Hive中的解析器在运行时会读取元数据库(MetaStore)中的相关信息。

4)Hadoop集群:Hive用HDFS进行存储,用MapReduce进行计算,也就是说,Hive数据仓库的数据存储在HDFS中,而业务实际分析计算是利用MapReduce执行的。

从图3-1可以看出,Hive本质上可以理解为一个客户端工具,或是一个将SQL语句解析成MapReduce作业的引擎。Hive本身不存储和计算数据,它完全依赖于HDFS和MapReduce。 qpZ/Py04+N+hvxoQKZR5pP1Js6Y0WAWZe1eVvEL6FP7hcFcU6sH+yf3RTvfrYSh+

点击中间区域
呼出菜单
上一章
目录
下一章
×