实时计算系统
S4 storm puma
自己实现一个实时计算系统要考虑哪些问题
1.低延迟、高性能、分布式(单机已无法满足要求)、可扩展、容错
2.容易在上面开发应用程序,消息不丢失败、消息严格有序
Storm优势
1.简单的编程模型 类似于MapReduce的Spout/Bolt
2.是一个服务框架,支持热部署,及时上线下线App
3.可以使用多种编程语言(Clojure,java,Ruby,Python)
4.容错性,Storm会管理工作进程与节点的故障
5.水平扩展,计算是在多个线程、进程、服务器间进行的
6.可靠的消息处理
7.快速 (ZeroMQ作为底层消息队列)
8.本地模式
Storm架构
Nimbus 主节点,分配代码、布置任务、故障检测
Supervisor 工作节点,监听工作,开始与停止属于自己管理的worker进程
Worker 进行具体处理组件逻辑的进程
Task 在worker中每一个Spout/Bolt的线程称为task.
Zookeeper Nimbus与Supervisor的调度
Storm基本概念
Topology 拓卜,一个job
Spout 在一个topology中产生源数据流的组件
Bolt 在一个topology中接受数据然后执行处理的组件。可以做业务逻辑。
Tuple 一次消息传递的基本单元
Stream 源源不断传递的tuple组成了stream
Storm使用场景
1.流聚合,把多个数据流聚合成一个数据流(基于一些共同的tuple字段)
2.批处理,把一组tuple一起处理,而不是一个个单独处理
3.BasicBolt
4.内存缓存+Fields grouping组合
5.计算top N
Storm的分组机制
Storm Grouping定义了一个流在Bolt任务间该如何被切分。提供了6种:
1.随机分组 Shuffle grouping
2.字段分组 Fields grouping
3.全部分组 (慎用)
4.全局分组 (解决top N)
5.无分组 (等效于随机分组)
6.直接分组
还可以实现CustomStreamGrouping接口来定制自己需要的分组
相关推荐
SparkStreaming与Stom比较
开源项目-elgris-stom.zip,[ann] another one tool for converting structures to map[string]interface{}. But why not? :)
讲述Storm与sparkStreaming分别用法与区别,在操作流程等。
务必确认机身编号与文件名机编一致,如不一致,请勿下载 机身编号一般在机子背面的贴纸上 2649机芯升级方法 自动重启,卡开机画面等情况下使用,强刷不是百分百成功 正常升级方法: 将 install.img 放到U盘根目录下...
务必确认机身编号与文件名机编一致,如不一致,请勿下载 机身编号一般在机子背面的贴纸上 2649机芯升级方法 自动重启,卡开机画面等情况下使用,强刷不是百分百成功 正常升级方法: 将 install.img 放到U盘根目录下...
基于Storm引擎的分布式数据融合系统的设计与实现,穆化鑫,程渤,多传感器数据融合技术经过多年的研究与发展已经取得了丰硕的理论与应用成果,计算机技术、通信技术和数据处理技术等相关技术的进
storm版本:1.0.1 kafka版本:0.8.2.2
stomjs和sockjs是使用java websocket可选工具
springboot开发websocket使用到的js文件包括sockjs.min.js 、stomp.js
pdf的行业标准
Storm定时匹配成功后插入mysql;源数据通过插件批量录入hdfs
SidebarFirst of all, forgive me, my English is very poor.A sidebar framework includes a series of extension set, is convenient to add the sidebar to your project, also can develop your own custom ...
大数据 人工智能 数据分析 java html hadoop stom spark 大数据生态体系
主要介绍了springboot websocket集群(stomp协议)连接时候传递参数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
js代码-封装断线重连
jsr303-validators.zip,一些自定义jsr303验证器stom jsr303验证器。
主要介绍了websocket+sockjs+stompjs详解及实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
IntelliJ IDEA / PhpStorm Laravel插件 基于 键 值 插件网址 ID de.espend.idea.laravel 变更日志 安装 要安装,请转到Settings > Plugins然后搜索“ Laravel插件”。... 注意您必须安装并使用才能使PhpStorm知道...
$ cat rainfall.json | stom.py | grep -e City.name -e Rainfall | grep -B1 Darwin2.Annual Rainfall = 1714.72.City name = DarwinWhompy将PrettyTable文档转换为JSON,以进行进一步解析。 $ cat rainfall.table...
一个大佬写的例子,前后端通讯用的demo。不过这个我没有用到,为了以后的了解和找资源方便,先给上传了。