AlstonWilliams's Blog

Thinking will not overcome fear but action will.

HBase-Data-Block-Encoding-Types介绍

本文翻译自Cloudera HBase官方文档 阅读本文前,请了解一下HFile的格式,对阅读本文会大有裨益. 简单介绍HFile 我们这里简单介绍一下HFile的组成,让读者知道什么是Data Block Encoding. HFile中,包含了好几个部分,具体的请查看HFile Format.我们这里只关心HFile里的Data Block. HFile在存储每一个Row时,不...

HBase-Compaction-(5)Minor-Compaction-vs-Major-Compaction

以前,我一直都有一个误解,就是以为我们调用Admin.compact(table)时,它就一定会进行Minor Compaction。我也曾误认为,调用Admin.majorCompact(table)时,一定会进行Major Compaction。 然后,事实并不是这样子。 环境 HBase rel-2.1.0 解析 我们先来看类图: 在这里面,RatioBasedCompa...

HBase-Compaction-(4)Compaction容错性

我们一定不想,做一个Compaction,中间失败了,导致我们的数据丢失了。 那HBase的Compaction是如何保证容错性呢? 环境 HBase rel-2.1.0 解析 其实容错性这儿做的很简单。我们直接上代码: List<HStoreFile> sfs = moveCompactedFilesIntoPlace(cr, newFiles, user); wri...

HBase-Compaction-(3)Compaction可以并发么

这个问题之前一直困扰着我。之前一直怀疑,如果可以并行的话,岂不是要乱套。可是如果不能并行的话,那效率岂不是很低。 后来猜测,是不同Region可以并行,相同Region是串行。 然后,事实证明是我错了。 环境 HBase rel-2.1.0 Git上并没有这个分支,需要用rel/2.1.0这个tag新建一个出来。 解析 在Compaction时,是有一个线程池的。我们来看一下:...

HBase-Compaction-(2)ExploringCompactionPolicy以及RatioBasedCompactionPol

在这篇文章中,我会介绍,ExploringCompactionPolicy以及RatioBasedCompactionPolicy,是如何选择需要HStoreFile来进行Compaction。 HBase版本 我采用的HBase版本是rel-2.1.0这个分支。 RatioBasedCompactionPolicy 我们首先来看RatioBasedCompactionPolicy。...

HBase-Compaction-(1)何时会进行compaction

目前在看HBase中跟Compaction相关的代码。 对于Compaction,我们最关心的一点,就是,何时会进行Compaction。因为这会直接影响我们HBase的读写性能。 环境 HBase rel-2.1.0 解析 HBase会在这三种情况下,进行Compact: MemStore flush时 检测线程检测到需要进行Compact时 主动调用 MemS...

Go-grpc配置

最近在研究Docker的源码时,读到libContainerd部分时,发现它用到了grpc.而此前只知道只是一个用于分布式系统中RPC的库.就借着这个机会,学习一下这个工具. 写过Java中的WSDL的朋友,会觉得其实它们的使用非常相似. 安装ProtoBuf 3 因为grpc依赖ProtoBuf,将我们写的服务定义转换成Go文件.所以我们需要安装ProtoBuf. 那为什么要安装Pr...

Flume通过Kafka-Sink集成到Kafka时,遇到时间戳的问题

因为我们需要将日志文件发送给Kafka,然后通过其流处理的功能对日志进行加工,所以需要通过Kafka Sink集成到Kafka. 然而,当集成时,发现了一个问题.我用的Kafka版本是0.11.0.0,Flume的版本是1.7.0. 如果你跑着一个Kafka流处理应用,你会发现它会提示下面的错误: Possibly because a pre-0.10 producer client ...

Error-while-loading-shared-libraries--libprotobuf-so-10--cannot-open-s

在安装protobuf的c++版本的编译器时,使用protoc –version命令查看版本时,遇到这个问题. 解决方法为,安装protobuf的库,我这里因为是c++版本,所以安装的是libprotobuf-c0.使用下面的命令安装: sudo apt-get install libprotobuf-c0 在Ubuntu环境下可用.

Docker存储位置迁移.html

Docker存储位置迁移 Docker存储位置迁移 今天本来想给各位介绍一下Spring Boot,但是因为后面一直在尝试迁移Docker存储位置,而且觉得这个意义比较大.就暂且先介绍一下如何迁移Docker的存储位置.以后有时间,在介绍Spring Bo...