自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java.io.FileNotFoundException: F:\jstorm (拒绝访问.)

使用JStorm处理数据,将处理结果写入一个文件:报错了,它竟然告诉我这个异常:java.io.FileNotFoundException: F:\jstorm (拒绝访问.) 仔仔细细的检查了一遍,明明存在啊,怎么会报找不到文件这个异常呢???F:\jstorm这是一个文件夹,当你用流来读的时候当然会报找不到文件异常,你应该去读一个文件而不是去读一个文件夹也正因为

2016-06-23 21:47:50 9597

原创 JStorm/Storm的调试:本地运行模式

最近正在学习使用JStorm,写了一个Topology,将程序打成jar包,提交到JStorm集群运行,但是并没有输出结果,反复检查代码,还是查不出错误,而且每次改正代码之后,都要重新打成jar,上传到集群,很不方便。忽然想到Hadoop有本地运行模式,非常方便调试,于是开始查阅相关资料,一下是我的一些学习成果。Storm运行模式:本地模式(Local Mode): 即To

2016-06-23 21:22:20 14545 3

原创 Hbase-0.98.6源码分析--MVCC多版本并发控制技术

前几篇文章稀稀拉拉的介绍了HBase的MVCC,但也只是停留在概念阶段,这几天学习了MVCC的源码,和大家分享一下。       在看源码之前再简单啰嗦一下MVCC的概念,有助于理解源码的精神。       想像这样一种情景,在数据库进行读操作时,如果有人向其中写入数据,读的人就有可能会看到不一致的数据。当然解决方法很多,最简单的莫过于加锁,让所有读者等待写工作完成再读,但这样会影响并发效

2016-06-23 10:50:43 770

翻译 HBase MVCC和内建的原子操作

原版英文地址:http://www.68idc.cn/help/mysqldata/nosql/20150302241120.html      By Lars Hofhansl       HBase有一些特殊的原子操作:checkAndPut,checkAndDelete:这些简单的检查列值作为执行 put 和 delete 的前提条件,检查成功则执行。Increm

2016-06-22 15:07:18 869

翻译 HBase内部的ACID

原版英文地址:https://www.douban.com/note/407014354/        偶然看到的一篇文章,里面不只是阐述了某一个问题,而是对ACID在HBase的各个组件的应用情况作了详细的说明,所以有必要翻译出来,整理一下。        众所周知,ACID,即指:原子性(Atomicity),一致性(Consistency),隔离性(Isolation),持久性(D

2016-06-22 10:34:10 1690

转载 HBase中MVCC的实现机制及应用情况

原文地址:http://www.cnblogs.com/panfeng412/p/mvcc-implementation-mechanism-in-hbase.html       MVCC(Multi-Version Concurrent Control),即多版本并发控制协议,广泛使用于数据库系统。本文将介绍HBase中对于MVCC的实现及应用情况。       MVCC基本原理在

2016-06-21 12:10:24 550

转载 总结一下HBase各种级别的锁以及对读写的阻塞

原文地址:http://blog.csdn.net/yangbutao/article/details/12950083      为了保证并发操作时数据的一致性和性能,HBase中应用了各种各样高效的可重入锁,包括行级别的rowlock、mvcc,region级别的读写锁,store级别的读写锁,memstore级别的读写锁等等。      1、  行级别的锁RowLock     

2016-06-21 11:53:52 2528

原创 Hbase-0.98.6源码分析--行锁

在传统的关系型数据库,如MySQL中,存在事务(Transaction)这一概念 ,事务是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会执行。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足ACID(原子性、一致性、隔离性

2016-06-21 11:25:23 558

原创 Hbase-0.98.6源码分析--Put写操作HRegionServer端流程

在《Hbase-0.98.6源码分析--Put写操作Client端流程》中,介绍了put操作的流程,最后client端是通过MultiServerCallable.call()调用multi()方法来进行rpc请求的。追踪multi()方法,进入ClientProtos.ClientService.BlockingInterface接口的multi()抽象方法,再次追踪该方法,进入实现该方法的HR

2016-06-20 14:27:46 893

原创 Hbase-0.98.6源码分析--Nonce管理机制源码分析

在《Hbase-0.98.6源码分析--Put写操作Client端流程》这篇文章中,我们介绍了Put写操作在Client端的操作流程,在介绍其中submit()方法的时候,出现了一个陌生的名词——Nonce机制,今天就来仔细的介绍下不可或缺的Nonce管理机制。        HBase具有很强大的容错特性,而在网络世界,网络出现不稳定状况是默认一定,HBase肯定对此进行了针对性的容错处理,

2016-06-19 11:10:14 844

原创 Hbase-0.98.6源码分析--Put写操作Client端流程

客户端程序写数据通过HTable和Put进行操作,我们从客户端代码开始分析写数据的流程:       可以看到,客户端写数据最终的调用了HTableInterface的put()方法,因为HTableInterface只是一个接口,所以最终调用的是它的子类HTable的put()方法。进入HTable.put():       从上面代码可以看出:你既可以一次put一行记录

2016-06-18 13:36:21 1315

原创 Hadoop-2.4.1源码分析--HDFS HeartBeat(心跳检测)之NameNode端处理数据块增量汇报

在《Hadoop-2.4.1源码分析--HDFS HeartBeat(心跳检测)之DataNode端数据块增量汇报》中,介绍了在DN中调用NN的代理实例bpNamenode的blockReceivedAndDeleted()方法,由它负责向NamNode发送RPC请求,根据我们之前讲的RPC原理,可以得知在NN端必定也有一个blockReceivedAndDeleted()方法,执行具体的RPC请

2016-06-16 13:27:14 1047

原创 Hadoop-2.4.1源码分析--HDFS HeartBeat(心跳检测)之DataNode端数据块增量汇报

在《Hadoop-2.4.1源码分析--HDFS HeartBeat(心跳检测)之BPServiceActor工作线程运行流程》上、下两篇中,我们介绍了BPServiceActor工作线程的工作流程,即DN周期性发送心跳给NN的大致流程为:        1、连接NN并且完成两次握手。第一次握手获取命名空间信息并验证、设置;第二次握手完成DN的注册。        2、调用sendHear

2016-06-16 11:02:37 1460 1

原创 Hadoop-2.4.1源码分析--HDFS HeartBeat(心跳检测)之BPServiceActor工作线程运行流程(下)

在《Hadoop源码分析--HDFS HeartBeat(心跳检测)之BPServiceActor工作线程运行流程(上)》这篇文章中,我们介绍了BPServiceActor线程的工作大体流程,至于具体的细节部分,只是讲到了完成与NameNode的连接并进行两次握手的connectToNNAndHandshake()方法,还有一个offerService()方法,用于向NameNode发送心跳,并且

2016-06-13 12:49:08 1066

原创 JStorm-2.1.1源码分析--Topology提交(下)

上篇文章已经介绍了ServiceHandler.submitTopologyWithOpts()方法,在该方法中,会实例化一个TopologyAssignEvent,相当于创建了一个topology级别的作业,然后将其保存到TopologyAssign的任务队列中,具体代码如下:       TopologyAssign是Jstorm一个任务分配器,它会根据配置和Topology中sp

2016-06-10 14:17:06 3396

原创 JStorm-2.1.1源码分析--Topology提交(上)

Topology提交前会先判断集群中是否存在同名作业,如果存在在提交失败,如果没有则会增加集群提交次数SubmittedCount,每次提交成功,该变量都会加1,然后会为该作业分配一个id,生成规则如下:       因此我们从作业id中就可以判断集群作业成功提交次数、提交时间、还有作业名称了,如果我们没有指定acker数量,对topology本身的校验比较细致:       1、

2016-06-10 12:39:07 1262

原创 JStorm-2.1.1源码分析--Topology提交(中)

一个topology包含一或多个spout bolt,spout负责在数据源获得数据并发送给bolt,每个bolt负责做完处理后发给下一个bolt。通常topology的创建是由TopologyBuilder来创建的,该组件会记录包含哪些spout bolt,并做相应验证:各组件是否有id冲突,校验方法如下:        TopologyBuilder会保存各个组件到相应的数据结构中

2016-06-10 11:51:15 1698

原创 JStorm-2.1.1初识及提交同名的Topology

JStorm 是一个分布式实时计算引擎。       JStorm 是一个类似Hadoop MapReduce的系统, 用户按照指定的接口实现一个任务,然后将这个任务递交给JStorm系统,JStorm将这个任务跑起来,并且按7 * 24小时运行起来,一旦中间一个Worker 发生意外故障, 调度器立即分配一个新的Worker替换这个失效的Worker。       因此,从应用的

2016-06-10 11:12:27 837

原创 Hadoop-2.4.1源码分析--HDFS HeartBeat(心跳检测)之BPServiceActor工作线程运行流程(上)

在《Hadoop源码分析--HDFS HeartBeat(心跳检测)整体结构》一文中,我们了解到HDFS心跳相关的BlockPoolManager、BPOfferService、BPServiceActor三者之间的关系,并且知道最终HDFS的心跳是通过BPServiceActor线程实现的。那么,这个BPServiceActor线程到底是如何工作的呢?本文,我们将继续HDFS心跳分析之BPSer

2016-06-08 13:19:59 932

原创 Hadoop-2.4.1源码分析--HDFS HeartBeat(心跳检测)数据结构初始化

在上篇文章《Hadoop源码分析--HDFS HeartBeat(心跳检测)整体结构》中,详细了解了HDFS中关于心跳的整体结构,知道了BlockPoolManager、BPOfferService和BPServiceActor三者之间的关系。接下来,我们就开始研究HDFS心跳汇报之数据结构初始化。        首先,在DataNode节点启动时所必须执行的startDataNode()

2016-06-07 03:42:02 838

原创 Hadoop-2.4.1源码分析--HDFS HeartBeat(心跳检测)整体结构

HDFS全称是Hadoop Distribute FileSystem,即Hadoop分布式文件系统,有主从节点之分。在HDFS中,主节点是名字节点NameNode,它负责存储整个HDFS中文件元数据信息,保存了名字节点第一关系和名字节点第二关系。名字节点第一关系是文件与数据块的对应关系,在HDFS正常运行期间,保存在NameNode内存和FSImage文件中,并且在NameNode启动时就由FS

2016-06-06 13:44:29 2641

原创 Hadoop-2.4.1源码分析--由HDFS心跳检测想到的Keepalived

最近一段时间都在读HDFS关于Heartbeat(心跳检测)的源码,读的过程中忽然想到了以前在项目中用到的、为Nginx做HA的Keepalived,当时并没有注意,现在发现二者很相像,但细想又有许多的不同,所以梳理了一下,总结如下:To Be Continued 。。。

2016-06-05 23:31:27 886

空空如也

空空如也

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

TA关注的人

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