HBase--技术文档--基本概念--《快速扫盲》

官网

Apache HBase – Apache HBase™ Home

阿里云hbase

云数据库HBase_大数据存储_订单风控_数据库-阿里云

云数据库 HBase-阿里云帮助中心

基本概念

        HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。它基于Hadoop,采用列式存储方式,可以提供实时计算和分布式访问。HBase的数据模型是稀疏排序映射表,其中键由行关键字、列关键字和时间戳构成。HBase的目标是存储并处理大型数据、支持对大规模数据的随机和实时读写访问。即使在普通的硬件配置上,HBase也能够处理上亿的行和几百万的列所组成的超大型数据库。

Hadoop

        Hadoop是一个能够对大量数据进行分布式处理的软件框架,它是专为离线和大规模数据分析而设计的。Hadoop通常被用于处理半结构化和非结构化数据,相比关系型数据库,它在处理这些类型的数据时具有更好的性能和灵活性。Hadoop的核心设计是HDFS和MapReduce。HDFS提供了在集群服务器上分布式存储文件的能力,而MapReduce提供了在集群服务器上分布式处理数据的能力。因此,Hadoop非常适合处理海量数据。

HDFS和MapReduce

        HDFS(Hadoop Distributed File System)是可扩展、容错、高性能的分布式文件系统,异步复制,一次写入多次读取,主要负责存储。MapReduce为分布式计算框架,包含map(映射)和reduce(归约)过程,负责在HDFS上进行计算。

稀疏排序映射表

        HBase的稀疏排序映射表是一种数据模型,它类似于BigTable的数据模型。在HBase中,数据以键值对的形式存储,并且这些键值对按照键的顺序进行排列和存储。这种数据模型是稀疏的,因为并不是所有的列都会在每个行中出现,也就是说,每个行可以具有不同的列。同时,这种数据模型也是排序的,因为键值对按照键进行排序。这种数据模型使得HBase能够高效地处理大量的数据,并且能够快速地执行随机读写操作。

        每个值是一个未经解释的字符串,没有数据类型

        表中存储数据,每一行都有一个可排序的行键和任意多的列

表:HBase采用表来组织数据,表是由行和列组成的,列划分为若干个列族

行:每个HBase表都由若干行组成,每个行由行键(row key)来标识

列族:一个HBase表备份组成许多"列族"(Column Family)的集合,他是基本的访问控制单元

列限定符:列族里的数据通过列限定符(或例)来定位

单元格:在HBase表中,通过行、列族和列限定符确定一个“单元格”(cell),单元格中存储的数据没有数据类型,总被视为字节数组byte[]

时间戳:每个单元格都保存着一份数据的多个版本,这些版本采用时间戳进行索引

HBase使用场景

HBase的使用场景包括以下几种:

  1. 平台类:HBase可以作为数据存储,捕获来自于各种数据源的增量数据。这种场景下存放的往往是平台的数据,有时候甚至是无业务含义的,作为平台的底层存储使用。
  2. 内容服务类:这类主要面向各种业务系统,将数据直接存放到HBase中,再读取。这种场景需要支持千万级别的并发访问及读取,并需要解决服务质量的问题。这种应用场景通常业务简单,不需要关系型数据库中的很多特性。
  3. 信息展示类:通过HBase的高存储,高吞吐等特性,可以将人们感兴趣的信息快速展现出来,例如阿里巴巴的天猫双十一大屏。

此外,对于需要存储大量结构化或非结构化数据,数据量越来越大,传统数据库无法满足需求的情况,HBase也是一个很好的选择。

HBase的使用原因

HBase的使用原因主要有以下几点:

  1. HBase是一个构建在HDFS上的分布式列存储系统,具有高可靠、高性能、分布式和面向列的动态模式等优点。
  2. HBase基于Google BigTable模型开发,具有典型的key/value系统特点,能够提供大规模数据的随机、实时读写访问。
  3. HBase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。
  4. HBase与传统数据库相比,具有线性扩展、数据存储在HDFS上、备份机制健全和通过zookeeper协调查找数据等优势,能够解决传统数据库面临的问题,例如数据量很大的时候无法存储、没有很好的备份机制、数据达到一定数量开始缓慢等。

因此,HBase是一个适合于处理大量结构化或非结构化数据,且需要高可靠、高性能、分布式和动态模式的数据库系统

HBase的同类产品列举

HBase的同类型产品包括以下几种:

  1. CouchDB:一个开源的面向文档的数据库系统,采用Erlang语言编写,与HBase类似,也支持面向列的存储和二级索引。
  2. Cassandra:一个开源的、高度可分布的、面向列的数据库系统,最初由Facebook开发,用于处理实时数据。
  3. Hypertable:一个开源的、高性能的、面向列的数据库系统,采用C++语言编写,与HBase类似,适用于大规模数据存储和实时数据处理。
  4. Accumulo:一个开源的、可分布的、面向列的键值存储系统,由美国国家安全局(NSA)开发,具有高度安全性和高性能。

这些产品与HBase在某些方面具有相似之处,如面向列的存储、高性能、分布式等,但各自也有其独特的特点和适用场景。

Hbase同类型产品特性与Hbase对比-技术选型帮助

        与CouchDB相比,HBase在数据模型和查询语言方面有所不同。HBase是基于列的存储,而CouchDB是基于文档的存储,支持更丰富的数据结构。此外,HBase的查询语言相对简单,而CouchDB具有更强大的查询功能。

        与Cassandra相比,HBase和Cassandra都是面向列的数据库系统,但它们在数据模型、查询语言和性能方面有所不同。HBase支持随机访问和实时读取,而Cassandra更适合于大量数据的批处理。此外,HBase支持二级索引,而Cassandra具有自己的索引机制。

        与Hypertable相比,HBase和Hypertable都是面向列的数据库系统,但它们在实现语言、性能和扩展性方面有所不同。Hypertable采用C++语言编写,而HBase采用Java语言编写。此外,Hypertable在性能和扩展性方面可能具有优势,适用于大规模数据存储和实时数据处理。

        与Accumulo相比,HBase和Accumulo都是面向列的键值存储系统,但它们在实现语言、数据模型和安全性方面有所不同。Accumulo采用C++语言编写,而HBase采用Java语言编写。此外,Accumulo具有更高的安全性,由美国国家安全局开发,适用于高度安全性的应用场景。

综上所述,HBase和同类型产品在数据模型、性能、扩展性、数据一致性、数据存储和处理等方面有所不同,需要根据具体的业务需求进行评估和选择。

Hbase版本更新以及特性

HBase是一个分布式、可扩展的、面向列的数据库系统,是Apache Hadoop生态系统的一部分。随着Hadoop和Hadoop生态系统的不断发展,HBase也在不断更新和改进。

以下是一些HBase版本的主要更新和特性:

  1. HBase 0.98.0:这个版本引入了一种新的API,即HBase Shell,以及一些新的表选项。此外,这个版本还改进了性能和稳定性,包括对大表的支持和对二级索引的改进。
  2. HBase 1.0:这个版本引入了一种新的数据模型,即面向列的存储。此外,该版本还提供了新的API、改进的性能和稳定性、更好的大表支持以及对非关系型数据的支持。
  3. HBase 2.0:这个版本引入了全局版本控制的特性,允许在整个表中设置版本号。此外,该版本还增加了对ACID事务的支持、改进的湖到货(Lake-to-Lake Solution)集成以及对多租户的支持。
  4. HBase 2.1:这个版本主要解决了在HBase 2.0版本中引入的ACID事务的问题,并进一步提高了性能和稳定性。
  5. HBase 2.2:这个版本增加了对轻量级事务的支持、改进的数据管理能力以及对HBase经济学仪表板(HBase Economy Dashboard)的支持。
  6. HBase 2.3:这个版本引入了一种新的存储格式,即HFilev5,以及一些新的特性,如数据块压缩、时间戳增量和虚拟列族。
  7. HBase 3.0:这个版本主要改进了性能和稳定性,并增加了一些新的特性,如全局读一致性、对压缩和加密的改进以及对本地客户端(Native Client)的支持。

这些更新和特性反映了HBase不断发展和改进的过程,也为用户提供了更好的性能、稳定性和功能。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据库第十七课-------ETL任务调度系统的安装和使用

作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​🎂 作者介绍: 🎂🎂 🎂 🎉🎉&#x1f389…

如何基于自己训练的Yolov5权重,结合DeepSort实现目标跟踪

网上有很多相关不错的操作demo,但自己在训练过程仍然遇到不少疑惑。因此,我这总结一下操作过程中所解决的问题。 1、deepsort的训练集是否必须基于逐帧视频? 我经过尝试,发现非连续性的图像仍可以作为训练集。一个实例&#xff0…

本地组策略编辑器找不到怎么解决?| 解决windows home 版本隐藏本地组策略编辑器的问题 | 简单的介绍本地组策略编辑器

一般的 Windows 非家庭系统中,本地组策略编辑器不会被隐藏,但在某些特定情况下,可能会受到限制或不可用。如果你无法访问本地组策略编辑器,并且认为应该可以访问,请确保你拥有管理员权限,并检查是否有任何系…

Qt应用开发(基础篇)——对话框窗口 QDialog

一、前言 QDialog类继承于QWidget,是Qt基于对话框窗口(消息窗口QMessageBox、颜色选择窗口QColorDialog、文件选择窗口QFileDialog等)的基类。 QDialog窗口是顶级的窗口,一般情况下,用来当做用户短期任务(确认、输入、选择)或者和用户交流(提…

文件上传漏洞之条件竞争

这里拿upload-labs的第18关做演示 首先先看代码 $is_upload false; $msg null;if(isset($_POST[submit])){$ext_arr array(jpg,png,gif);$file_name $_FILES[upload_file][name];$temp_file $_FILES[upload_file][tmp_name];$file_ext substr($file_name,strrpos($file_…

MyBatis-Plus框架技术总结

MybatisPlus 1、概述 MybatisPlus是一款Mybatis增强工具,用于简化开发,提高效率。 它在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 ​ 官网: https://mp.baomidou.com/ 2、快速入门 2.0、准备工作 ①准…

怎样快速选择正确的可视化图表?

数据可视化的图表类型十分丰富,好的图表可以有效、清晰地呈现数据的信息。对于用户而言,选择正确的图表是十分关键的,不仅可以达到“一图胜千言”的效果,而且会直接影响分析的结果。 用户选择正确的数据可视化图表前,…

嵌入式学习笔记——ARM的编程模式和7种工作模式

ARM提供的指令集 ARM态-ARM指令集(32-bit) Thumb态-Thumb指令集(16-bit) Thumb2态-Thumb2指令集(16 & 32 bit) Thumb指令集是对ARM指令集的一个子集重新编码得到的,指令长度为16位。通常在…

2023年四款热门护眼台灯推荐/测评/排行/选购指南-内含明基/书客/飞利浦

灯具可以说是我们日常生活中使用很频繁的工具了,我们每天都离不开它给我们带来的光亮。当然,现在灯具也有很多种类可以挑选,今天主要带来的就是护眼台灯的选购问题! 护眼台灯品牌那么多,怎么选到适合自己的台灯&#x…

Linux下的系统编程——vim/gcc编辑(二)

前言: 在Linux操作系统之中有很多使用的工具,我们可以用vim来进行程序的编写,然后用gcc来生成可执行文件,最终运行程序。下面就让我们一起了解一下vim和gcc吧 目录 一、vim编辑 1.vim的三种工作模式 2.基本操作之跳转字符 &a…

always for

怎么改写 reg test[3:0]; always (posedge clk) begin//int i0;if(rst) begintest[0] <0;test[1] <0;test[2] <0;test[3] <0;endelse beginif(test[0]0) beginif(wea )test[0] < 1;endelse if(test[1]0) begin //优先级if(wea )test[1] < 1;endelse if(te…

【android12-linux-5.1】【ST芯片】HAL移植后没调起来

ST传感器芯片HAL按官方文档移植后&#xff0c;测试一直掉不起来&#xff0c;加的日志没出来。经过分析&#xff0c;是系统自带了一个HAL&#xff0c;影响的。 按照官方文档&#xff0c;移植HAL后&#xff0c;在/device/<vendor\>/<board\>/device.mk*路径增加PROD…

线性代数的学习和整理12: 矩阵与行列式,计算上的差别对比

目录 1 行列式和矩阵的比较 2 简单总结矩阵与行列式的不同 3 加减乘除的不同 3.1 加法不同 3.2 减法不同 3.3 标量乘法/数乘 3.3.1 标准的数乘对比 3.3.2 数乘的扩展 3.4 乘法 4 初等线性变换的不同 4.1 对矩阵进行线性变换 4.2 对行列式进行线性变换 1 行列式和…

CUDA小白 - NPP(2) -图像处理-算数和逻辑操作

cuda小白 原文链接 NPP GPU架构近些年也有不少的变化&#xff0c;具体的可以参考别的博主的介绍&#xff0c;都比较详细。还有一些cuda中的专有名词的含义&#xff0c;可以参考《详解CUDA的Context、Stream、Warp、SM、SP、Kernel、Block、Grid》 常见的NppStatus&#xff0c…

docker部署前端项目保姆级教程

本地启动docker&#xff08;有不会启动的吗&#xff1f;下载docker&#xff08;小海豚&#xff09;双击起来就行&#xff09; 准备阿里云账号&#xff08;免费&#xff09; 没有就去注册一个&#xff0c;记住密码后面要用到 官网地址&#xff1a;阿里云登录 - 欢迎登录阿里云…

字符设备驱动(内核态用户态内存交互)

前言 内核驱动&#xff1a;运行在内核态的动态模块&#xff0c;遵循内核模块框架接口&#xff0c;更倾向于插件。 应用程序&#xff1a;运行在用户态的进程。 应用程序与内核驱动交互通过既定接口&#xff0c;内核态和用户态访问依然遵循内核既定接口。 环境搭建 系统&#…

华为云Stack的学习(三)

四、华为云Stack公共组件 1.华为云Stack公共负载均衡方案介绍 1.1 LVS原理 LVS是四层负载均衡&#xff0c;建立在OSI模型的传输层之上&#xff0c;所以效率非常高。 LVS有两种转发模式&#xff1a; NAT模式的转发主要通过修改IP地址&#xff08;位于OSI模型的第三层网络层&…

Linux安装Docker

文章目录 先决条件开始安装1.卸载旧版本2.安装依赖3.切换数据源4.安装Docker5.启动服务6.查看版本7.查看端口8.测试拉取镜像 同系列文章 先决条件 Linux内核版本高于3.1 开始安装 1.卸载旧版本 yum remove docker \docker-client \docker-client-latest \docker-common \doc…

【算法与数据结构】404、LeetCode左叶子之和

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;思路比较简单&#xff0c;遍历所有节点然后判断该节点是否为左叶子节点&#xff0c;如果是&#xff0c…

Zblog博客网站搭建与上线发布:在Windows环境下利用cpolar内网穿透实现公网访问的指引

文章目录 1. 前言2. Z-blog网站搭建2.1 XAMPP环境设置2.2 Z-blog安装2.3 Z-blog网页测试2.4 Cpolar安装和注册 3. 本地网页发布3.1. Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 想要成为一个合格的技术宅或程序员&#xff0c;自己搭建网站制作网页是绕…