KafkaSpout: PartitionManager的行为分析】的更多相关文章

KafkaSpout的核心逻辑都是由PartitionManager来实现的. 但是这个类实现时候需要考虑的东西有些多,0.92至0.93,至当前(2015.3.14)的master一直在变化.在这里,先分析一下最近的发布版0.93里的逻辑.也提出一些问题,希望以后Apache Storm会把这个类实现地更完美一些. PartitionManager的主要功能 PartitionManager用来管理单个Partition.提供持久化读取进度.读取消息功能,并提供Storm的spout需要实现的…
public KafkaSpout(SpoutConfig spoutConf) { _spoutConfig = spoutConf;} 基于0.93版本的Storm SpoutConfig继承自KafkaConfig.由于SpoutConfig和KafkaConfig所有的instance field全是public, 因此在使用构造方法后,可以直接设置各个域的值. public class SpoutConfig extends KafkaConfig implements Seriali…
基于0.93版本Storm 首先,如果自己写KafkaSpout,该怎么办?有哪些地方需要考虑呢 1. 得实现Storm指定的接口.这样Storm才能够使用它.那么需要实现什么接口?需要提供什么功能给Storm调用呢? 2. 需要给spout的每个task指定任务,也就是把Kafka里的消息分配给spout task去读取.这时候,就会有以下问题: 是否一个KafkaSpout需要支持多个topic?鉴于每个topology里可以有多个spout,这样做没有必要,而且会带来较大的复杂性. 如何把…
最近在使用storm做一个实时计算的项目,Spout需要从 KAFKA 集群中读取数据,为了提高开发效率,直接使用了Storm提供的KAFKA插件.今天抽空看了一下KafkaSpout的源码,记录下心得体会. KafkaSpout基于kafka.javaapi.consumer.SimpleConsumer实现了consumer客户端的功能,包括 partition的分配,消费状态的维护(offset).同时KafkaSpout使用了storm的可靠API,并实现了spout的ack 和 fai…
from: http://blog.csdn.net/wzhg0508/article/details/40903919 (五)storm-kafka源码走读之KafkaSpout 原创 2014年11月08日 14:09:06 标签: Storm / kafka / 大数据 / 实时计算 3458 现在开始介绍KafkaSpout源码了. 开始时,在open方法中做一些初始化, ........................ _state = new ZkState(stateConf);…
PartitionManager算是storm-kafka的核心类了,如今開始简单分析一下.还是先声明一下,metric部分这里不做分析. PartitionManager主要负责的是消息的发送.容错处理,所以PartitionManager会有三个集合 _pending:尚未发送的message的offset集合, 是个TreeSet<Long>() failed : 发送失败的offset 集合,是个TreeSet<Long>() _waitingToEmit: 存放待发射的m…
1.Storm第一个Demo 2.Windows下基于eclipse的Storm应用开发与调试 3.Storm实例+mysql数据库保存 4.Storm原理介绍 5. flume+kafka+storm+mysql 实时架构 1.Storm第一个Demo Storm运行模式: 本地模式(Local Mode): 即Topology(相当于一个任务,后续会详细讲解)  运行在本地机器的单一JVM上,这个模式主要用来开发.调试. 远程模式(Remote Mode):在这个模式,我们把我们的Topol…
1.概述 本课程的视频教程地址:<Kafka实战项目之分析与设计>  本课程我通过一个用户实时上报日志案例作为基础,带着大家去分析Kafka这样一个项目的各个环节,从而对项目的整体设计做比较合理的规划,最终让大家能够通过本课程去掌握类似Kafka项目的分析与设计.下面,我给大家介绍本课程包含的课时内容,如下图所示: 接下来,我们开始第一课时的学习:<项目整体概述>. 2.内容 2.1 项目整体设计 项目整体概述主要讲解一个项目产生的背景,以及该项目背后的目的,从而让大家更好的去把握…
使用https://github.com/nathanmarz/storm-contrib来对接Kafka0.7.2时, 发现kafkaSpout总会进行数据重读, 配置都无问题, 也没报错 进行debug之后, 发现是由于自己写的blot继承于IBolt, 但自己没有在代码中显示的调用collector.ack(); 导致kafkaSpout一直认为emitted的数据有问题, 超时之后进行数据重发 KafkaSpout中关键代码如下: PartitionManager.java public…
title: alias导致virtualenv异常的分析和解法 toc: true comments: true date: 2016-06-27 23:40:56 tags: [OS X, ZSH, alias, virtualenv] category: OS X --- virtualenv 可以虚拟出一个独立的Python环境,在这个环境中安装的第三方库不会对系统中的Python产生影响.作为一个系统洁癖,我的系统中的Python环境只安装最主要的第三方库,我在开发Python项目的时…