Storm常见模式——批处理】的更多相关文章

Storm对流数据进行实时处理时,一种常见场景是批量一起处理一定数量的tuple元组,而不是每接收一个tuple就立刻处理一个tuple,这样可能是性能的考虑,或者是具体业务的需要. 例如,批量查询或者更新数据库,如果每一条tuple生成一条sql执行一次数据库操作,数据量大的时候,效率会比批量处理的低很多,影响系统吞吐量. 当然,如果要使用Storm的可靠数据处理机制的话,应该使用容器将这些tuple的引用缓存到内存中,直到批量处理的时候,ack这些tuple. 下面给出一个简单的代码示例:…
Storm常见模式——分布式RPC 本文翻译自:https://github.com/nathanmarz/storm/wiki/Distributed-RPC,作为学习Storm DRPC的资料,转载必须以超链接形式标明文章原始出处及本文翻译链接. 分布式RPC(distributed RPC,DRPC)用于对Storm上大量的函数调用进行并行计算过程.对于每一次函数调用,Storm集群上运行的拓扑接收调用函数的参数信息作为输入流,并将计算结果作为输出流发射出去. DRPC本身算不上Storm…
流聚合(stream join)是指将具有共同元组(tuple)字段的数据流(两个或者多个)聚合形成一个新的数据流的过程. 从定义上看,流聚合和SQL中表的聚合(table join)很像,但是二者有明显的区别:table join的输入是有限的,并且join的语义是非常明确的:而流聚合的语义是不明确的并且输入流是无限的. 数据流的聚合类型跟具体的应用有关.一些应用把两个流发出的所有的tuple都聚合起来——不管多长时间:而另外一些应用则只会聚合一些特定的tuple.而另外一些应用的聚合逻辑又可…
转自:http://www.cnblogs.com/panfeng412/archive/2012/06/04/storm-common-patterns-of-stream-join.html 流聚合(stream join)是指将具有共同元组(tuple)字段的数据流(两个或者多个)聚合形成一个新的数据流的过程. 从定义上看,流聚合和SQL中表的聚合(table join)很像,但是二者有明显的区别:table join的输入是有限的,并且join的语义是非常明确的:而流聚合的语义是不明确的…
这篇文章列举出了storm topology里面的一些常见模式: 流聚合(stream join) 批处理(Batching) BasicBolt 内存内缓存 + fields grouping 组合 计算top N 用TimeCacheMap来高效地保存一个最近被更新的对象的缓存 分布式RPC: CoordinatedBolt和KeyedFairBolt 流聚合(stream join) 流聚合把两个或者多个数据流聚合成一个数据流 — 基于一些共同的tuple字段.流聚合和SQL里面table…
浅议NetMQ常见模式和消息加密机制 概述 在传统企业级开发中,消息队列机制已经成为一种非常常见的技术实现手段,而基于NetMQ则看起来有点像一朵"奇葩",看起来从名字似乎是一个消息队列(Message Quene),但事实上更多的却是一个类似于socket机制的消息库.它虽然提供了消息队列的能力,但又与传统消息队列中间件如kafka.rabbitmq等有一定的区别. 不过,不管它是啥,它提供的一些类似于消息队列的机制,使得开发者能够快速在项目中使用起来,例如类似于发布订阅模式.推拉模…
Storm入门教程 1. Storm基础 Storm Storm主要特点 Storm基本概念 Storm调度器 Storm配置 Guaranteeing Message Processing(消息处理保障机制) Daemon Fault Tolerance(守护线程容错机制) 理解Storm拓扑的并行 Tutorial Local模式 本地模式的通用配置: 在生产环境中运行Topologies 通用配置 杀死topology 更新运行中的topology 监控topology Local模式 本…
一.工厂模式 缺点:没有解决对象识别的问题 优点:解决了创建多个相似对象的问题 function createPerson(name,age,job){ var o = new Object(); o.name = name; o.age = age; o.job = job; o.sayname = function(){ console.log(this.name); }; return o; } var person1 = createPerson("qqq",21,"…
懒队列:lazy Queue,即用到的时候才会加载,3.6.0及之后新添加的.当新添加数据后,不会将其放入到内存中,而是将其放入到磁盘中. 普通队列:1).in-memory,数据直接放入到内存中. 2).on-desk,将数据放入到内存中的同时,还会将消息放到磁盘中,当内存压力升高或GC需要回收内存等情况,会将内存中的数据保存到磁盘中. 一些常见的组合: 1).lazy  + in-memory = 还是会将消息放到磁盘中,可以看到,只有几M的增长. 2).Default Queue + in…
来自:http://isuifengfei.iteye.com/blog/1998265   问题1 java.net.SocketException: Address family not supported by protocol family: connect   查了下 http://stackoverflow.com/questions/16373906/address-family-not-supported-by-protocol-family-socketexception-on…