hive架构、优势、使用场景、在hadoop生态系统的位置

2020-05-1716:58:56数据库教程Comments3,276 views字数 1033阅读模式

hive在hadoop生态系统的位置

在讲解hive的架构前,我们先看一下hadoop的生态系统图,看一下hive到底在hadoop生态系统中占据着什么位置。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19100.html

hive架构、优势、使用场景、在hadoop生态系统的位置文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19100.html

这张图上所有的框架我们在后续都会给大家介绍。
通过上图,我们可以看到hive的下面是yarn、MapReduce、HDFS,这和我们对hive的定义是一样的。在hive的右侧是Hbase,这就说明hive可以和HBase进行集成。可以看到hive在整个hadoop生态系统中还是占据着比较重要的位置的。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19100.html

hive架构

hive架构、优势、使用场景、在hadoop生态系统的位置文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19100.html

我们先看这张图的蓝色部分,我们可以看到这就是MapReduce和HDFS,这一部分我们就比较熟悉了。
在回想下hive的本质,就是讲HQL语句转换成MapReduce程序进行在yarn上执行。那么现在底层的MapReduce和HDFS我们清楚了。那用户是如何提交HQL语句到hive的呢?
这就是上图中的右上部分,用户可以通过cli(命令行)或者java调用jdbc的方式通过Hive的驱动将HQL提交给Hive。
hive在接收到HQL语句时要进行以下四部的处理:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19100.html

  1. 将HQL语句进行解析
  2. 对已经解析的进行优化处理。
  3. 根据优化的结果生成一个物理的计划。
  4. 将物理的计划提交给yarn进行执行。
    通过以上这几个步骤,hive就完成了他的工作,接受用户提交的HQL语句,将其转换成MapReduce程序进行执行。

我们看到上图的左侧还有个MetaStore,这个是什么呢?这个就是hive的元数据。我们来解释下什么是元数据。我们知道hive是讲一定的日志数据转换成数据表的形式,那是不是需要记录表的名字与存储在HDFS文件系统上文件的对应关系,是不是需要知道每一个列数据的名称。这些就组成了hive的元数据。hive通过查找元数据才能清楚的知道要去查找那个文件等等。
元数据默认存储在自带的derby数据库中,推荐使用MySQL存储Metestore。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19100.html

hive的优势

  1. 操作接口采用类SQL语法,提供快速开发的能及(简单、容易上手)
  2. 避免了去写MapReduce,减少开发人员的学习成本
  3. 统一的元数据管理,可与impala/spark等共享数据
  4. 易扩展(HDFS+MapReduce),可以扩展集群规模;支持自定义函数

使用场景

  1. 数据的离线处理:比如,日志分析,海量结构化数据离线分析
  2. Hive的执行延迟比较高:hive常用于数据分析的,对实时性要求不高的场合
  3. Hive优势在于处理大数据,对于处理小数据没有优势,因为Hive的执行延迟比较高
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19100.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/sjk/19100.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定