hbase读数据流程图-hbase读写过程(1-7-73)
更新时间:2024-12-25 分类:HBase 浏览量:2
HBase本文目录一览:
- 1、六、HBase写入流程
- 2、深入理解HBASE(3.4)RegionServer-Memstore
- 3、HBase写数据的异常问题以及优化
六、HBase写入流程
对于写操作,HBase提供了Put操作。一个Put操作就是一次写操作,它将指定Row Key的数据写入到HBase中。
和读相比,HBase写数据流程倒是显得很简单:数据先顺序写入HLog,再写入对应的缓存Memstore,当Memstore中数据大小达到一定阈值(128M)之后,系统会异步将Memstore中数据flush到HDFS形成小文件。
首先Hbase是依赖于HDFS和zookeeper的。 Zookeeper分担了Hmaster的一部分功能,客户端进行DML语句的时候,都是先跟ZK交互。
深入理解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数据写入通常会遇到两类问题,一类是写性能较差,另一类是数据根本写不进去。
2、BloomFilter的数据存在StoreFile的meta中,一旦写入无法更新,因为StoreFile是不可变的。
3、对于读端,捕获异常后,可以采取休眠一段时间后进行重试等方式。3)当然,还可以根据实际情况合理调整hbase.client.retries.number和hbase.client.pause配置选项。
4、逻辑故障 逻辑故障中的一种常见情况就是配置错误,就是指因为网络设备的配置原因而导致的网络异常或故障。
5、用MR往HBase里写Int类型遇到了乱码问题,总结一下。
6、TT在预发过程中我们分别因为Meta表损坏以及split方面的bug曾经丢失过数据,因此也单独写了meta表恢复工具,确保今后不发生类 似问题(hbase-0.90.5以后的版本都增加了类似工具)。