Hive&Hbase&Spark

【Hive & Hbase】

1. 结论

Hbase和Hive在大数据架构中处在不同位置,Hbase主要解决实时数据查询问题,Hive主要解决数据处理和计算问题,一般是配合使用。


2. 区别

Hbase: Hadoop database 的简称,也就是基于Hadoop数据库,是一种NoSQL数据库

主要适用于海量明细数据(十亿、百亿)的随机实时查询,如日志明细、交易清单、轨迹行为等。

Hive:Hive是Hadoop数据仓库,严格来说,不是数据库,主要是让开发人员能够通过SQL来计算和处理HDFS上的结构化数据,适用于离线的批量数据计算。(SQL => MapReduce)

  • 通过 元数据 来描述 HDFS 上的结构化文本数据,通俗点来说,就是定义一张表来描述HDFS上的结构化文本,包括各列数据名称,数据类型是什么等,方便我们处理数据,当前很多SQL ON Hadoop的计算引擎均用的是hive的元数据,如Spark SQL、Impala等;

  • 基于第一点,通过SQL来处理和计算HDFS的数据,Hive会将SQL翻译为MapReduce来处理数据;


3. 关系

在大数据架构中,Hive和HBase是协作关系,数据流一般如下图:

  1. 通过ETL工具将数据源抽取到HDFS存储;
  2. 通过Hive清洗、处理和计算原始数据;
  3. HIve清洗处理后的结果,如果是面向海量数据随机查询场景的可存入Hbase;
  4. 数据应用从HBase查询数据;


【Hive & Spark】

Apache spark is a unified analytics engine for large-scale data processing.

Apache Hive data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage using SQL.

  1. Hive on Spark

    Hive 主动拥抱 Spark,支持Spark作为其底层计算框架;

    采用的是RDD;

    大数据生态组件 对Hive的支持更好;

  2. Spark on Hive

    使用 Spark 处理分析 Hive 中的数据;

    采用的是Dataframe,可以进行更细的优化操作,计算速度会更快;

  3. Spark + Spark Hive catalog

    随着数据湖相关技术的进一步发展,Spark利用Hive的metasore读写表到文件/对象的映射关系


【Reference】

HBase 和 Hive 的差别是什么,各自适用在什么场景中?

请问spark和hive是什么关系?

posted @ 2022-11-17 20:27  黄一洋  阅读(23)  评论(0)    收藏  举报