从入门到放弃之大数据Hive

开门见山,今天说说Hive!!!

什么是Hive

Hive:由Facebook开源用于解决海量结构化日志的数据统计。 

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。

本质是:将HQL转化成MapReduce程序 

1)Hive处理的数据存储在HDFS 

2)Hive分析数据底层的实现是MapReduce 

3)执行程序运行在YARN上

为什么使用Hive

1)直接使用hadoop所面临的问题 

(1)人员学习成本太高 

(2)项目周期要求太短 

(3)MapReduce实现复杂查询逻辑开发难度太大

2)Hive的好处 

(1)操作接口采用类SQL语法,提供快速开发的能力。 

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

(3)扩展功能很方便。

Hive架构概述

 

从入门到放弃之大数据Hive

上图中,Hive通过给用户提供的一系列交互接口,接收到用户的指令(SQL),使用自己的Driver,结合元数据(MetaStore),将这些指令翻译成MapReduce,提交到Hadoop中执行,最后,将执行返回的结果输出到用户交互接口。

Hive 的特点

1)操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手) 

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

3)Hive的执行延迟比较高,因此hive常用于数据分析,对实时性要求不高的场合; 

4)Hive优势在于处理大数据,对于处理小数据没有优势,因为Hive的执行延迟比较高。 

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

Hive和数据库比较

由于 Hive 采用了类似SQL 的查询语言 HQL(hive query language),因此很容易将 Hive 理解为数据库。其实从结构上来看,Hive 和数据库除了拥有类似的查询语言,再无类似之处。本文将从多个方面来阐述 Hive 和数据库的差异。数据库可以用在 Online 的应用中,但是Hive 是为数据仓库而设计的,清楚这一点,有助于从应用角度理解 Hive 的特性。