自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xiangel的专栏

大数据和分布式架构

  • 博客(9)
  • 收藏
  • 关注

原创 HBase源码分析之WAL

WAL(Write-Ahead Logging)是数据库系统中保障原子性和持久性的技术,通过使用WAL可以将数据的随机写入变为顺序写入,可以提高数据写入的性能。在hbase中写入数据时,会将数据写入内存同时写wal日志,为防止日志丢失,日志是写在hdfs上的。 默认是每个RegionServer有1个WAL,在HBase1.0开始支持多个WALHBASE-5699,这样可以提高写入的吞吐量。配置参

2017-02-03 22:32:58 3571

原创 HBase源码分析之BlockCache二:BucketCache

前面一篇 HBase源码分析之BlockCache一:综述及LruBlockCache的实现,分析了各种BlockCache及其特点,本篇将分析BucketCache的实现,以及将LruBlockCache和BucketCache组合在一起的CombinedBlockCache。BucketCache先来看看BucketCache中的一些重要的属性 // BucketCache.java //

2017-01-07 23:47:51 2462

原创 HBase源码分析之BlockCache一:综述及LruBlockCache的实现

BlockCache综述读取数据时,如果每次都是访问hfile,这样其性能是很低的,特别是在随机小数据量读的场景下。为提高IO性能,hbase提供了缓存的机制BlockCache。根据帕列托法则(二八法则),我们并不需要将所有数据都进行缓存,能保证热点数据(20%)缓存起来即可。这样就可以大大提高读取的效率。 BlockCache是RegionServer级别的,即每个RegionServer会有

2016-12-31 19:30:46 2781

原创 HBase源码分析之regionserver读取流程分析

数据的读取包括Get和Scan2种,通过get的代码可以看出实际也是通过转换为一个Scan来处理的。//HRegion.javapublic List<Cell> get(Get get, boolean withCoprocessor) throws IOException { List<Cell> results = new ArrayList<Cell>(); ...

2016-12-24 11:23:29 1713

原创 HBase源码分析之regionserver写入流程分析

先做一系列的检查1、检查row值是否在region的范围内2、检查region的状态是否不为readonly3、检查region的memstoresize是否超过blockingMemStoreSize,超过需要先进行flush处理。检查通过后会执行写入的操作,核心的写入操作见HRegion.doMiniBatchMutation方法。具体的处理流程如下:1、做些记录级

2016-12-14 17:57:27 928

原创 HBase源码分析之memstore的实现及flush处理流程

memstore作为hbase数据写入的核心部分,保障了数据的高效的写入,那其具体是怎么实现的?使用了哪些优化的手段?有哪些关键要素可以控制写入的效率呢?下面我们先来分析一下memstore的实现memstore中的数据存储DefaultMemStore.java// 2个存储数据的集合volatile CellSkipListSet cellSet;volatile CellSkipList

2016-12-14 17:36:19 2501 1

原创 HBase源码分析之如何找到region location

通过client的源码分析,我们发现每次建立连接前需要先找到rowkey所属region的regionserver。本篇来分析一下这个找到regionserver的整个流程。背景说明先我们

2016-12-12 10:47:48 2858

原创 HBase源码分析之Client端操作处理

hbase version 1.1.5使用HBase的服务要先建立与HBase服务器的连接,这里我们从hbase client的建立连接开始HBase源码分析的旅程。 先看一段hbase连接的代码Connection connection = ConnectionFactory.createConnection(config);Table table = connection.getT

2016-12-10 10:27:17 3136

翻译 [翻译]Introduction to Monoids and Semigroups with Spark

在地球上什么是Monoid??定义:monoid(幺半群 译注:参考附注1翻译,下文中继续使用英文名)是一个带有二元运算(+)和一个单位元(译注:原文为identity element)i使得对于任意x,x+i=i+x=x。注意它不像群(译注:group,数学上翻译为群),它不带有逆元素。也可以说是带有单位元的半群(semigroup)Wow,没什么用。那先看一些例子然后重新看个简单定义。。http

2015-07-17 21:35:32 498

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除