什么是HBase?
HBase是Hadoop环境中的一个开源的,面向列的分布式数据库系统。最初,它是Google Big Table,之后被重新命名为HBase,主要用Java编写。实时大数据应用程序需要Apache HBase。
HBase可以存储从TB到PB的大量数据。 HBase中的表包含数十亿行,包含数百万列。 HBase专为低延迟操作而构建,与传统的关系模型相比具有一些特定功能。
HBase独特的功能
- 低延迟
- 随机读写操作
- 表格的形式存储大量数据
- 在群集环境中提供线性和模块化可伸缩性
- 严格一致的读写操作
- 表可以自动和可配置分片
- 区域服务器之间支持自动failover
- 方便的基类,用于支持HBase表中的Hadoop MapReduce作业
- 易于使用的Java API
- 阻止缓存和Bloom 过滤器以进行实时查询
- 查询谓词通过服务器端过滤器push。
为什么选择HBase?
流行的Web应用程序的表可能包含数十亿行。如果我们想从如此大量的数据中搜索特定行,HBase是一个理想的选择,因为查询获取时间更短。大多数在线分析应用程序都使用HBase。
传统的关系数据模型无法满足非常大的数据库的性能要求。 Apache HBase可以克服这些性能和处理限制。
NoSQL数据库在Hadoop中的重要性
在大数据分析中,Hadoop通过管理大型数据集在解决典型业务问题方面发挥着至关重要的作用,并在分析领域提供最佳解决方案。
在Hadoop生态系统中,每个组件都扮演着独特的角色
- 数据处理
- 数据验证
- 数据存储
在存储非结构化,半结构化数据存储以及检索这些数据方面,关系数据库不太有用。此外,通过对存储在Hadoop存储中的大量数据集应用查询来获取结果是一项具有挑战性的任务。 NoSQL存储技术为更快地查询大型数据集提供了最佳解决方案。
其他NoSQL存储类型数据库
市场上出现的一些NoSQL模型是Cassandra,MongoDB和CouchDB。每种模型都有不同的存储机制。
例如,MongoDB是NoSQL系列树中面向文档的数据库。与传统数据库相比,它在性能,可用性和可伸缩性方面提供了最佳功能。它是一个面向开源文档的数据库,它是用C++编写的。
Cassandra也是一个来自开源Apache软件的分布式数据库,旨在处理存储在商用服务器上的大量数据。 Cassandra提供高可用性,没有单点故障。
而CouchDB是面向文档的数据库,其中每个文档字段都存储在键值映射中。
HBase如何与其他NoSQL模型不同
- HBase以柱/模型中的key/value的形式存储数据。在此模型中,所有列都组合在一起作为列族
- HBase提供灵活的数据模型和低延迟访问存储在大型数据集中的少量数据
- Hadoop之上的HBase将提高分布式集群设置的吞吐量和性能。反过来,它提供更快的随机读写操作
参考资料
- python测试开发项目实战-目录
- python工具书籍下载-持续更新
- python 3.7极速入门教程 - 目录
- 讨论qq群630011153 144081101
- 原文地址
- 本文涉及的python测试开发库 谢谢点赞!
- 本文相关海量书籍下载
- https://www.tutorialspoint.com/sqoop/sqoop_installation.htm
- https://sqoop.apache.org/docs/1.4.7/SqoopUserGuide.html
- https://www.softwaretestinghelp.com/top-4-etl-testing-tools/
选择NoSQL数据库?
MongoDB,CouchDB和Cassandra属于NoSQL类型的数据库,这些数据库是特定于功能的,并根据其业务需求使用。在这里,我们根据用例列出了不同的NoSQL数据库。
类型 | 示例 | 场景 |
---|---|---|
Key/ Value | Redis,MemcacheDB | 缓存,队列,分发信息 |
列 | Cassandra,HBase | Scaling,保持非结构化,非挥发性 |
面向文档 | MongoDB,Couchbase | 嵌套信息,JavaScript |
图形 | OrientDB,Neo4J | 处理复杂的关系信息。建模和处理分类。 |
特性 | HBase | Hive |
---|---|---|
数据库模型 | 宽列存储 | 关系DBMS |
模式 | 自由 | 有模式 |
SQL支持 | 否 | HQL(Hive查询语言) |
分区方法 | Sharding | Sharding |
一致性 | 即时一致性 | 最终一致性 |
二级索引 | 否 | 是 |
复制方法 | 可选复制因子 | 可选复制因子 |
HBase VS RDBMS
在将HBase与传统关系数据库进行比较时,我们必须考虑三个关键领域。这些是数据模型,数据存储和数据多样性。
HBASE | RDBMS |
---|---|
无数据库中的模式 | 在数据库中修复了架构 |
面向列的数据库 | 面向行的数据存储 |
旨在存储非标准化数据 | 旨在存储标准化数据 |
HBase中存在广泛且人口稀疏的表格 | 数据库中的精简表 |
支持自动分区 | 没有内置的分区支持 |
非常适合OLAP系统 | 非常适合OLTP系统 |
只读数据库中的相关数据 | 一次检索一行 |
可以使用HBase存储和处理结构化和半结构化数据 | 可以使用RDBMS存储和处理结构化数据 |
在许多行和列上启用聚合 | 聚合是一项昂贵的操作 |
小结
HBase提供独特的功能,并将解决典型的工业用例。作为面向列的存储,它提供快速查询,获取结果和大量数据存储。