由Word Count入门Apache Storm

安全部
• 阅读 2623

Storm是一个分布式流处理框架。

入门

Word count作为分布式的"hello world", 这里由word count引出Storm的topology概念。

问题

有一系列DNS查询,需要统计被查询最多次的域名

由Word Count入门Apache Storm

从函数式编程的角度来讲,可以把算法归纳为下图

由Word Count入门Apache Storm

即为
h ( g ( f (data) ) )

转换为Storm topology

由Word Count入门Apache Storm

概念

  • Topology:拓扑结构

  • Spout:spout作为整个拓扑的数据源,一个topology中可能存在多个数据源。上图中即为提供DNS查询的数据源

  • Bolt: bolt是topology中的基本数据处理单元。上图中,即为f,g,h三个函数。

  • Tuple: 基本数据单元。例 (1.1.1.1, "foo.com")

  • Stream: 无止境一串的tuple流 ... (2.2.2.2, “bar.net”), (3.3.3.3, “foo.com”), (4.4.4.4, “foo.com”) ...

Stream Grouping 常用分组方式

  • Shuffle grouping
    随机分配tuple给后续节点

由Word Count入门Apache Storm

  • Fields grouping
    根据定义的fields字段,将相同key值的字段分配给同一后续节点。常用于统计同一key值的数量

由Word Count入门Apache Storm

  • All grouping

由Word Count入门Apache Storm

Storm和Hadoop的区别

Hadoop主要用来处理batch(批处理)数据, Storm主要用来处理Stream(流式)数据。 主要区别如下图所示:
由Word Count入门Apache Storm

点赞
收藏
评论区
推荐文章
Easter79 Easter79
4年前
storm从入门到放弃教程(5)
概述    上一篇【storm开发环境搭建】博文连接:https://my.oschina.net/u/2342969/blog/878765本篇会深入理解Streams,欢迎同志(此同志非彼同志)们通过私信/评论等方式共同学习了解.     Streams是storm中一个核心的概念,它是在分布式并行处理和创建的无限序列元组,St
Stella981 Stella981
4年前
Kafka 入门和 Spring Boot 集成
Kafka入门和SpringBoot集成概述kafka是一个高性能的消息队列,也是一个分布式流处理平台(这里的流指的是数据流)。由java和Scala语言编写,最早由LinkedIn开发,并2011年开源,现在由Apache开发维护。应用场景下面列举了
Stella981 Stella981
4年前
Apache Flink漏洞复现
简介ApacheFlink是高效和分布式的通用数据处理平台,由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎(简单来说,就是跟spark类似)。Flink具有监控API,可用于查询"正在运行的jobs"和"最近完成的jobs"的状态和统计信息。该监控API被用于Flink自
Easter79 Easter79
4年前
Storm客户端提交任务失败原因分析
storm客户端提交topology失败:java.lang.RuntimeException:org.apache.thrift7.transport.TTransportExceptionatbacktype.storm.StormSubmitter.submitTopology(StormSubmitter.j
Stella981 Stella981
4年前
Kafka初入门简单配置与使用
一Kafka概述1.1Kafka是什么在流式计算中,Kafka一般用来缓存数据,Storm通过消费Kafka的数据进行计算。1)ApacheKafka是一个开源消息系统,由Scala写成。是由Apache软件基金会开发的一个开源消息系统项目。2)Kafka最初是由LinkedIn开发
Easter79 Easter79
4年前
Storm VS Flink ——性能对比
!(https://oscimg.oschina.net/oscnet/2cec00eb2dccf5fdec8def77207da253a86.jpg)1.背景ApacheFlink和ApacheStorm是当前业界广泛使用的两个分布式实时计算框架。其中ApacheStorm(以下简称“Storm”)在美团点评实时
Easter79 Easter79
4年前
Storm消息机制
Storm消息机制博客分类:分布式计算这章讨论Storm's reliability capabilities, 如何保证从spout emit出来的所有tuple都被正确的执行(fully processed)?What does it mean for a message to be "fully processed"?首先的问题
Easter79 Easter79
4年前
Trident学习笔记(一)
1\.Trident入门Trident\ 三叉戟 storm高级抽象,支持有状态流处理; 好处是确保消费被处理一次; 以小批次方式处理输入流,得到精准一次性处理 ; 不再使用bolt,使用functions、aggreates、filters以及states。 TridentT
Wesley13 Wesley13
4年前
Java8并行流写WordCount,并不简单
节前略闲,看了java8并行流,写个了wordCount。本以为易如反掌,结果却折腾了一下午!在本文中wordcount是指以空格作为词的分割符号,统计一个语句中出现的词数如何用java8并行流写WordCount,我开始的想法是先写个串行流的workcount,之后stream.parallel()将流并行化。串行流的wordCout,也
Easter79 Easter79
4年前
Storm消息处理可靠性保证
Storm可以保证每一个从spout发出的消息能被完全处理。本章描述storm是如何完成这个保证以及用户如何从storm的可靠性能力获益的。消息“完全处理”的含义一个tuple从spout发出后可能会触发成千上万的tuple基于它而创建。以workcount的topology为例考虑下:TopologyBuild
安全部
安全部
Lv1
共看明月应垂泪,一夜乡心五处同。
文章
4
粉丝
0
获赞
0