
storm
文章平均质量分 85
hui1207968974
这个作者很懒,什么都没留下…
展开
-
storm重定向实战
一、 重定向 重定向定义了我们的tuple如何被route到下一个处理层,当然不同的层之间可能会有不同的并行度。storm提供了如下的重定向操作: shuffle:通过随机分配算法来均衡tuple到各个分区 broadcast:每个tuple都被广播到所有的分区,这种方式在drcp时非常有用,比如在每个分区上做stateQuery partitionBy:根据...2016-12-22 18:12:29 · 124 阅读 · 0 评论 -
storm trident实战 分区聚合
一、前言 先有batch,因为trident内部是基于batch来实现的,然后有partition,分区后再分配并发度,然后才能进行并发处理。并发度的分配是利用parallelismHint来实现。二、实战 main方法public static void main(String[] args) throws AlreadyAliveException, ...2016-12-22 18:43:31 · 315 阅读 · 0 评论 -
storm 如何编写可靠的spout和bolt
一、前言 对于不使用trident的人来说,使用基本的storm spout,bolt操作,需要理解storm的ack机制,保证消息的完整性,Storm 提供了三种不同层次的消息保证机制,分别是 At Most Once、At Least Once 以及 Exactly Once。消息保证机制依赖于消息是否被完全处理。 怎样才认为消息被完全处理?每个从 Spout发出的 Tup...原创 2016-12-23 08:02:22 · 570 阅读 · 0 评论 -
storm trident实战 分组聚合
一、前言 groupBy分组操作,根据指定属性进行分组,如果后面是aggregate()的话,先根据partitionBy分区,在每个partition上分组,分完组后,在每个分组上进行聚合。二、实战 main:public static void main(String[] args) throws Exception { /** * 多设置几...原创 2016-12-23 08:04:46 · 424 阅读 · 0 评论 -
storm trident实战 trident state
一、认识storm trident trident可以理解为storm批处理的高级抽象,提供了分组、分区、聚合、函数等操作,提供一致性和恰好一次处理的语义。 1)元祖被作为batch处理 2)每个batch的元祖都被指定唯一的一个事物id,如果因为处理失败导致batch重发,也和保证和重发前一样的事物id 3)数据更新操作严格有序,比如batch1必须在batch2之前...原创 2016-12-25 10:56:49 · 252 阅读 · 0 评论 -
storm trident实战 filter,function的使用
一、Storm trident filter filter通过返回true和false。来判断是否对信息过滤。 1.1 代码 public static void main(String[] args) throws InterruptedException, AlreadyAliveException, InvalidTopologyException,...2016-12-26 10:17:05 · 203 阅读 · 0 评论 -
使用storm trident消费kafka消息
一、前言 storm通过保证数据至少被处理一次来保证数据的完整性,由于元祖可以重发,对于一些需要数据精确的场景,可以考虑用storm trident实现。 传统的事物型拓扑中存在几种bolt: 1.1 BasicBolt 这是最基本的Bolt,BasicBolt每次只能处理一个tuple,而且必须等前一个tuple成功处理后下一个tuple才能继续处理,显然效率不高。 1.2 ...2017-01-05 08:10:20 · 323 阅读 · 0 评论