hbase的原理-hbase原理与应用小结(3-10-26)
更新时间:2024-08-05 分类:HBase 浏览量:2
HBase本文目录一览:
- 1、Hbase读写原理
- 2、深入理解HBASE(3.4)RegionServer-Memstore
- 3、HBase应用场景
Hbase读写原理
所以hbase大多数读要走磁盘,所以读很慢。 每次刷写会生成新的Hfile,Hfile很小并且数量多的时候会影响查询的速度。所以要进行合并。
HDFS不太适合做大量的随机读应用,但HBASE却特别适合随机的读写 个人理解:数据库一般都会有一层缓存,任何对数据的更改实际上是先更改内存中的数据。然后有异步的守护进程负责将脏页按照一定策略刷新到磁盘空间中去。
Hbase数据是按列存储-每一列单独存放。列存储的优点是数据即是索引。访问查询涉及的列-大量降低系统I/O 。并且每一列由一个线索来处理,可以实现查询的并发处理。基于Hbase数据类型一致性,可以实现数据库的高效压缩。
hbase为了保证随机读取的性能,所以hfile里面的rowkey是有序的。当客户端的请求在到达regionserver之后,为了保证写入rowkey的有序性,所以不能将数据立刻写入到hfile中,而是将每个变更操作保存在内存中,也就是metastore中。
和读相比,HBase写数据流程倒是显得很简单:数据先顺序写入HLog,再写入对应的缓存Memstore,当Memstore中数据大小达到一定阈值(128M)之后,系统会异步将Memstore中数据flush到HDFS形成小文件。
深入理解HBASE(3.4)RegionServer-Memstore
1、理想情况下,在不超过hbase.regionserver.global.memstore.upperLimit的情况下,Memstore应该尽可能多的使用内存(配置给Memstore部分的,而不是真个Heap的)。
2、MemStore 是 HBase 非常重要的组成部分,MemStore 作为 HBase 的写缓存,保存着数据的最近一次更新,同时是HBase能够实现高性能随机读写的重要组成。
3、regionServer 其实是hbase的服务,部署在一台物理服务器上,region有一点像关系型数据的分区,数据存放在region中,当然region下面还有很多结构,确切来说数据存放在memstore和hfile中。
4、Region是HBase数据存储和管理的基本单位。 一个表中可以包含一个或多个Region。 每个Region只能被一个RS(RegionServer)提供服务,RS可以同时服务多个Region,来自不同RS上的Region组合成表格的整体逻辑视图。
5、HBase上Regionserver的内存分为两个部分,一部分作为Memstore,主要用来写;另外一部分作为BlockCache,主要用于读。
6、一个MemStore大小通常在128~256MB,见参数: hbase.hregion.memstore.flush.size 。
HBase应用场景
1、HBase的应用场景:大型数据存储:HBase可以处理PB级别的数据量,适合存储大规模的数据,例如日志数据、监控数据、交易数据等。时序数据:HBase可以用于存储时序数据,如速度的展示,天气、温度、风速、车流量等。
2、HBase适用于需要高扩展性和高可用性的场景,如大数据分析、日志处理等。它可以处理海量数据,并具备分布式存储和自动数据复制等特性。传统数据库则适用于事务处理和关系型数据的应用场景,如企业管理系统、电子商务平台等。
3、HBase的应用场景 日志处理 HBase适用于大规模的日志处理,可以快速地存储和分析海量的日志数据。通过将日志数据按照时间戳进行排序,可以实现高效的日志查询和分析。
4、因为由于hbase本身 良好的性能,我们通过大量测试找到了各种应用场景中比较优良的参数并应用于生产环境后,都基本满足需求。不过这是我们接下来的重要工作。7 将来计划我们目前维护着淘宝内基于社区0.90.x而定制的hbase版本。
5、数据量较小、数据结构复杂、需要高度事务性、需要高度事务性等场景。如果数据量较小,使用HBase可能会增加系统的复杂性和成本,不如使用传统的关系型数据库或其他轻量级的NoSQL数据库。
6、对于hbase当前noSql数据库的一种,最常见的应用场景就是采集的网页数据的存储,由于是key-value型数据库,可以再扩展到各种key- value应用场景,如日志信息的存储,对于内容信息不需要完全结构化出来的类CMS应用等。