mrs
- 开发指南(适用于2.x及之前)
- 简介
- MapReduce服务样例工程构建方式
- HBase应用开发
- Hive应用开发
- MapReduce应用开发
- HDFS应用开发
- Spark应用开发
- 概述
- 环境准备
- 开发程序
- 调测程序
- 调优程序
- Spark接口
- FAQ
- 如何添加自定义代码的依赖包
- 如何处理自动加载的依赖包
- 运行SparkStreamingKafka样例工程时报“类不存在”问题
- 执行Spark Core应用,尝试收集大量数据到Driver端,当Driver端内存不足时,应用挂起不退出
- Spark应用名在使用yarn-cluster模式提交时不生效
- 如何采用Java命令提交Spark应用
- SparkSQL UDF功能的权限控制机制
- 由于kafka配置的限制,导致Spark Streaming应用运行失败
- 如何使用IDEA远程调试
- 使用IBM JDK产生异常,提示“Problem performing GSS wrap”信息
- Structured Streaming的cluster模式,在数据处理过程中终止ApplicationManager,应用失败
- Spark on Yarn的client模式下spark-submit提交任务出现FileNotFoundException异常
- Spark任务读取HBase报错“had a not serializable result”
- 开发规范
- Storm应用开发
- Kafka应用开发
- Presto应用开发
- OpenTSDB应用开发
- Flink应用开发
- Impala应用开发
- Alluxio应用开发
- 附录
典型场景说明
链接复制成功!
更新时间:2020/12/15 GMT+08:00
通过典型场景,我们可以快速学习和掌握Storm拓扑的构造和Spout/Bolt开发过程。
场景说明
一个动态单词统计系统,数据源为持续生产随机文本的逻辑单元,业务处理流程如下:
- 数据源持续不断地发送随机文本给文本拆分逻辑,如“apple orange apple”。
- 单词拆分逻辑将数据源发送的每条文本按空格进行拆分,如“apple”,“orange”,“apple”,随后将每个单词逐一发给单词统计逻辑。
- 单词统计逻辑每收到一个单词就进行加一操作,并将实时结果打印输出,如:
- apple:1
- orange:1
- apple:2
功能分解
根据上述场景进行功能分解,如表1所示。
序号 |
步骤 |
代码示例 |
---|---|---|
1 |
创建一个Spout用来生成随机文本 |
请参见创建Spout |
2 |
创建一个Bolt用来将收到的随机文本拆分成一个个单词 |
请参见创建Bolt |
3 |
创建一个Blot用来统计收到的各单词次数 |
请参见创建Bolt |
4 |
创建topology |
请参见创建Topology |
部分代码请参考创建Spout,创建Bolt,创建Topology,完整代码请参考Storm-examples示例工程。
父主题: 开发程序
