Storm 第一章 核心组件及编程模型

1 流式计算

  流式计算:数据实时产生、实时传输、实时计算、实时展示

  代表技术:Flume实时获取数据、Kafka/metaq实时数据存储、Storm/JStorm实时数据计算、Redis实时结果缓存、持久化存储(mysql)。

  一句话总结:将源源不断产生的数据实时收集并实时计算,尽可能快的得到计算结果。

2 Storm是什么

  Storm 是用来实时处理数据,特点:低延迟、高可用、分布式、可扩展、数据不丢失,提供简单容易理解的接口,便于开发。

3 Storm 与Hadoop的区别

  Storm用于实时计算,Hadoop用于离线计算。

  Storm处理的数据保存在内存中,源源不断;Hadoop处理的数据保存在文件系统中,一批一批。

  Storm处理的数据通过网络传输进来;Hadoop的数据保存在磁盘。

  Storm与Hadoop编程模型相似。

4 运用场景

  4.1 日志分析

    从海量日志中分析出特定的数据,并将分析结果存入外部存储器用来辅助决策。

  4.2 管道决策

    将一个数据从一个系统传输到另外一个系统,比如将数据同步到Hadoop。

  4.3 消息转换器

    将接受到的消息按照某种格式进行转化,存储到另外一个系统比如消息中间件。

5 Storm核心组件

  

  5.1 组件功能:

    Nimbus:负责资源分配和任务调度

    Supervisor:负责接收nimbus分配的任务,启动和停止属于自己管理的worker进程。通过配置文件设置当前supervisor上启动多少个worker。

    Worker:运行具体处理组件逻辑的进程,Worker运行的任务类型只有两种,一种是Spout任务,一种是bolt任务。

    Task:worker中每一个spout/bolt的线程称为一个task。在storm0.8之后,task不再与物理线程对应,不同的spout/bolt的task可能会共享一个物理线程,该线程称之为executor。

6 Storm编程模型

  

  6.1 组件解释

    Topology:Storm中运行的一个实时应用程序的名称。(拓扑)

    Spout:在一个topology中获取源数据流的组件。通常情况下spout会从外部数据源中读取数据,然后转换为topology内部的源数据。

    Bolt:接受数据然后执行处理的组件,用户可以在其中执行自己想要的操作。

    Tuple:一次消息传递的基本单元,理解为一组消息就是一个Tuple。

    Stream:表示数据的流向。

7 流式计算一般架构图

  

  其中flume用来获取数据

  Kafka用来临时保存数据

  Strom用来计算数据

  Redis是个内存数据库,用来保存数据。

原文地址:https://www.cnblogs.com/zhaobingqing/p/8340812.html

时间: 2024-10-09 14:54:22

Storm 第一章 核心组件及编程模型的相关文章

Storm介绍及核心组件和编程模型

离线计算 离线计算:批量获取数据.批量传输数据.周期性批量计算数据.数据展示 代表技术:Sqoop批量导入数据.HDFS批量存储数据.MapReduce批量计算数据.Hive批量计算数据.azkaban/oozie任务调度 流式计算 流式计算:数据实时产生.数据实时传输.数据实时计算.实时展示 代表技术:Flume实时获取数据.Kafka/metaq实时数据存储.Storm/JStorm实时数据计算.Redis实时结果缓存.持久化存储(mysql). 一句话总结:将源源不断产生的数据实时收集并实

Storm集群组件和编程模型

 Storm工作原理: Storm是一个开源的分布式实时计算系统,常被称为流式计算框架.什么是流式计算呢?通俗来讲,流式计算顾名思义:数据流源源不断的来,一边来,一边计算结果,再进入下一个流. 比如一般金融系统一直不断的执行,金融交易.用户全部行为都记录进日志里,日志分析出站点运维.猎户信息.海量数据使得单节点处理只是来.所以就用到分布式计算机型,storm 是当中的典型代表之中的一个,一般应用场景是:中间使用一个消息队列系统如kafka,先将消息缓存起来,storm 中有非常多的节点,分布

第一章 客户端网页编程简介

第一章 主机/哑终端模式     客户机/服务器计算模式(C/S)    浏览器/服务器模式(B/S) web浏览器.web服务器.通过HTTP协议通信 web的概念:本意是蜘蛛网和网的意思,在网页设计中,我们将web称为网页.广泛作用于网络.互联网行业.主要有三种表现形式:超文本(hypertext).超媒体(hypermedia).超文本传输协议(http)等等. 1.超文本:实际上是一种用户的接口,以电子文档的形式存在.将文档里面不同的部分用关键字建立连接,使得信息用交互的方式进行搜索./

C Primer plus 第一章复习题及其编程题

1 就编程而言 可移植性表示什么 答:可移植性代表C源代码不经修改就能在多种不同的计算机系统上编译成可以运行的程序 2 解释源代码文件 目标代码文件 和可执行文件之间的区别 答:源代码文件包含程序员用任何语言编写的代码 目标代码文件包含着机器语言代码,它并需要是完整的程序代码.可执行文件包含着组成可执行程序的全部机器语言代码. 3 编程的7个步骤 定义程序目标->设计程序->编写程序代码->编译程序->运行程序->测试和调试程序->维护和修改程序(可能要迭代进行) 4编

第一章 java网络编程入门_Echo

//服务器端程序  EchoServer.java import java.io.*;import java.net.*;public class EchoServer {  private int port=8000;  private ServerSocket serverSocket; public EchoServer() throws IOException {    serverSocket = new ServerSocket(port);    System.out.printl

第一章 CLR的执行模型

概念篇 CLR(Common Language Runtime)[公共语言运行时] 可由多种编程语言使用的运行环境,提供内存管理.程序集加载.安全性.异常处理和线程同步等支持. CTS(Common Type System)[通用类型系统] 规范化的类型定义和管理,比如:字段.方法等, 又比如继承等特性. CLS(Common Language Specification)[公共语言规范] 针对CLR/CTS定义的最基本的组建. Manuged Module[托管模块] 标准的32位Mircor

第一章 java网络编程入门_mailClient.java

import java.net.*;import java.io.*; public class MailSender{  private String smtpServer="smtp.mydomain.com";  //SMTP邮件服务器的主机名  //private String smtpServer="localhost";  private int port=25; public static void main(String[] args){    Me

第一章 java网络编程入门_Simple_test_ConnectException

import java.io.*;import java.net.*;public class SimpleServer {  public static void main(String args[])throws Exception {    ServerSocket serverSocket = new ServerSocket(8000,2);  //连接请求队列的长度为2    Thread.sleep(360000);   //睡眠6分钟  }} import java.io.*;i

第一章 java网络编程入门_Receiver_Sender

import java.io.*;import java.net.*;public class Receiver {  private int port=8000;  private ServerSocket serverSocket;  private static int stopWay=1;  //结束通信的方式  private final int NATURAL_STOP=1; //自然结束  private final int SUDDEN_STOP=2;  //突然终止程序  pr