深入浅出解析Hive?

     Hive是Apache(ASAF)官方提出的一个基于HDFS文件系统的一个外围小工具。我们称之为“数据仓库”。数据仓库意思就是存储数据的地方。实则不然,他并不存储数据!他的文件数据都存在HDFS上。当然除了HIVE本身的那些元数据以外(后面会讲到)。那么笔者认为,Hive的意思就是提供了一个工具、一个渠道,一个方式,一个概念,通过它去操作HDFS的数据,包括上传、下载、导入、导出等。

那么Hive的工作原理是什么呢?Hive提供了类SQL的语句功能-HQL。执行HQL语句,Hive能够将这种支持本身功能的HQL语句转换为Hadoop的MapReduce程序。这是程序自己完成的。也就是说,我们只要懂SQL语句,那么我们就能完成对HDFS文件系统上的操作。对吧。因此,对于初级开发者或者运维人员来说,就不要再去写复杂的MR代码了,也不用去考虑它自己的运行框架、简化了我们的开发运维工作。因为,只需要用它就可以完成了类似的大数据系统平台的操作。

实际生产中,我们的Hive的选择,要根据Hadoop的安装版本来决定,一般都匹配一致的版本。比如Apache hadoop---> Apache Hive. 比如  CDH hadoop ---> CDH hadoop hive.注意一定是对应的。

Hive的安装前提:

      hive 安装的机器要能保证能访问到HDFS集群,可以是单独的机器,也可以是复合使用的机器。只要满足这点就可以了。

Hive为什么要跟Mysql、Oracle这种关系型数据进行整合连接呢?

 其实Hive本身是可以不要这些外用的数据库的。因为Hive本身在安装的时候就自身存在元数据信息了,它的元数据信息存在自身的内嵌的derby数据库里,这是Hive本身自己自带的。但是它呢有2个缺点,它支持单个客户端连接,就是我执行一个Hive或者Hive-server它就饱和了。你再打开一个终端,它就报错。第二个缺点就是它无法集中管理它的Metadata。我开一个终端,他就再当前目录下存放元数据。想想多麻烦,数据无法集中等于信息无法实时的更新。等于HIve没用。

因此,我们就需要一个外用的、支持多用户的、元数据集中管理的这样一个数据库软件,那么Mysql、Oracle的作用就来了......Hive支持JDBC、ODBC的方式进行连接

说了这么多,Hive这么强大,它的应用场景是什么?缺点如何?

   Hive并不是一个存储框架 他的数据存在HDFS、其实就是类似于一个hadoop的客户端。能写能读的一个客户端。HIve装一个就可以了,它又不存储数据,它又不计算、因为延迟比较高,适合离线分析。不太适应实时性的场合、支持读多写少的一款数据分析工具。它自动生成MR程序,效率比较低。

好,今天就分享这篇,安装部署细节很简单,操作也简单。适合大家学学。

发布了7 篇原创文章 · 获赞 6 · 访问量 4511

猜你喜欢

转载自blog.csdn.net/weixin_43236191/article/details/103442493