- 浏览: 56986 次
- 性别:
- 来自: 北京
文章分类
最新评论
一、storm数据来源
Spout的数据源:
MQ:直接流数据源
Db:只能读配置文件
文件:只能学习用,其他无用。
问题:1、分布式应用无法读;2、spout开并发会重复读
Log文件增量数据:1、读出内容写入MQ,2、Storm处理
二、分组策略
stream grouping就是用来定义一个stream应该如果分配给Bolts上面的多个
Executors(多线程,并发度)
注:不是一个spout或bolt emit到多个bolt(广播方式)。
storm里面有6种类型的stream grouping。
单线程下均等同于All Grouping
1.Shuffle Grouping:轮询,每个线程平均分配。随机派发stream里面的tuple,保证每个bolt接收到的tuple数目相同。
2. Non Grouping:无分组, 这种分组和Shuffle grouping是一样的效果,多线程下不平均分配。
3. Fields Grouping:按Field分组,比如按word来分组, 具有同样word的tuple会被分到相同的Bolts, 而不同的word则会被分配到不同的Bolts。
作用:1、过滤,从源端(Spout或上一级Bolt)多输出Fields中选择某些Field
2、相同的tuple会分发给同一个线程(Executer或task)处理
典型场景: 去重操作、Join
4. All Grouping: 广播发送, 对于每一个tuple, 所有的Bolts都会收到。每个线程获得的数据一致。
5. Global Grouping: 全局分组, 这个tuple被分配到storm中的一个bolt的其中一个task。再具体一点就是分配给id值最低的那个task。适合场景:想象不到。
6. Direct Grouping: 直接分组, 这是一种比较特别的分组方法,用这种分组意味着消息的发送者决定由消息接收者的哪个task处理这个消息。 只有被声明为Direct Stream的消息流可以声明这种分组方法。而且这种消息tuple必须使用emitDirect方法来发射。消息处理者可以通过TopologyContext来或者处理它的消息的taskid (OutputCollector.emit方法也会返回taskid)
Spout的数据源:
MQ:直接流数据源
Db:只能读配置文件
文件:只能学习用,其他无用。
问题:1、分布式应用无法读;2、spout开并发会重复读
Log文件增量数据:1、读出内容写入MQ,2、Storm处理
二、分组策略
stream grouping就是用来定义一个stream应该如果分配给Bolts上面的多个
Executors(多线程,并发度)
注:不是一个spout或bolt emit到多个bolt(广播方式)。
storm里面有6种类型的stream grouping。
单线程下均等同于All Grouping
1.Shuffle Grouping:轮询,每个线程平均分配。随机派发stream里面的tuple,保证每个bolt接收到的tuple数目相同。
2. Non Grouping:无分组, 这种分组和Shuffle grouping是一样的效果,多线程下不平均分配。
3. Fields Grouping:按Field分组,比如按word来分组, 具有同样word的tuple会被分到相同的Bolts, 而不同的word则会被分配到不同的Bolts。
作用:1、过滤,从源端(Spout或上一级Bolt)多输出Fields中选择某些Field
2、相同的tuple会分发给同一个线程(Executer或task)处理
典型场景: 去重操作、Join
4. All Grouping: 广播发送, 对于每一个tuple, 所有的Bolts都会收到。每个线程获得的数据一致。
5. Global Grouping: 全局分组, 这个tuple被分配到storm中的一个bolt的其中一个task。再具体一点就是分配给id值最低的那个task。适合场景:想象不到。
6. Direct Grouping: 直接分组, 这是一种比较特别的分组方法,用这种分组意味着消息的发送者决定由消息接收者的哪个task处理这个消息。 只有被声明为Direct Stream的消息流可以声明这种分组方法。而且这种消息tuple必须使用emitDirect方法来发射。消息处理者可以通过TopologyContext来或者处理它的消息的taskid (OutputCollector.emit方法也会返回taskid)
发表评论
-
ITridentSpout、FirstN(取Top N)实现、 流合并和join
2017-05-25 10:01 1036一、ITridentSpout 基于事务 static int ... -
Trident实战之计算网站PV
2017-05-24 13:24 6521、Trident实战之计算网站PV /** * ... -
Trident API和概念
2017-05-23 10:57 753一、Trident API——Spout ITride ... -
Trident入门
2017-05-22 13:44 518英文原址:https://github.com/nathanm ... -
分布式远程调用drpc实例
2017-05-22 10:53 420一、DRPC定义 分布式dRPC(distributed RP ... -
不透明分区事务IOpaquePartitionedTransactional实例
2017-05-22 10:54 6821、spout public class MyOpaq ... -
分区事务IPartitionedTransactionalSpout实例
2017-05-21 11:02 5841.分区事务spout public class My ... -
普通事务ITransactionalSpout实例之按天统计数据
2017-05-20 16:56 4901、普通事务Spout /** * 普通事务Spou ... -
普通事务ITransactionalSpout实例
2017-05-20 15:45 8221、普通事务Spout /** * 普通事务Spou ... -
Storm事务API
2017-05-19 16:00 614Spout ITransactionalSpout<T& ... -
Storm批处理事务原理详解
2017-05-19 15:54 2110事务:Storm容错机制通 ... -
集群统一启动和停止shell脚本开发
2017-05-17 09:56 4531、cd 2、ls -al 显示隐藏目录 3、rm -rf ... -
storm高并发UV统计
2017-05-14 22:05 1139统计高并发UV可行的方案(类似WordCount的计算去重wo ... -
storm高并发PV统计,利用zookeeper锁输出汇总值
2017-05-14 14:42 901汇总型方案: 1、shuffleGrouping下,pv(单线 ... -
storm高并发PV统计
2017-04-16 17:54 690一、PV统计思考 方案需要考虑分析多线程下,注意线程安全问题。 ... -
Storm高并发运用WordSum
2017-04-16 14:21 10731、创建发射所有字符串统计总个数及去重个数处理类 pub ... -
Storm高并发介绍
2017-04-16 10:18 595并发度: worker:指的是component (spo ... -
Storm 字符统计Demo
2017-04-14 13:57 5361、数据源读取,字符发射spout类 /** * 字符 ... -
Storm 本地模式
2017-04-09 22:25 398本地模式,是在eclipse等编译器编写strom运行文件 ... -
Storm启动配置
2017-03-29 17:40 674一、安装Storm wget ...
相关推荐
《深入理解流式计算框架Storm》 Storm,作为Twitter开源的一款实时数据处理框架,源自BackType,后来在Twitter的推动下成为了实时数据分析的核心工具。它弥补了Hadoop在实时处理领域的不足,为需要快速响应和处理...
Storm 的流分组策略包括洗牌分组、字段分组、Partial key grouping、ALL grouping、Global grouping、None grouping、Direct grouping 等。流分组定义了一个流在一个消费它的 bolt 内多个 task 之间如何分组。 ...
【Storm篇】--Storm中的同步服务DRPC 【Storm篇】--Storm从初始到分布式搭建 【Storm篇】--Storm 容错机制 【Storm篇】--Storm并发机制 【Storm篇】--Storm分组策略 【Storm篇】--Storm基础概念
3. **Stream Grouping**:数据流分组策略,包括字段分组、全局分组、shuffle分组等,决定Tuples如何在Bolt实例间分布。 **五、Storm原理** 1. **容错机制**:基于Zookeeper实现,当Nimbus检测到某个worker故障时,...
Storm分组机制 Storm提供了多种分组策略,如全组播(AllGrouping)、全局分组(GlobleGrouping)等,这些策略决定了数据如何在Bolt之间进行分配,从而影响系统的处理效率和一致性。 ### 12. Storm并行结构 并行度...
书中可能涉及的高阶应用开发包括:窗口化操作(时间窗口、滑动窗口、会话窗口),用于处理数据流的分组策略,如全局分组、字段分组、shuffle分组等,以及复杂的流处理逻辑如状态管理和分布式协调。 六、与其他...
- Storm提供了多种分组策略,如 shuffle grouping(随机分组)、fields grouping(按字段分组)等,决定了Bolt如何接收来自上游Spout或Bolt的数据。 6. **容错机制** - Storm通过检查点和状态持久化确保数据的...
TridentTopology的创建涉及到newStream、each、partitionPersist、build等步骤,并通过grouping来指定Tuple的分组策略。 文档最后提及了Storm的可靠性机制,这是指Storm如何保证每个Tuple在Topology中至少被处理一...
- **Stream Grouping**:数据流在Bolt之间传输时,可以通过各种分组策略(如字段分组、全局分组、shuffle分组等)来控制数据的流向。 3. **本地与集群模式**: - **Local模式**:在本地模式下,你可以快速地运行...
4. Stream Groupings:流分组是决定数据如何在Bolt之间传递的策略,包括Shuffle Grouping(随机分组)、Fields Grouping(字段分组)等。这些策略在`backtype.storm.task`包下的`Grouping`类中定义。 在源码中,你...
7. **Grouping(分组)**:Storm 提供多种分组策略,如 shuffle grouping(随机分组)、fields grouping(字段分组)、global grouping(全局分组)和 all grouping(全分组),用于控制流如何在 bolts 之间进行分布...
Storm 支持以下几种分组策略: - **Shuffle**:随机分发 Tuple,确保每个 Bolt 的 Task 收到的数据大致均衡。 - **Fields**:根据 Tuple 中的一个或多个字段进行分组,相同字段的 Tuple 会被发送到相同的 Task。 ...
4. **Stream Groupings**:数据在Bolt之间的传递方式称为分组策略,常见的有字段分组、全局分组、shuffle分组和all分组,每种分组策略决定了数据在Bolt间的分布方式。 5. **容错机制**:Storm 提供了强大的容错机制...
有多种分组策略,如shuffle grouping(随机分组)、fields grouping(字段分组)和all grouping(全复制分组)等,根据不同的业务需求选择合适的分组策略。 5. **本地模式(Local Mode)**:在学习和开发阶段,可以...
Storm提供了多种流分组策略,包括随机分组、字段分组、所有分组、全局分组、无分组等,每种策略都有其特定的使用场景和目的。 总的来说,这本书为读者提供了一个全面的Storm入门指南,从基础知识到实际操作,覆盖了...
在实际应用中,我们可能会考虑优化性能,比如使用更高效的分词算法,或者采用并行处理策略,如使用多个拆分和计数Bolt实例。此外,还可以根据需求扩展这个WordCount实例,例如,添加过滤特定词汇的功能,或者支持多...
节点之间的分组策略有Shuffle Grouping、Fields Grouping和All Grouping等。这些分组策略影响着数据流如何在Bolts之间传递和分布。 Apache Storm的拓扑是一种有向无环图(DAG),用于定义Spout和Bolt之间的数据流...