`

Stom概念

 
阅读更多

实时计算系统

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接口来定制自己需要的分组

  • 大小: 62.8 KB
分享到:
评论

相关推荐

    开源项目-elgris-stom.zip

    开源项目-elgris-stom.zip,[ann] another one tool for converting structures to map[string]interface{}. But why not? :)

    SparkStreaming与Stom比较

    ### Spark Streaming与Storm比较 #### 一、应用场景与特点 **Storm** 和 **Spark Streaming** 都是目前广泛使用的实时流处理框架,它们各有优势,适用于不同的场景。 ##### Storm应用场景: ...

    stom与sparkStreaming对比

    讲述Storm与sparkStreaming分别用法与区别,在操作流程等。

    STOMP协议详解1

    STOMP协议,全称为Simple (or Streaming) Text Orientated Messaging Protocol,是一种简单或流式文本定向消息协议,设计目的是为了使不同的消息中间件系统能够通过一个标准的接口进行交互。这个协议尤其适合那些想...

    海尔智能电视刷机数据 LD46EU3200 机编DH1STOM0200 务必确认机编一致 强制刷机 整机USB升级主程序

    务必确认机身编号与文件名机编一致,如不一致,请勿下载 机身编号一般在机子背面的贴纸上 2649机芯升级方法 自动重启,卡开机画面等情况下使用,强刷不是百分百成功 正常升级方法: 将 install.img 放到U盘根目录下...

    海尔智能电视刷机数据 LD46EU3200 机编DH1STOM0200 务必确认机编一致 强制刷机 整机USB升级主程序.zip

    务必确认机身编号与文件名机编一致,如不一致,请勿下载 机身编号一般在机子背面的贴纸上 2649机芯升级方法 自动重启,卡开机画面等情况下使用,强刷不是百分百成功 正常升级方法: 将 install.img 放到U盘根目录下...

    论文研究-基于Storm引擎的分布式数据融合系统的设计与实现 .pdf

    随着计算机技术、通信技术和数据处理技术的快速发展,多传感器数据融合技术已经取得了丰富的理论与应用成果。传感器技术的多样性及部署区域的广泛性,使得多传感器数据融合技术的应用场景变得越来越丰富。...

    springboot使用websocket的js文件

    这里主要涉及了四个关键概念:Spring、Spring Boot、SockJS和STOMP.js。下面将详细介绍这些知识点及其相互关系。 首先,Spring是Java领域的一款强大、灵活的开源应用程序框架,它简化了Java企业级应用的开发过程。...

    storm+kafka+jdbc整合实例

    在大数据处理领域,Storm、Kafka以及JDBC的整合是一个常见的需求,用于实现实时数据流处理、消息队列和数据库交互。以下是对这个整合实例的详细解释。 首先,让我们来了解一下这三个组件: 1. **Apache Storm**:...

    stomjs和sockjs

    WebSocket是一种在客户端和服务器之间建立持久连接的协议,它允许双方进行实时、双向通信,而不仅仅是传统的HTTP请求-响应模式。在Java世界中,开发WebSocket应用程序时,`StomJS`和`SockJS`是两个重要的库,它们为...

    Storm定时匹配插入mysql,源数据录入hdfs

    1. **Storm的实时处理**:Storm的核心概念包括Spout(数据源)和Bolt(数据处理)。Spout负责从外部源接收数据,而Bolt则执行各种处理任务,如过滤、聚合、转换等。在这个案例中,Spout可能负责从某个源读取数据,...

    Sidebar:侧边栏框架包含一系列扩展集,方便将侧边栏添加到您的项目中,cu也可以开发自己的stom高度侧边栏

    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协议)连接时候传递参数

    在Spring Boot应用中实现WebSocket集群并使用STOMP协议进行通信时,传递参数是一个重要的环节,尤其是在多节点集群环境中。WebSocket允许双向通信,而STOMP(Simple Text Oriented Messaging Protocol)则提供了一种...

    js代码-封装断线重连

    在JavaScript编程中,"封装断线重连"是一个常见的需求,特别是在实时通信或者网络应用中。...当网络连接因各种原因中断时,我们需要能够检测到这种中断并自动尝试重新建立连接。以下是对这个主题的详细阐述: ...

    websocket+sockjs+stompjs详解及实例代码

    ### 知识点详解 #### WebSocket WebSocket是一种在单个TCP连接上进行全双工通信的协议。...WebSocket协议被广泛应用于需要实时交互的场景中,如在线聊天、股票交易系统、实时游戏等。它基于TCP协议,可以提供更低延迟...

    stompest-master python

    STOM Pest是Python的一个库,设计用于简化与使用STOMP协议的服务器,如ActiveMQ的通信。 Python是编程领域广泛使用的高级编程语言,以其简洁的语法和强大的功能而受到欢迎。在这个项目中,Python被用作客户端来连接...

    idea-php-laravel-plugin:用于PhpStorm IntelliJ IDEA的Laravel框架插件

    IntelliJ IDEA / PhpStorm Laravel插件 基于 键 值 插件网址 ID de.espend.idea.laravel 变更日志 安装 要安装,请转到Settings > Plugins然后搜索“ Laravel插件”。... 注意您必须安装并使用才能使PhpStorm知道...

    chompy:Chompy和朋友是命令行JSON解析工具

    $ 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...

Global site tag (gtag.js) - Google Analytics