Hive与Hbase的区别与联系

news2025/7/5 6:07:05

一、概念

1,Hive

hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。hive十分适合对数据仓库进行统计分析。

2,Hbase

HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。

二、共同点

Hbase与Hive都是架构在hadoop之上的。都是用HDFS作为底层存储。

三、区别

  1. Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBase是为了支持弥补Hadoop对实时操作的缺陷的项目 。
  2. Hive是高延迟、结构化和面向分析的,Hbase是低延迟、非结构化和面向编程的。Hive数据仓库在hadoop上是高延迟的。HBase位于结构化存储层,Hadoop HDFS为HBase提供了高可靠性的底层存储支持,Hadoop MapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制。
  3. 在操作RMDB数据库,如果是全表扫描,就用Hive+Hadoop,如果是索引访问,就用HBase+Hadoop 。
  4. Hive query就是MapReduce jobs可以从5分钟到数小时不止,HBase是非常高效的,肯定比Hive高效的多。
  5. Hive本身不存储和计算数据,它完全依赖于HDFS和MapReduce,Hive中的表纯逻辑。
  6. Hive借用hadoop的MapReduce来完成一些Hive中的命令的执行
  7. Hbase是物理表,不是逻辑表,提供一个超大的内存hash表,搜索引擎通过它来存储索引,方便查询操作。
  8. Hbase是列存储。
  9. HDFS作为底层存储,HDFS是存放文件的系统,而Hbase负责组织文件。
  10. Hive需要用到hdfs存储文件,需要用到MapReduce计算框架。

四、联系

在大数据架构中,Hive和HBase是协作关系,Hive方便地提供了Hive QL的接口来简化MapReduce的使用, 而HBase提供了低延迟的数据库访问。如果两者结合,可以利用MapReduce的优势针对HBase存储的大量内容进行离线的计算和分析。

Hive与HBase整合的实现是利用两者本身对外的API接口互相通信来完成的,这种相互通信是通过$HIVE_HOME/lib/hive-hbase-handler-*.jar工具类实现的。通过HBaseStorageHandler,Hive可以获取到Hive表所对应的HBase表名,列簇和列,InputFormat、OutputFormat类,创建和删除HBase表等。

1,访问

Hive访问HBase中HTable的数据,实质上是通过MR读取HBase的数据,而MR是使用HiveHBaseTableInputFormat完成对表的切分,获取RecordReader对象来读取数据的。

对HBase表的切分原则是一个Region切分成一个Split,即表中有多少个Regions,MR中就有多少个Map;

读取HBase表数据都是通过构建Scanner,对表进行全表扫描,如果有过滤条件,则转化为Filter。当过滤条件为rowkey时,则转化为对rowkey的过滤;Scanner通过RPC调用RegionServer的next()来获取数据。

简单来说,Hive和Hbase的集成就是,打通了Hive和Hbase,使得Hive中的表创建之后,可以同时是一个Hbase的表,并且在Hive端和Hbase端都可以做任何的操作。

2,访问流程

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

3,使用场景

(1)将ETL操作的数据通过Hive加载到HBase中,数据源可以是文件也可以是Hive中的表。
在这里插入图片描述
(2)Hbae作为Hive的数据源,通过整合,让HBase支持JOIN、GROUP等SQL查询语法。
在这里插入图片描述
(3)构建低延时的数据仓库
在这里插入图片描述

文章参考链接:https://zhuanlan.zhihu.com/p/74041611

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2912.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网站中的经典,分享那些我用过的宝藏网站

前言 本篇将会具体分享我在最开始学习编程时了解到的网站,并分享自己使用这些网站的感受,当然,如果我有说的不正确的或者需要补充的,欢迎评论区补充纠正。还有各位来自优秀学校的伙伴们,或许其中一些资源在你们的学校…

安卓开发Android studio学习笔记15:关于如何使用Okhttp框架的网络请求(调用API接口)

Android studio一、安卓基于HTTP网络编程(一)、两种请求方式(二)、安卓基于HTTP网络编程的两种方式1、使用HttpURLConnection访问网络资源**2、利用HttpClient访问网络资源**(1)HttpGet(2)HttpPost二、基础Okhttp的网络…

修改 echarts 默认样式记录

1、修改折线图上的数据标记点 showSymbol:false , 表示不展示数据点,只有鼠标 hover 时, tooltip 展示。 series: [{name: 进场, // 名称,图例和 tooltip 中展示showSymbol: false, // 不展示数据标记点type: line, // 类型color: #0091FF…

大学解惑10 - CSS中的content怎么换行,以及使用before伪类的优点

大学解惑09 - 单独用HTML javascript CSS 实现三版99乘法表,你就是班里最靓的仔https://blog.csdn.net/xingyu_qie/article/details/127631612 ☆ 上一篇文章用前端HTML CSS JS基础写了3版99乘法表,有同学说终于把99乘法表写透了,但是紧接着就…

Linux关于JDK、Tomcat以及MySQL安装

目录 一、JDK安装 1、 上传jdk、tomcat安装包 2、解压两个工具包 3、配置环境 4、在配置文件中加入java环境变量: 5、保存,让新设置的环境变量生效 二、Tomcat安装 1、将tomcat解压到/opt下 2、配置环境变量 3、启动tomcat 4、创建启动脚本 三…

入门学习XSS漏洞,这一篇就够了

入门学习XSS漏洞,这一篇就够了1.XSS简介2.XSS的类型反射型XSS存储型XSSDOM型XSS1.XSS简介 XSS攻击,通常指黑客通过“HTML注入”篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击。在一开始…

【沐风老师】怎么在3DMAX中使用MAXScript脚本动画编程?

大家可能对3dmax都抱有很浓厚的兴趣,但如果你接触到max脚本(MAXScript),你会觉得它比max本身更让人着迷,因为它更能拓展我们的想象力,或者帮助我们更好的提高工作效率。不过,MAXScript是解释语言,不适合编写过于复杂的功能,因为这将大大影响执行的速度。 言归正传,就…

jmeter模拟多IP访问

1. 前言: 今天一同事在压测时提到怎么用jmeter里虚拟多个ip来发送请求,我想了一下以前用LR时用过虚拟ip地址,jmeter还没有使用过。想着原理应该是相通的,既然LR都能支持的话,那Jmeter应该也是支持,于是就有…

ARM pwn 入门 (1)

最近笔者刚刚加入了一个项目组,需要用到ARM架构的东西,和ARM pwn也有一定关系,因此一不做二不休,决定开始学习ARM pwn,顺便熟悉项目前置知识,一举两得。 ARM与x86分属不同架构,指令集不同&…

用frp搞个内网穿透

使用场景: 在公司用电脑敲代码,环境都是localhost,有时候你要接第三方接口比如支付、或者企业微信的事件回调等,都需要一个公网地址,因为这时候是开发阶段,你即想要公司电脑上运行的环境又想要回调能找到你…

2022年首家民营征信机构浙江同信获企业征信备案公示

2022年首家民营征信机构浙江同信获企业征信备案公示 2022年11月1日,中国人民银行杭州中心支行公示了浙江同信企业征信服务有限公司企业征信机构备案,该机构为浙江省进行备案公示的第九家机构。其他八家分别为芝麻信用管理有限公司、浙江有数数智科技有限…

Transform介绍(1)

文章目录1. transform 方法2. transform 增量模式3. 注册 Transform使用Transform的常见场景有埋点统计、耗时监控、方法替换 通过上图以我们了解下transform的作用,transform在 class 到 dex 之间工作,处理包括 javac 编译后的字节码文件,每…

【Linux内核系列】进程调度

目录 一、为什么要调度 二、调度均衡 三、进程调度框架 3.1 调度队列 3.2 进程唤醒 3.3 调度时机 主动调度: 被动调度: 四、调度算法 4.1 先来先服务调度算法 4.2 最短作业优先调度算法 4.3 高响应比优先调度算法 4.4 时间片轮转调度算法 …

洛谷千题详解 | P1007 独木桥【C++、Pascal语言】

博主主页:Yu仙笙 专栏地址:洛谷千题详解 目录 题目背景 题目描述 输入格式 输出格式 输入输出样例 解析: C源码: Pascal源码: ------------------------------------------------------------------------------------…

NFT 推荐|辛迪加黑市系列第一弹

由 Planet Rift 呈现! 塞巴星球的辛迪加已经洗劫了政府,现在是时候揭开补给品的神秘面纱了! 辛迪加黑市系列的第一弹包括 30 个由 Planet Rift 宇宙设计的资产。其中首次发售的包含 4 套未来风格的盔甲、3 台彩色自动售货机和其他装备。 别忘…

项目管理之项目干系人

目录 前言 一、项目干系人的重要性 二、项目干系人管理过程 三、识别干系人 1.识别干系人的概念定义 2.识别干系人的输入 3.干系人分类模型 4.识别干系人的工具与技术 5.识别干系人的输出 四、规划干系人管理 1.规划干系人的输入 2.规划干系人的工具与技术 3.规划…

电脑蓝屏是哪里出了问题?不一定要非要重装系统

电脑蓝屏是非常常见的电脑故障现象,导致电脑蓝屏的原因很多,很多人第一时间反应可能是给电脑重装系统,但是有时并不能解决问题。那么电脑蓝屏是哪里出了问题呢?其实导致蓝屏不一定是系统故障,还有很多情况也会出现蓝屏…

Python3,爬虫有多简单,一个库,一行代码,就OK, 你确定不来试试?

爬虫进阶库:Scrapeasy1、 引言2、Scrapeasy2.1 简介2.1.1 Scrap2.1.2 Scrapeasy2.2 安装2.3 代码示例3、总结1、 引言 小屌丝:鱼哥, 我最近在练习写爬虫, 你有没有什么便捷的方式… 小鱼:比如呢? 小屌丝&a…

公众号网课查题接口

公众号网课查题接口 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 查题校园题库:查题校园题库后台(点击…

【C】自定义类型(二)位段,枚举,联合

🙈个人主页: 对de起日子 👉系列专栏:【C语言–大佬之路】 🎈今日心语:谨慎的选择自己的生活,不要轻易让自己迷失在各种诱惑里。 前一章我们介绍了结构体,这一章我们来介绍一下内容&a…