
Apache Storm 学习笔记
从基础开始,结合实际应用中的问题,记录Apache Storm学习过程中的点点滴滴。
看山
人非生而知之者,孰能无惑,惑而不从师,其为惑也,终不解矣
展开
-
storm笔记:storm基本概念
本文主要介绍storm中的基本概念,从基础上了解strom的体系结构,便于后续编程过程中作为基础指导。主要的概念包括:topology(拓扑)、stream(数据流)、spout(水龙头、数据源)、bolt(螺栓,数据筛选处理)、stream group(数据流分组)、reliability(可靠性)、task(任务)、worker(执行者)原创 2016-01-21 14:53:37 · 5715 阅读 · 2 评论 -
storm笔记:storm集群
Strom集群结构是有一个主节点(nimbus)和多个工作节点(supervisor)组成的主从结构,主节点通过配置静态指定(还有一种主从结构是在运行时动态选举,比如zookeeper)。通常这种主从结构存在出现单点故障的风险,Storm通过特殊处理规避这种风险,后面将解释Storm的半容错结构。原创 2016-01-25 10:17:35 · 8692 阅读 · 0 评论 -
storm笔记:Storm+Kafka简单应用
这几天工作需要使用storm+kafka,基本场景是应用出现错误,发送日志到kafka的某个topic,storm订阅该topic,然后进行后续处理。场景非常简单,但是在学习过程中,遇到一个奇怪的异常情况:使用KafkaSpout读取topic数据时,没有向ZK写offset数据,致使每次都从头开始读取。纠结了两天,终于碰巧找到原因:应该使用`BaseBasicBolt`作为bolt的父类,而不是`BaseRichB原创 2016-01-21 09:51:29 · 17045 阅读 · 5 评论 -
storm笔记:Trident应用
Trident是基于Storm的实时计算模型的高级抽象。它可以实现高吞吐(每秒数百万条消息)的有状态流处理和低延迟分布式查询。如果以前使用过高级批处理工具(比如Pig或Cascading),则对Trident的概念会非常熟悉,比如连接、聚合、分组、功能处理和过滤等。除此之外,Trident还增加了用于在数据库或持久化存储上进行有状态的增量处理的原语。Trident具有一致性、一次性语义,所以很容易就能够推导出原创 2017-04-01 14:35:02 · 4999 阅读 · 0 评论 -
storm笔记:Trident状态
Trident中有对状态数据进行读取和写入操作的一流抽象工具。状态既可以保存在拓扑内部,比如保存在内容中并由HDFS存储,也可以通过外部存储(比如Memcached或Cassandra)存储在数据库中。而对于Trident的API而言,这两种机制没有任何区别。Trident以容错的方式管理状态,以便在重试或失败时的状态更新是幂等的。在大数据处理中,数据处理的幂等性是非常重要的一个指标,这样能够保证每个消息即使处理了多原创 2017-06-09 22:58:47 · 4605 阅读 · 0 评论