Hbase面试题简要总结

22 篇文章 0 订阅

以简洁为主,不长篇论述,方便记忆

读写流程

regionserver简称rs
读流程

  • client访问zk,获取meta表信息
  • 依据meta表信息获取待读取的rs上的region信息
  • client向rs发起读请求
  • rs先查询memstore,再查询blockcache,还没找到就去查storeFile
  • rs将数据响应给client

写流程

  • client访问rs,获取meta表信息
  • 依据meta表信息获取待写入的rs上的region信息
  • client向rs发起写请求
  • rs收到吧数据写入Hlog
  • rs再把数据写入memstore, 都ok就算写入成功
  • memstore达到128M或其他条件,flush成storefile
  • storefile大于3触发compact合并成1个
  • storefile达到10G时,触发region split,由master进行分配

rowkey设计

三个关键词,多了记不住
加盐
哈希
反转

hbase预分区

  • 可以建表时指定分区,SPLITS参数,就是给rowkey划分个范围
  • 比如1-1000,1001-2000,2001-3000 每个范围分一个region,填充数据的时候数rowkey不同,数据就进入不同的region

hbase二次索引

Hbase依据非rowkey字段查询时比较困难,如果列族中某一列是经常用来做筛选条件查询的,可以建立一个二级索引表,把这一列作为key,rowkey作为value新建一张表. 这样就可以查询其他信息

缺点就是两个表未必能同步更新信息.

hbase优化

建表时的优化

  • rowkey优化
  • 列族数量不要多,1到2个就ok
  • 设置region server的缓存
  • 设置数据的保存时间

写数据时的优化

  • 关闭WAL,有风险
  • 批量写数据,将Put包装成List
  • 加大写入时的缓存大小. (快,耗内存)
  • compact时间
  • memstore缓存大小

读数据时的优化
-Scan.setCaching,设大了查的快,但是耗内存
-region的大小,大了小了各有坏处和好处
-region server的线程数

硬件优化

  • 多给region server内存

hbase组成及各组件作用

client

  • 提供接口
  • 提供缓存
    zookeeper
  • 保证hmaster高可用
  • region server动态上下线
    Hmaster
  • 负载均衡 region分配
  • schema更新,(ns table创建与删除)
    region server
  • region拆分与合并
  • 负责客户端请求
  • 将客户群请求提前写入Hlog
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值