Apache Storm概要介绍.docx

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Apache Storm概要介绍DBAplus社群微信号 dbaplus功能介绍 围绕数据库、大数据、PaaS云,顶级大咖、技术干货,运营几个月受众过十万!成为运维圈最专注围绕“数据”的学习交流和专业社群!欢迎投稿,加入探讨。内容大纲:Storm是什么应用场景Storm与Hadoop的关系Storm怎么用示例1:统计单词出现的次数核心概念集群架构示例2:统计通话记录Storm是什么Storm 是一个分布式实时大数据处理系统,可以帮助我们方便地处理海量数据,具有高可靠、高容错、高扩展的特点。Storm 是流式框架,有很高的数据吞吐能力,Strom 本身是无状态的,通过 ZooKeeper 管理分布式集群环境和集群状态。Strom 的安装和使用都很简单,但功能强大,可以并行地对实时数据流进行各种处理。应用场景应用 Storm 的场景例如:日志处理监控系统中的事件日志,使用 Storm 检查每条日志信息,把符合匹配规则的消息保存到数据库。电商商品推荐后台需要维护每个用户的兴趣点,主要基于用户的历史行为、查询、点击、地理信息等信息获得,其中有很多实时数据,可以使用 Storm 进行处理,在此基础上进行精准的商品推荐和放置广告。Storm与Hadoop的关系Storm 与 Hadoop 都用来处理大数据,那么它们的关系是怎样的呢?Hadoop 是强大的大数据处理系统,但是在实时计算方面不够擅长;Storm的核心功能就是提供强大的实时处理能力,但没有涉及存储;所以 Storm 与 Hadoop 即不同也互补。它们的最主要的区别例如:Storm 是实时流处理模式,Hadoop 是批处理模式;Storm 就像一条川流不息的河流,只要不是意外或者人为停止,它就会一直运行,Hadoop 是在需要时执行 MapReduce 任务,执行完成后停止;在处理时间上,Storm 每秒可以处理数万条消息,HDFS+MapReduce 处理大量数据时通常需要几分钟到几小时。Storm 怎么用Storm 非常简洁,为了便于理解,先看 2 个最核心的概念:数据源头 Spout数据处理单元 Bolt先把 Spout 与外部数据进行对接,这样就可以把外面的数据量引到 Storm 中了。Spout 接收到数据后就会发给 Bolt,这就需要告诉 Bolt 如何处理,处理完成后把数据放到哪儿,例如数据库。这就是一个最简单的模型:而其中 Bolt 可以有多个,这就使得 Storm 强大而灵活。可以看出 Storm 就是一个有拓扑图,点是 Spout 或者 Bolt,边是数据流向。所以,使用 Storm 时需要做的就是把整个拓扑图构造出来:定义数据从哪儿来定义数据流向和处理单元的逻辑定义数据到哪儿去示例1 统计单词出现的次数以大数据中的helloworld “词频统计” 为例来学习 Storm 的开发方法。1、实现思路构造拓扑结构:Spout 读取一行文本,向下游发送;把句子分割为单词的 Bolt,从 Spout 发出的数据中取得一行文本,然后分割为一个个的单词,把每个单词向下游发送;单词计数的 Bolt,接收分词 Bolt 发出的单词,对每个单词出现的次数进行统计,然后把单词及其次数作为一个数据单元向下游发送;结果输出的 Bolt,接收计数 Bolt 发出的数据单元,取出单词及其次数进行汇总,最后输出统计结果;创建拓扑对象,把 Spout 和各个 Bolt 连接起来,然后提交到 Storm 中执行。2、代码实现创建项目目录?storm-wordcount项目目录下新建 maven 工程文件?pom.xml项目根目录下执行 maven 命令,安装依赖mvn packagemvndependency:tree项目根目录下创建源码目录?src/main/java然后在 java 目录下创建包目录?com/storm/test现在项目的目录结构如下:具体代码如下:SpoutWords.javaBoltSplit.javaBoltCount.javaBoltReport.javaWordCountTopology.java编译运行执行后会输出大量日志信息,之后会循环输出单词统计信息,例如:核心概念Spouts - 数据流的源头Storm 从外部接收数据,例如 Twitter Streaming API、Kafka ……,通过 Spouts 从这些数据源读取数据。Bolts - 逻辑处理单元Spouts 向 Bolts 传递数据,Bolts 接收数据进行处理操作,然后把结果再发射出去。Bolts 的常见操作例如:过滤、聚合、连接、与数据源数据库交互。Tuple - 数据单元Storm 数据流中的数据单元,例如水流中是一滴滴的水滴,Storm 数据流中流淌的就是一个个的 tuple,里面包

文档评论(0)

智慧IT + 关注
实名认证
内容提供者

微软售前技术专家持证人

生命在于奋斗,技术在于分享!

领域认证该用户于2023年09月10日上传了微软售前技术专家

1亿VIP精品文档

相关文档