大数据课程F1——HIve的概述

文章作者邮箱:[email protected]              地址:广东惠州

 ▲ 本章节目的

⚪ 了解HIve的概念;

⚪ 了解HIve与数据库的区别;

⚪ 了解HIve的特点;

一、概述

1. Hive原本是由Facebook公司开发后来贡献给了Apache的一套用于进行数据仓库管理的机制。

2. Hive提供了类SQL(HQL,Hive QL)语句来管理HDFS上的大量数据,底层会将SQL转化为MapReduce来交给Hadoop YARN来执行,因此,Hive的执行效率相对比较低,所以Hive适合于离线批处理场景。

二、Hive和数据库的比较

1. 查询语言:数据库提供了标准的SQL语言,符合三范式的设计;Hive提供了类SQL语言,不完全符合SQL的规则。

2. 数据存储位置:数据库往往是将数据落地到本地磁盘上,以文件形式来存储;Hive是将数据落地到HDFS上。

3. 数据可靠:数据库如果不配置,那么往往是不可靠,即意味着单台服务器宕机,那么数据就会暂时丢失;Hive的数据基于HDFS来存储,HDFS支持多副本机制,那么也就意味着即使某一台服务器宕机也不会产生数据的丢失。

4. 数据更新:数据库往往是实时捕获数据(例如注册、订单数据等都是实时产生的),因此数据库中的数据会进行大量频繁的读写;Hive中存储的数据往往是历史数据,因此数据本身一般不会产生读写。

5. 索引:数据库中一般会自动针对主键来建立主键索引,在使用过程中也可以针对其他字段来手动建立索引;由于Hive管理的数据量相对比较大,所以在建表的时候并不会扫描数据,因此不会自动建立索引。

6. 执行引擎:数据库往往会提供自己的执行引擎;Hive是将SQL转化为MapReduce来执行,因此Hive是基于Hadoop YARN来执行的。

7. 可扩展性:数据库要严格遵循ACID的定义,所以数据库的扩展能力较差(到目前为止,最大的数据库集群Oracle支持最多不超过100台服务器);Hive是基于HDFS来存储,HDFS的集群规模就决定了Hive集群的扩展规模。

8. 数据规模:数据库因为集群规模的限制,所以能存储GB级别的数据;Hive基于HDFS,因此能够轻松的存储上TB级别的数据甚至于PB级别。

三、特点

1. 优点

a. 提供了类SQL来进行操作,也就意味着Hive相对易于学习,易于推广。

b. 避免程序员去学习MapReduce的规则,在Hive底层会自动将SQL转化为MapReduce,降低了程序员的学习成本。

c. Hive能够批量的处理数据,因此在大数据场景中更具有优势。

d. 支持用户自定义函数,允许用户根据需求定义当前场景可以使用的函数。

2. 缺点

a. Hive采用了类SQL语言,使得它本身的表达能力比较有限:当需求比较复杂的时候,此时SQL的写法可能比较复杂,甚至于SQL无法表达。

b. Hive的效率相对比较低:本身MapReduce的执行效率就不高,Hive还要将SQL转化为MapReduce,然后才能执行,所以就导致Hive的执行效率更低。

c. Hive不擅长做数据挖掘。

你可能感兴趣的:(大数据,hive)