首页 > 其他分享 >Hive与HBase之间的区别和联系

Hive与HBase之间的区别和联系

时间:2023-02-23 17:23:33浏览次数:27  
标签:HDFS 存储 区别 Hive 随机 HBase 数据

首先要知道Hive和HBase两者的区别,我们必须要知道两者的作用和在大数据中扮演的角色

概念
Hive
1.Hive是hadoop数据仓库管理工具,严格来说,不是数据库,本身是不存储数据和处理数据的,其依赖于HDFS存储数据,依赖于MapReducer进行数据处理。

2.Hive的优点是学习成本低,可以通过类SQL语句(HSQL)快速实现简单的MR任务,不必开发专门的MR程序。

3.由于Hive是依赖于MapReducer处理数据的,因此有很高的延迟性,不适用于实时数据处理(数据查询,数据插入,数据分析),适用于离线数据的批处理。

HBase
1.HBase是一种分布式、可扩展、支持海量数据存储的NOSQL数据库

2.HBase主要适用于海量数据的实时数据处理(随机读写)

3.由于HDFS不支持随机读写,而HBase正是为此而诞生的,弥补了HDFS的不可随机读写。

共同点
hbase与hive都是架构在hadoop之上的。都是用HDFS作为底层存储。

区别
1.Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBase是为了支持弥补Hadoop对实时操作的缺陷的项目 。总的来说,hive是适用于离线数据的批处理,hbase是适用于实时数据的处理。

2.Hive本身不存储和计算数据,它完全依赖于HDFS存储数据和MapReduce处理数据,Hive中的表纯逻辑。

3.hbase是物理表,不是逻辑表,提供一个超大的内存hash表,搜索引擎通过它来存储索引,方便查询操作。

4.由于HDFS的不可随机读写,hive是不支持随机写操作,而hbase支持随机写入操作。

5.HBase只支持简单的键查询,不支持复杂的条件查询

关系
在大数据架构中,Hive和HBase是协作关系,这里就举例一种常用的协作关系,具体流程如下图:

 

 

 

流程:

1.Hive创建一张外部表与HBase表关联,因此只需对Hive表进行查询即可,Hive表会自动从关联的HBase表中获取数据

2.采集的数据保存到HBase表,因为HBase表支持随机写操作,这个可以根据业务需求决定

3.Hive通过HSQ语句创建MR任务去处理分析数据

3.MR将分析的结果最终存储到常用的数据库(Mysql数据库)

4.web端从数据库获取数据进行可视化
————————————————
版权声明:本文为CSDN博主「程序员阿伟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_55868614/article/details/121147275

标签:HDFS,存储,区别,Hive,随机,HBase,数据
From: https://www.cnblogs.com/sword0077/p/17148814.html

相关文章

  • bitdepth与bpp的区别
    bitdepth和bpp(bitsperpixel)的区别;ffmpeg中所有支持的图片存储格式(pixelformat) 最近在用ffmepg做各种图片格式的转码,现总结一下这两个概念的区别。(以下假设图......
  • MySQL实例和schema的区别
    1.数据库实例就是一个数据库服务(可以是单节点服务,也可以是集群),而schema则是数据库实例下的具体的“数据库”,比如db_test,在schema下有表的概念;2.数据库用户也是基于实例的,......
  • 轻松理解Hbase面向列的存储
    1.前言从严格的列式存储的定义来看,Hbase并不属于列式存储,有人称它为面向列的存储,请各位看官注意这一点。1.1行式存储传统的数据库是关系型的,且是按行来存储的。如下图......
  • vue基础:vue3 介绍、vue3 创建项目、vue2和vue3的一些区别、ref和reactive、计算属性和
    目录一、vue3介绍1.性能的提升2.源码的升级3.拥抱TypeScript4.新的特性5组合式API和配置项API5.1OptionsAPI存在的问题5.2CompositionAPI的优势5.3组合式API和配置......
  • TCP和UDP的区别及使用场景
    一、TCP和UDP是什么?   TCP:   传输控制协议(TCP,TransmissionControlProtocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC793定义。   ......
  • Hive笔记之collect_list/collect_set(列转行)
    Hive中collect相关的函数有collect_list和collect_set。它们都是将分组中的某列转为一个数组返回,不同的是collect_list不去重而collect_set去重。 做简单的实验加深理......
  • 安装docker、docker engine和docker desktop区别
    前言安装docker时,官网有dockerdesktop和dockerengine两种,这两种有什么不同?应该安装哪种呢?dockerenginevsdockerdesktopdockerdesktop包含虚拟机、图形界面及......
  • 【Hive】元数据库部署的三种方式和选择【metaStore server】
    一、Derby  元数据使用之前,要在hive目录下执行schematool命令,进行初始化设置 bin/schematool-dbType derby-initSchema启动hive后,可以用jps-ml命令看到一......
  • typescript中的type和interface的区别
    //1,写法不一样typeMyType={name:stringage:number}interfaceMyType{name:string;age:number}//2,拓展方式不一样typeMyType={name:......
  • 静态库与动态库(区别,优缺点,创建与使用)
    1.库是什么?库是写好的,现有的,成熟的,可以复用的代码。本质上来说,库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。即为源代码的二进制文件2.库的类型......