自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 Raft系列文章之三:Raft RPC详解

上一篇文章提到, Raft核心部分只需要用到2个RPC: RequestVote和AppendEntries, 本文将介绍这两个RPC的格式和作用。RequestVote RPC是由candidate发送给其他节点,请求其他节点为自己投票,如果一个candidate获得了多数节点的投票,则该candidate转变为Leader。AppendEntries RPC是由Leader节点发送给其他节点,有两个作用,当其entries域为空时,该RPC作为Leader的心跳,当entries域不为空时,请求其他节

2014-12-13 13:10:33 4887

原创 Raft系列文章之二:Leader选举

Raft首先会选举出一个唯一的Leader, Leader负责管理日志,所用对日志的添加和状态变化操作都通过Leader完成。Leader接受用户的日志请求并将日志分发给系统中其他节点。并告知其他节点何时可以安全地将日志应用到状态机上。这种方式简化了多副本日志的管理,日志的数据流向是从Leader到其他节点,而其他节点不会发送日志给Leader。Leader当掉时,Raft会选出一个新的Leader。本文介绍Leader选举过程。

2014-12-07 23:54:05 6838 2

原创 Raft系列文章之一: 什么是Raft?

简单的说,Raft是一种易于理解的一致性算法,其功能相当于Paxos。目前很多提供一致性服务的系统都采用Paxos, 例如Chubby, ZooKeeper, 那么为何还需要Raft?自Lamport 1998年提出Paxos以来, 该协议虽逐渐成为主流一致性协议,但也以难以理解而著名,实现起来比较困难,而Raft 设计的主要目的之一就是容易理解,Raft将整个算法过程分解为若干个独立的子过程,并且详细描述了每个子过程如何实现,容易理解和实现。 博主自己也基于Java语言实现了Raft, 代码位于 http

2014-12-07 17:14:50 5712 1

原创 Windows环境下搭建HBase源码开发环境

本文介绍了如何在Windows环境下搭建HBase源码开发及调试环境,用于查看,分析,开发,提交HBase源码。

2014-12-07 15:18:05 4762

原创 使用JUnit测试Java类的私有方法

Java项目开发过程中,有时需要测试类的私有方法,而私有方法不能直接调用,但可以利用反射机制来进行调用,下面是一个例子: @Test public void testGetElectionTimeout() throws Exception { int confTimeout = conf1.getInt("raft.election.timeout"); Me

2014-12-01 12:05:17 1436

原创 常用Git命令

博主在使用Git进行开发时常用的命令

2014-12-01 11:28:52 459

原创 Protocol Buffers学习笔记 - Windows上搭建开发环境,开发Java序列化应用

Google ProtocolBuffer是Google开源数据序列化工具,的是用于结构化数据串行化的灵活、高效、自动的方法,有如XML,不过它更小、更快、也更简单。你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。

2014-11-10 15:26:56 1273

原创 HBase 日志分割 (log split)

在上一篇博文中,我们提到

2014-11-09 19:36:30 3001

转载 HBase文件格式演变之路

Apache HBase是Hadoop的分布式开源的存储管理工具,非常适合随机实时的io操作。我们知道,Hadoop的Sequence File是一个顺序读写,批量处理的系统。但是为什么HBase能做到随机的,实时的io操作呢?Hadoop底层使用Sequence File文件格式存储,Sequence File允许以追加的方式增加k-v(Key-Value)数据,根据hdfs的a

2014-11-09 16:29:33 462

翻译 LSM树在HBase中的应用

3.5 Log-Structured Merge-Trees(LSM-trees)No-SQL database usually uses LSM-trees as data storage process architecture. HBase is no exception. As we all known, RDBMS adopts B+ tree to organize its i

2014-11-09 14:53:44 1703

翻译 JDK中的设计模式

http://stackoverflow.com/questions/1673841/examples-of-gof-design-patternsCreational patternsAbstract factory (recognizeable by creational methods returning the factory itself which in turn

2014-11-08 01:13:14 484

原创 ThreadLocal类型变量为何声明为静态?- ThreadLocal实现原理

ThreadLocal类的目的是为每个线程单独维护一个变量的shiti

2014-11-07 16:01:40 8449 2

原创 HBase 0.99 源代码分析 - Master启动过程(2)

下面继续从HMaster.finishActiveMasterInitialization方法开始分析HBase 0.99 Master启动过程。HMaster.finishActiveMasterInitialization方法主要完成如下功能:1. 初始化Master功能组件:filesystem manager, server manager, assignment manager, r

2014-11-06 00:10:34 1695

原创 HBase 0.99 源代码分析 - Master启动过程(1)

HBase版本更新速度比较快,网上已经有很多HBase源码分析的文章,本文基于目前最新的master branch(当前最新release版本为0.98)分析学习HBase Master服务器启动过程。从HBase启动脚本 (start-hbase.sh, hbase-daemon.sh, hbase) 可以看出HBaseMaster启动的入口函数是org.apache.hadoop.hbas

2014-11-04 23:53:52 1822

空空如也

空空如也

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

TA关注的人

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