小记--------hbase数据库读写流程

  1. hbase读写流程

读过程

  1. client先从缓存中定位region位置,如果缓存中没有region位置,则从zookeeper的-ROOT-表,获取-ROOT-所在regionserver位置
  2. 通过查询-ROOT-的region服务器获取含有.META.表所在regionserver地址
  3. Client会将保存着regionserver位置信息的元数据表.META.进行缓存,然后在表中确定待检索rowkey所在regionserver信息。
  4. Client会向在.META.表中确定的regionserver发送真正的数据读取请求
  5. 先从memstore中查找,如果没有再到storefile中查找

写过程

  1. client先从缓存中定位region,如果缓存中没有region位置信息则需要访问zookeeper,从.META.表获取要写入的region信息
  2. 找到小于rowkey并且最接近rowkey的startkey对应的region
  3. 将更新的数据首先写入WAL(HLog)防止中途发生宕机也可以通过WAL还原初始数据
  4. 将更新写入memstore中,当memstore的大小达到设定的flush memstore的阈值时,会触发flush memstore操作,把memstore的数据写入到hdfs,生成一个HFile文件
  5. 随着HFile文件的不断增多,当达到一定的阈值之后,触发Compact合并操作(分为两种minor Compaction、major Compaction)
  6. HFile文件通过不断的compact合并操作,逐步形成越来越大的storefile
  7. 当单个storefile大小超过一定的阈值后,触发split操作,把当前的region拆分为两个,新拆分的region会被hbase master分配到相应的两个regionserver上

原文地址:https://www.cnblogs.com/yzqyxq/p/12103305.html

时间: 2024-10-05 04:33:21

小记--------hbase数据库读写流程的相关文章

HBase 数据读写流程

HBase 数据读写流程 2016-10-18 杜亦舒 读数据 HBase的表是按行拆分为一个个 region 块儿,这些块儿被放置在各个 regionserver 中 假设现在想在用户表中获取 row key 为 row0001 的用户信息 要想取得这条数据,就需要先找到含有此条记录的 region HBase 是如何定位到具体 regionserver 中的具体 region 的呢? HBase 中有一个内置的 hbase:meta 表,其中记录了所有表的所有 region 的详细信息 例如

小记--------hbase数据库介绍及存储方式

一.Hbase基本原理 1.hbase基本介绍 HBASE是一个分布式的,面向列的开源数据库.Hbase的存储是基于hadoop的.因为Hadoop实现了一个分布式文件系统(HDFS),基于hadoop意味着hbase与生俱来的超强的扩展性和吞吐量,hbase采用的是key.value的存储方式.意味着即使随着数据量增大,也几乎不会导致查询的性能下降. 2.hbase存储方式 hbase将数据按列簇分别存储,而并非简单的列式存储:首先了解几个概念:行式存储.列式存储.列簇式存储. A.行式存储:

小记--------hbase数据库各组件应用及作用

zookeeper:主要用于协调管理分布式应用程序: 1.实现master高可用:如果 active master由于异常宕机,zookeeper会检测到该宕机时间,并通过一定机制选举出新的master 2.管理系统核心元数据:当前系统中正常工作的regionserver集合,保存系统元数据表hbase:meta所在额regionserver地址等等 3.参与regionserver宕机恢复:zookeeper通过心跳可以感知到regionserver是否宕机,并在宕机后通知master进行宕机

hbase读写流程

HBase读数据流程 1) HRegionServer保存着meta表以及表数据,要访问表数据,首先Client先去访问zookeeper,从zookeeper里面获取meta表所在的位置信息,即找到这个meta表在哪个HRegionServer上保存着. 2) 接着Client通过刚才获取到的HRegionServer的IP来访问Meta表所在的HRegionServer,从而读取到Meta,进而获取到Meta表中存放的元数据. 3) Client通过元数据中存储的信息,访问对应的HRegio

HBase 数据库检索性能优化策略

HBase 数据表介绍 HBase 数据库是一个基于分布式的.面向列的.主要用于非结构化数据存储用途的开源数据库.其设计思路来源于 Google 的非开源数据库"BigTable". HDFS 为 HBase 提供底层存储支持,MapReduce 为其提供计算能力.ZooKeeper 为其提供协调服务和 failover(失效转移的备份操作)机制.Pig 和 Hive 为 HBase 提供了高层语言支持,使其能够进行数据统计(可实现多表 join 等).Sqoop 则为其提供 RDBM

【转载】HBase 数据库检索性能优化策略

转自:http://www.ibm.com/developerworks/cn/java/j-lo-HBase/index.html 高性能 HBase 数据库 本文首先介绍了 HBase 数据库基本原理及专用术语,然后介绍了 HBase 数据库发布的操作 API 及部分示例,重点介绍了 Scan 方法的操作方式,接着介绍了检索 HBase 数据库时的优化方案,最后通过一个示例总结了实际项目中遇到的检索速度慢的解决方案. HBase 数据表介绍 HBase 数据库是一个基于分布式的.面向列的.主

hbase 数据库深入使用与相关数据的加载

一:hbase 数据检索流程 二:hbase 数据库java api 调用 三:hbase 各个服务的作用 四:hbase 与mapreduce集成 五:hbase 使用BulkLoad 加载数据 一:hbase 数据检索流程 1.1 hbase 数据检索流程图: 1.2 hbase 读的流程: 读流程: 1.client请求zookeeper集群(root/meta)(meta) --有多少table,table有哪些region(startrow.stoprow) 2.client找到reg

hbase数据写入流程深度解析

2019/3/28 星期四hbase数据写入流程深度解析在看此链接之前,可以写查看 hbase读写请求详细解释 中的写请求流程 https://blog.51cto.com/12445535/2356085 简介:hbase设置之初就是为了应对大量的写多读少的应用,他出色的写性能,在一个100台RS的集群可以轻松地支撑每天10T的写入量.hbase的写数据流程大体分为3部分1.客户端的写入流程2.服务端的写入流程3.wal的工作原理 我们先回顾一下hbase写数据流程写请求处理过程小结1 cli

spring+mybatis利用interceptor(plugin)兑现数据库读写分离

使用spring的动态路由实现数据库负载均衡 系统中存在的多台服务器是“地位相当”的,不过,同一时间他们都处于活动(Active)状态,处于负载均衡等因素考虑,数据访问请求需要在这几台数据库服务器之间进行合理分配, 这个时候,通过统一的一个DataSource来屏蔽这种请求分配的需求,从而屏蔽数据访问类与具体DataSource的耦合: 系统中存在的多台数据库服务器现在地位可能相当也可能不相当,但数据访问类在系统启动时间无法明确到底应该使用哪一个数据源进行数据访问,而必须在系统运行期间通过某种条