Hadoop基础教程-第11章 Hive:SQL on Hadoop(11.1 Hive 介绍)(草稿)

第11章 Hive:SQL on Hadoop

11.1 Hive 介绍


11.1.1 为什么需要Hive?

Hadoop的出现,正如当年Java语言的出现,得到了极大的关注和广泛应用。Hadoop及其生态圈提供了一个成熟高效的处理大数据的解决方案。然而,一个问题出现:开发人员如何从现有的基于关系数据库的数据架构转移到Hadoop上呢?对于熟悉SQL技术的人员,编写专业的MapReduce程序并非易事。实际上,对于一个简单的问题,在原有关系数据库基础上只需一个简单的SQL语句即可解决,而转移到Hadoop上后需要编写复杂的MapReduce程序。Hive的出现就是来解决这个问题,Hive让那些精通SQL而Java技术相对薄弱的数据分析师能够利用Hadoop进行各种数据分析。

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。 
在Hadoop生态圈中还有一个Pig组件,作用与Hive类似,但是Pig提供的不是SQL接口,而是一种叫做Pig Latin的语言接口,增加了学习成本。所以Pig没有Hive这么流行了。

在实际开发中,80%的操作都不会直接由MapReduce程序完成,而是由Hive来完成。所以说Hive实践性、使用频率非常高,不需要高深的理论,只需熟悉SQL即可。掌握Hive对于使用Hadoop来说至关重要。

11.1.2 Hive架构

简单地说,Hive底层存储使用了HDFS,查询语句转变为MapReduce作业。 
这里写图片描述 
与Hadoop的HDFS和MapReduce计算框架不同,Hive并不是分布式架构,它独立于集群之外,可以看做一个Hadoop的客户端。我们可以通过CLI(命令行接口)、Web GUI(Web接口)以及Thrift Server提供的JDBC或ODBC方式访问Hive,其中最常用的是命令行接口。 
用户通过以上方式向Hive提交查询命令,命令进入Driver模块后进行解释和编译,SQL优化,然后生成执行计划,执行计划将查询分解为若干个MapReduce作业。

11.1.3 Hive特点

Hive 已是目前业界最为通用、廉价的构建大数据时代数据仓库的解决方案。 
(1) Hive 最大的特点是 Hive 通过类 SQL 来分析大数据,而避免了写 MapReduce Java 程序来分析 
数据,这样使得分析数据更容易。 
(2) 数据是存储在 HDFS 上的,Hive 本身并不提供数据的存储功能 
(3) Hive 是将数据映射成数据库和一张张的表,库和表的元数据信息一般存在关系型数据库上 
(比如 MySQL)。 
(4) 数据存储方面:他能够存储很大的数据集,并且对数据完整性、格式要求并不严格。 
(5) 数据处理方面:不适用于实时计算和响应,使用于离线分析。

灰常灰常感谢原博主的辛苦工作,为防止删博,所以转载,只供学习使用,不做其他任何商业用途。 https://blog.csdn.net/chengyuqiang/article/details/76730330

第11章 Hive:SQL on Hadoop

11.1 Hive 介绍


11.1.1 为什么需要Hive?

Hadoop的出现,正如当年Java语言的出现,得到了极大的关注和广泛应用。Hadoop及其生态圈提供了一个成熟高效的处理大数据的解决方案。然而,一个问题出现:开发人员如何从现有的基于关系数据库的数据架构转移到Hadoop上呢?对于熟悉SQL技术的人员,编写专业的MapReduce程序并非易事。实际上,对于一个简单的问题,在原有关系数据库基础上只需一个简单的SQL语句即可解决,而转移到Hadoop上后需要编写复杂的MapReduce程序。Hive的出现就是来解决这个问题,Hive让那些精通SQL而Java技术相对薄弱的数据分析师能够利用Hadoop进行各种数据分析。

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。 
在Hadoop生态圈中还有一个Pig组件,作用与Hive类似,但是Pig提供的不是SQL接口,而是一种叫做Pig Latin的语言接口,增加了学习成本。所以Pig没有Hive这么流行了。

在实际开发中,80%的操作都不会直接由MapReduce程序完成,而是由Hive来完成。所以说Hive实践性、使用频率非常高,不需要高深的理论,只需熟悉SQL即可。掌握Hive对于使用Hadoop来说至关重要。

11.1.2 Hive架构

简单地说,Hive底层存储使用了HDFS,查询语句转变为MapReduce作业。 
这里写图片描述 
与Hadoop的HDFS和MapReduce计算框架不同,Hive并不是分布式架构,它独立于集群之外,可以看做一个Hadoop的客户端。我们可以通过CLI(命令行接口)、Web GUI(Web接口)以及Thrift Server提供的JDBC或ODBC方式访问Hive,其中最常用的是命令行接口。 
用户通过以上方式向Hive提交查询命令,命令进入Driver模块后进行解释和编译,SQL优化,然后生成执行计划,执行计划将查询分解为若干个MapReduce作业。

11.1.3 Hive特点

Hive 已是目前业界最为通用、廉价的构建大数据时代数据仓库的解决方案。 
(1) Hive 最大的特点是 Hive 通过类 SQL 来分析大数据,而避免了写 MapReduce Java 程序来分析 
数据,这样使得分析数据更容易。 
(2) 数据是存储在 HDFS 上的,Hive 本身并不提供数据的存储功能 
(3) Hive 是将数据映射成数据库和一张张的表,库和表的元数据信息一般存在关系型数据库上 
(比如 MySQL)。 
(4) 数据存储方面:他能够存储很大的数据集,并且对数据完整性、格式要求并不严格。 
(5) 数据处理方面:不适用于实时计算和响应,使用于离线分析。

猜你喜欢

转载自blog.csdn.net/airufengye/article/details/80949188