大数据/hbase
文章平均质量分 86
莫言静好、
这个作者很懒,什么都没留下…
展开
-
HBase架构设计及原理分析
HBase架构设计及原理分析原创 2017-11-12 10:32:51 · 835 阅读 · 0 评论 -
HBase之Region Compact流程分析
Compact(合并):是指在HBase中,HRegion上某一个列簇部分或者全部Store File合并。是由于数据不断的被写入,MemStore达到阀值则会把数据flush到Store File持久化。这样样的话就有很多文件,越积越多会严重影响HBase的读取效率,所以HBase在满足一定条件获或者手动触发合并操作,讲很多文件合并成一个大文件 StoreEngine: 是一个能够为HS原创 2017-11-14 11:22:36 · 1123 阅读 · 0 评论 -
HBase之Region上Spilt流程分析
HBase之Region上Spilt流程分析原创 2017-11-14 11:20:47 · 418 阅读 · 0 评论 -
HBase的Row Key设计
HBase中的行是以row key进行字典排序的,这种设计优化了scan的操作,将以将相关的行或者一起读取的行存储在临近的位置,以便于scan. 但是row key设计不好就会造成读写热点问题,造成大量客户端直接访问集群某一个或者极少数的节点,造成节点性能下降或者Region不可用。同时还会对其他Region或者业务造成影响。集群不能被充分使用。 首先我们得确保row key必须唯一,而且转载 2017-11-14 10:52:46 · 4795 阅读 · 0 评论 -
HBase之MVCC
HBase在保证写数据一致性的同时,还保证读取的高性能。这一机制的实现就是通过MultiVersionConsistencyControl来控制的,简称MVCCHBase为什么需要并发控制?我们知道HBase是可以通过客户端往服务器写数据的,如果存在多个客户端,可能同时在操作某一个Region的某一行的某一列。我们首先假定一个并发写的场景:假设两个客户端同时往表中同一个原创 2017-11-13 10:26:15 · 729 阅读 · 1 评论 -
HBase之HRegionServer处理put请求
我们知道客户端是通过MultiServerCallable.call()调用multi()来进行RPC请求的。1 RegionServer在接受到客户端写请求后,首先反序列化PUT对象,然后判断操作是否是原子性的,如果不是原子性的则调用doNonAtomicRegionMutatiOn操作 2 获取PUT请求中的row key,family,以及qualifier等信息 3 检转载 2017-11-13 10:22:13 · 493 阅读 · 0 评论 -
HBase写性能优化策略
HBase写入通常会遇到两种问题:# 写的性能很差# 根本写不进去一 HBase写入性能优化1.1 是否需要写WAL? WAL是否需要同步写?WAL机制可以确保数据即使写入缓存的数据丢失了,也可以恢复;另外是为了集群之间的异步复制。默认WAL机制开启,且使用同步机制写入WAL. 我们可以考虑是否需要写入WAL,通常大多数企业业务都会开启,但是对于部分业务可能并不特别转载 2017-11-13 10:20:21 · 7978 阅读 · 0 评论 -
HBase之KeyValueScanner
一 首先我们看一下Key Value 是怎么在HFile上存储的其中Key Length =Key的基础大小+Row Key Length+ Column FamilyLength + Qualifier Length Key的基础大小 = 存储rowkey length的大小 + 存储column familyLength的大小 + 存储TimeStamp的大小转载 2017-11-13 10:17:14 · 650 阅读 · 0 评论 -
HBase数据读取流程解析
一 客户端GET读客户端GET读其实没有什么逻辑,就简单几个步骤:1.1 connection 根据表名,行健得到从哪一个RegionServer和Region上去读1.2 通过Region信息和和GET对象构造一个GET Request1.3 通过RPC把GET请求提交到服务器端,以得到返回结果 二 RegionServer GET读2.1 首先将GET请求反序列原创 2017-11-13 10:11:51 · 783 阅读 · 0 评论 -
HBase读性能优化策略
使用HBase可能会遇到各种问题,有些是系统本身的设计的问题,有些是使用的问题,常见的问题:FULL GC异常导致宕机,RIT问题,写吞吐量太低以及读延迟较大。 这篇文章就以读延迟优化为核心内容展开,具体分析HBase进行读延迟优化的策略,以及这些策略具体原理。 一般情况下,读请求延迟较大通常存在三种场景,分别为:# 集群中某一个业务延迟较大,其他业务正常# 整个集群所有业原创 2017-11-13 10:10:11 · 3446 阅读 · 0 评论 -
HBase之重试机制
在运维HBase的这段时间里,发现业务用户一方面比较关注HBase本身服务的读写性能:吞吐量以及读写延迟,另一方面也会比较关注HBase客户端使用上的问题,主要集中在两个方面:是否提供了重试机制来保证系统操作的容错性?是否有必要的超时机制保证系统能够fastfail,保证系统的低延迟特性?这个系列我们集中介绍HBase客户端使用上的这两大问题,本文通过分析之前一个真实的案例来介绍HBase客户转载 2017-11-13 10:07:56 · 1156 阅读 · 0 评论 -
HBase之超时机制
客户端超时设置对整个系统的稳定性以及敏感性至关重要,一旦没有超时设置或超时时间设置过长,服务器端的长时间卡顿必然会引起客户端阻塞等待,进而影响上层应用。好在HBase提供了多个客户端参数设置超时,主要包括 hbase.rpc.timeout / hbase.client.operation.timeout/ hbase.client.scanner.timeout.period一 hbase.原创 2017-11-13 10:07:41 · 5646 阅读 · 0 评论 -
HBase之HFile详解
HFile是HBase存储数据的文件组织形式。HFile经历了三个版本,其中V2在0.92引入,V3在0.98引入。HFileV1版本的在实际使用过程中发现它占用内存多,HFile V2版本针对此进行了优化,HFile V3版本基本和V2版本相同,只是在cell层面添加了Tag数组的支持。转载 2017-11-12 10:34:13 · 11578 阅读 · 0 评论 -
HBase之HFile索引机制
HFile索引结构根据索引层级不同分为2种:Single-Level 和 Multi-Level。前者表示单级索引,后者表示多级索引,一般分为2级或者3级。之所以HFile v2引入多级索引是因为,随着HFile文件越来越大,Data Block越来越多,索引数据也越来越多,大到已经无法全部加载到内存,而多级索引可以只是加载部分索引,降低内存的使用空间。转载 2017-11-12 10:33:53 · 2756 阅读 · 0 评论 -
HBase HA完全分布式环境搭建
一 集群部署架构介绍Master节点一主一备,跟HadoopNameNode 保持一致,即HBaseMaster也把主从节点放在NameNode主从同一台机器RegionServer放在每一个对应DataNode上,比如我由三个DataNode,那么每一台DataNode对应的Server也会放一个RegionServer节点规划信息:二 企业级系统参数设置查看原创 2017-11-12 10:33:34 · 2678 阅读 · 0 评论 -
HBase之MemStore flush流程
一 HRegionServer启动的时候,会调用startServiceThreads,启动一些后台线程,比如compact checker,启动flushCache等线程 二HRegionServer启动后台线程的时候,会通过MemStoreFlusher#start方法,开启FlushHandler线程. 三 只要RegionServer一直运行,FlushHandler原创 2017-11-14 11:24:18 · 770 阅读 · 0 评论