暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

大数据基础:2.1.HBase基础入门

Coder陈 2023-02-23
360

HBase基础入门

HBase的名称,来自于:Hadoop DataBase,取出来了H和Base叫做HBase

HBase就是一个数据库,运行在Hadoop之上。

HBase基础简介

HBase的引出

前提:在大数据时代,很多公司使用HDFS + MapReduce的组合来完成大数据的2个基础需求:

  • 海量数据的存储(HDFS)

  • 海量数据的计算(MapReduce)

问题:HDFS没有办法高效的完成 随机数据的访问和写入

比如,在1TB数据内,想要准确的找到某一条数据,需要对数据进行扫描,一条条的判断。效率很低。

因为这个问题,HBase应运而生。

HBase是一款构建在HDFS之上的数据库系统,有极佳的:随机访问能力海量的吞吐能力

HBase的应用场景



HBase的应用场景是非常广泛的。总结一下场景需求:

  • 数据量很大

  • 有随机访问的需求

只要满足如上2个要求,就非常合适使用HBase

HBase的发展


HBase不是一个新技术,而是一个老将 尽管HBase已经诞生很久了,但是目前在市面上,依旧是非常火的:分布式NoSQL数据库

HBase的特点


HBase和RMDBS、HDFS、Hive的对比

HBase VS RDBMS(MySQL)

  • 架构上:

  • HBase是分布式,扩展性能是水平扩展(加机器)

  • RDBMS多数是单机系统,扩展性能是竖向扩展(加配置)

  • 事务上:

  • HBase基本不支持,很难做到

  • RDBMS支持的非常好

  • 场景上:

  • HBase:海量数据下的:随机访问 + 海量吞吐

  • RDBMS:关系型数据库,业务数据的CRUD(增删改查)

  • 数据量:

  • HBase:海量级别

  • RDBMS:少量级别(只针对业务数据)

注:随机访问 在数据集内,随机的查询某一部分,或者随机的插入到某一部分 比如:SELECT * FROM XXX WHERE id = 5; 这就是随机查询 INSERT INTO XXX VALUES(1, 2, 3); 这就是随机插入

HBase VS HDFS

  • 架构上:

  • 都是分布式系统,主从模式(master + slaves)

  • 事务上:都不怎么支持

  • 场景上:

  • HDFS:海量数据的存储,存储的是文件(可以认为就是一个分布式的硬盘)

  • HBase:海量数据的存储 + 海量数据下的随机访问(构建在分布式硬盘上的数据库)

  • 数据量:都支持海量数据的存储

HBase 和 HDFS 都是用于分布式海量数据存储 方向不同,HDFS只存储,HBase存+随机访问

HBase VS Hive

  • 架构上:

  • HBase是一个分布式的系统,主从模式

  • Hive是一个单机的系统(Hive底层运行的MapReduce是分布式的

  • 事务上:都不怎么支持

事务就是指对数据进行操作的一种保险 如果不支持事务,比如银行转账记录要存储到数据库中,如果出现问题 这一条数据就是丢失了 如果有事务,会经过多个步骤:

  1. 开启事务

  2. 插入SQL语句

  3. 插入SQL语句2

  4. 更新表SQL语句

  5. 删除数据SQL语句

  6. 关闭(提交)事务

在事务的开启 和 关闭的中间的所有操作,是整体性的;要么全部成功 要么全部失败 不会出现,成功一半 失败一半。

  • 场景上:

  • HBase 海量数据存储 + 随机访问能力

  • Hive  海量数据批处理(分析)  也就是HBase和Hive都提供查询能力 HBase的查询能力在于:随机查询 + 高吞吐输出(一批数据的输出) Hive的查询能力在于:对海量数据进行全量计算,得到结果

总体总结:

  • RDBMS:小量数据下供业务数据走:CRUD(增删改查)

  • HDFS:海量数据下的文件系统(存储)

  • Hive:海量数据下的批处理(全量计算)

  • HBase:海量数据下的随机访问

HBase这么好,为什么还要HDFS:

  1. HBase底层是基于HDFS

  2. 哪怕HBase和HDFS没有联系,它们的出发点也不一一样,HDFS依旧有用

  3. HBase存储是用于随机访问的

  4. HDFS存储是单纯的存数据 如果是存储文件,有必要用HBase?没必要,用HDFS就可以 如果要存储需要随机访问的数据,用HBase才合适

简介的总结

  • HBase是数据库

  • HBase基于HDFS之上

  • HBase可以存数据

  • HBase支持随机访问(随机查询和随机插入)

  • HBase的场景在于:海量数据存储的需求 和 随机访问需求

文章转载自Coder陈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论