Hbase问题汇总3

1 HBase 查找一条数据的过程 ?或者HBase工作机制?

参考:HBase 查找一条数据的过程 白话理解
1.hbase regionserver 向zookeeper注册,提供hbase regionserver状态信息(是否在线)

hmaster启动时候会将hbase 系统表-ROOT- 加载到 zookeeper cluster,通过zookeeper cluster可以获取当前系统表.META.的存储所对应的regionserver信息。

2.client访问zk,查找-ROOT表,获取.META.表信息

3.从.META.表查找,获取存放数据的region信息(找到region sever)

4.最后通过RegionServer获取查找的数据

其实,最后在查询数据的时候,会先查memstore,没有再查block cach,最后才查hfile的。
BlockCache:读取时先看是否命中内存,否则访问磁盘文件

备注:

META表管理的是实际创建的表的region信息,ROOT表管理的是META表的region信息
ROOT和META:它们是HBase的两张内置表,从存储结构和操作方法的角度来说,它们和其他HBase的表没有任何区别
RegionServer:RegionServer它一方面维护region的状态,提供对region的管理和服务(增删改查等),一方面跟Master交换,上传region的负载信息,参与Master的分布式协调管理(就是要负载均衡啦)。

HMaster主要作用在于,通过HMaster维护系统表-ROOT-,.META.,记录regionserver所对应region变化信息。此外还负责监控处理当前hbase cluster中regionserver状态变化信息。

简单的说:zookeeper是HBase的调度器,所有Client的访问首先会从zookeeper拿到一个session
ZK同时负责监控所有Region Server的健康状况~~
如果ZK每三分钟(可以配置)会监控一次RegionServer,如果发现某个RS挂了,ZK会通知HMaster,HMaster再去拉起那个挂掉的RS

2 Hbase存储一行数据的过程???

1、客户端提交写请求,先将数据写入缓存,判断缓存是否满,若满则提交数据。(3t)最后构建put与regionserver之间的映射,接下来批量提交给regionserver/查找region时是

2、客户端重构数据:定位put属于哪一个region,其次判断region属于哪个regionserver,最后构建put与regionserver之间的映射,接下来批量提交给regionserver。查找region时是根据当前的Rowkey与每个region的start rowkey和stop rowkey,因为hbase的行健是连续的,当前put的行健肯定会落在某一个region上。

3、客户端提交请求:客户端向各个regionserver并发提交写请求,使 线程池方式并等待结果,若有失败的结果加入队列重试。

4、服务器端根据region名字获得region对象,获取锁并更新时间戳,写入memstore,同时更新WAL日志。

3 Hbase删除一条数据的过程?

参考:Hbase资料
HBase的数据删除机制:当接收到数据删除指令后,系统并没有立即删除HFile中存储的数据,而是设置一个标志位标志其被删除(在HDFS中数据删除时被移到/trash文件夹缓冲区),此时系统会根据标志位响应客户端的访问请求,待系统的下一次大合并(major campaction)将被标志的数据块删除,这才算彻底的完成数据的删除。
设置标志位--->移植文件夹缓冲区--->大合并时彻底删除

4 Hbase的campaction介绍

主要起到如下几个作用:
1)合并文件
2)清除删除、过期、多余版本的数据
3)提高读写数据的效率

Minor & Major Compaction的区别:(小合并和大合并)
1)Minor操作只用来做部分文件的合并操作以及包括minVersion=0并且设置ttl的过期版本清理,不做任何删除数据、多版本数据的清理工作。
2)Major操作是对Region下的HStore下的所有StoreFile执行合并操作,最终的结果是整理合并出一个文件。

5 Hbase的Log-Structured Merge Tree架构模式?

参考:
HBase源码之Compaction的执行策略分析
HBase Compaction解析

用户数据写入先写WAL,再写缓存,满足一定条件后缓存数据会执行flush操作真正落盘,形成一个数据文件HFile。随着数据写入不断增多,flush次数也会不断增多,进而HFile数据文件就会越来越多。然而,太多数据文件会导致数据查询IO次数增多,因此HBase尝试着不断对这些文件进行合并,这个合并过程称为Compaction。

Compaction会从一个region的一个store中选择一些hfile文件进行合并。
先从这些待合并的数据文件中读出KeyValues,再按照由小到大排列后写入一个新的文件中。之后,这个新生成的文件就会取代之前待合并的所有文件对外提供服务。

HBase根据合并规模将Compaction分为了两类:

  • Minor Compaction是指选取一些小的、相邻的StoreFile将他们合并成一个更大的StoreFile,在这个过程中不会处理已经Deleted或Expired的Cell。一次Minor Compaction的结果是产生更少并且更大的StoreFile。
  • Major Compaction是指将所有的StoreFile合并成一个StoreFile,这个过程还会清理三类无意义数据:被删除的数据、TTL过期数据、版本号超过设定版本号的数据。另外,一般情况下,Major Compaction时间会持续比较长,整个过程会消耗大量系统资源,对上层业务有比较大的影响。因此线上业务都会将关闭自动触发Major Compaction功能,改为手动在业务低峰期触发。

触发时机

HBase中可以触发compaction的因素有很多,最常见的因素有这么三种:

  • Memstore Flush
  • 后台线程周期性检查
  • 手动触发。

6 BockCache???

Memstore主要用来写,BlockCache主要用于读
读请求先到Memstroe中查数据,查不到就到BlockCache中查,再查不出就会到磁盘上读,并把读的结果放到BlockCache中;
BlockCache采用的是LRU策略,当块缓存达到上限后,会启动淘汰机制,淘汰掉最老的一批数据。

疑惑:BlockCache是属于store的还是属于RegionServer的?
一个RegionServer上有一个BlockCache和N个Memstore

7 HBase二级索引???

HBase二级索引的设计

HBase本身只提供基于行键和全表扫描的查询,而行键索引单一,对于多维度的查询困难(如:对于价格+天数+酒店+交通的多条件组合查询困难),全表扫描效率低下。

二级索引的本质就是建立各列值与行键之间的映射关系。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,383评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,522评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,852评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,621评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,741评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,929评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,076评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,803评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,265评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,582评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,716评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,395评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,039评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,027评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,488评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,612评论 2 350

推荐阅读更多精彩内容