Code前端首页关于Code前端联系我们

hive架构、好处、使用场景以及在hadoop生态系统中的地位

terry 2年前 (2023-09-26) 阅读数 46 #数据库

hive在hadoop生态系统中的地位

在讲解hive的架构之前,我们先看一下hadoop的生态系统图,看看hive在hadoop中扮演什么角色它在生态系统中占据什么位置?

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

我们稍后会向大家介绍这张图中的所有框架。
从上图中我们可以看到hive下面是yarn、MapReduce和HDFS,这和我们对hive的定义是一样的。 hive的右侧是HBase,这说明hive可以和HBase集成。可见hive在整个hadoop生态系统中仍然占据着比较重要的地位。

蜂巢架构

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

首先让我们看看这张图片的蓝色部分。我们可以看到这是MapReduce和HDFS,这部分我们比较熟悉。
请记住,hive 的本质是将 HQL 语句转换为 MapReduce 程序,以便在 YARN 上执行。现在我们知道了底层的MapReduce 和HDFS。用户如何向hive提交HQL语句?
这是上图的右上部分。用户可以通过cli(命令行)或java调用jdbc,通过Hive驱动程序将HQL提交到Hive。
hive 收到 HQL 语句时,必须执行以下四个步骤:

  1. 解析 HQL 语句
  2. 对解析后的语句进行优化。
  3. 根据优化结果生成物理计划。
  4. 将物理计划发送到yarn执行。
    通过以上步骤,hive已经完成了它的工作,接受了用户提交的HQL语句,并将其转换为MapReduce程序来执行。

我们看到上图左边有一个MetaStore。这是什么?这是配置单元的元数据。让我们解释一下什么是元数据。我们知道hive将某些日志数据转换成数据表。是否需要记录表名与HDFS文件系统中存储的文件的对应关系?它需要知道每列数据的名称吗?这些构成了配置单元的元数据。 Hive通过查找元数据可以清楚地知道要查找哪个文件等等。
元数据默认存储在内置 derby 数据库中。推荐使用MySQL来存储Metestore。

hive的优点

  1. 操作界面采用类似SQL的语法,提供快速开发机会(简单易用)
  2. 无需编写MapReducer,降低开发者的学习成本统一的元管理,可以与impala/spark等共享数据。
  3. 易于扩展(HDFS+MapReduce),可以扩展集群规模;支持用户自定义函数

使用场景

  1. 数据的离线处理:如日志分析、海量结构 数据的离线分析
  2. Hive的执行延迟较高:Hive常用于实时数据分析要求不高
  3. Hive的优势在于处理大数据,但是处理小数据就没有优势了,因为Hive的执行延迟比较高

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门