大家好,我是摇光~
最近在学习Hadoop的时候,学习了Hadoop、HDFS、MapReduce是什么,也懂得了Hadoop大概能为我们做什么,还有小伙伴不懂Hadoop的可以看这篇文章:
大白话理解Hadoop是什么?
众所周知,Hadoop是使用 Java 开发的,但是我们在工作的时候,经常不会直接写java程序去进行数据存储和数据计算,通常是使用Hive、HBase等软件;那Hive、HBase和Hadoop是什么关系呢,接下来我们来讲下为什么~
一、Hive是什么?
接下来我们也是用几个问题来了解到 Hive
上面解释了Hive是建立在Hadoop之上的,我们就知道Hadoop和Hive肯定是有一定关系的。那他们有什么关系呢?
通过上面的解释,是不是就很清楚了,其实Hive就是一个壳子罢了,Hive利用HDFS存储数据,利用MapReduce查询分析数据。
那我们肯定就会问,为什么不直接使用 HDFS和MapReduce,还需要去使用Hive?
其实总结下来,Hive的最大优点就是能够让用户编写 HQL,简单、方便。
二、Hive是怎么工作的?
从刚刚的几个问题,我们应该都了解到 Hive 是什么了,那我们接下来了解一下Hive到底是怎么工作的。
我们先看一下 Hive 的架构图。
我们来逐个解析这张图,你就会明白 Hive 是如何工作的了~
根据上面对图片的解释,大家应该就懂得 Hive 是怎样运作的;我们来一句话总结一下。
Hive其实就是可以写 HQL,然后通过Hive驱动程序将HQL转成 MR(MapReduce)语言,再使用元数据进行数据映射找到HDFS文件,再数据进行数据分析。
三、元数据
在上面其实我们已经解释过 元数据 是什么,但是元数据是很重要的一部分,我们再来理解一下元数据。
这里需要注意的是,Hive里计算的数据是来自 HDFS ,但是元数据是存储在关系型数据库中
。如存储在 hive内置的Derby、或者第三方Mysql等。
有了元数据之后,肯定需要进行元数据的管理,并且也要保证元数据的安全,所以接下来我们要了解一个概念,Hive Metastore。
从上图应该就很清楚知道 metastore和metadata的关系了~
metastore有三种配置方式,可以根据所需选择自己的方式。
其实在企业中,我们经常使用的是远程模式,使用这个模式,其他依赖hive的软件都可以通过Metastore访问hive。更安全更好的管理了hive元数据。
注意,第二代客户端需要启动 Metastore和HiveServer2 两个服务才可以。
以上就是Hive跟Hadoop的关系,如果大家还有什么不懂的,可以评论告诉我哦~
最近我都会写一些关于大数据相关的文章,都是一些简单易理解的大白话文,希望大家喜欢~