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是个内存数据库,用来保存数据。

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

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

    离线计算 离线计算:批量获取数据.批量传输数据.周期性批量计算数据.数据展示 代表技术:Sqoop批量导入数据.HDFS批量存储数据.MapReduce批量计算数据.Hive批量计算数据.azkaba ...

  2. storm介绍,核心组件,编程模型

    一.流式计算概念 利用分布式的思想和方法,对海量“流”式数据进行实时处理,源自业务对海量数据,在“时效”的价值上的挖掘诉求,随着大数据场景应用场景的增长,对流式计算的需求愈发增多,流式计算的一般架构图 ...

  3. 第一章 CLR 的执行模型

    CLR via C# 读书笔记:第一章 CLR 的执行模型(1) 第Ⅰ部分CLR基础.这部分为三章(第一章:CLR的只想能够模型,第二章:生成.打包.部署和管理应用程序及类型,第三章:共享程序集和强命 ...

  4. 16第一章 ASP.Net编程基础知识

    第一章        ASP.Net编程基础知识 第一章        ASP.Net编程基础知识 本章首先介绍用ASP.Net技术编制服务器端动态网页所需的网络和HTML标记语言方面的有关知识.然后 ...

  5. Storm集群组件和编程模型

     Storm工作原理: Storm是一个开源的分布式实时计算系统,常被称为流式计算框架.什么是流式计算呢?通俗来讲,流式计算顾名思义:数据流源源不断的来,一边来,一边计算结果,再进入下一个流. 比 ...

  6. [蛙蛙推荐]SICP第一章学习笔记-编程入门

    本书简介 <计算机程序的构造与解释>这本书是MIT计算机科学学科的入门课程, 大部分学生在学这门课程前都没有接触过程序设计,也就是说这本书是针对编程新手写的. 虽然是入门课程,但起点比较高 ...

  7. javascript 数据结构和算法读书笔记 > 第一章 javascript的编程环境和模型

    1.变量的声明和初始化 必须使用关键字 var,后跟变量名,后面还可以跟一个赋值表达式. var name; var age = 5; var str = 'hello'; var flg = fal ...

  8. 【java并发编程艺术学习】(二)第一章 java并发编程的挑战

    章节介绍 主要介绍并发编程时间中可能遇到的问题,以及如何解决. 主要问题 1.上下文切换问题 时间片是cpu分配给每个线程的时间,时间片非常短. cpu通过时间片分配算法来循环执行任务,当前任务执行一 ...

  9. python第一章 python基础编程

    第一次学习python 首先python对于我来说是我学习的第三门语言,之前大一学习过了c和c++这两门语言. 接触一个新语言,首先应该的是搭载一下编译的环境.我们是老师给我们上传了的python3安 ...

随机推荐

  1. NSOperation的使用细节 [1]

    NSOperation的使用细节 [1] NSOperation 使用起来并没有GCD直观,但它有着非常不错的面向对象接口,还可以取消线程操作,这一点是GCD所没有的,NSOperation本身是抽象 ...

  2. nginx安装脚本

    #!/bin/bash#auto config Nginx#by zhangjia 2019#define Path variables#date:2019/1/16 check_ok() { ]] ...

  3. 服务器安装LNMP及构建个人站点

    服务器安装LNMP(centos6.6+nginx1.7.12+mysql5.6.24+php5.6.7) 本次安装  centos6.6+nginx1.7.12+mysql5.6.24+php5.6 ...

  4. C++ new和delete重载

    C++ new和delete重载 2012-02-15 23:25:33|  分类: C/C++|举报|字号 订阅           首先,new和delete是运算符,重载new和delete是可 ...

  5. webpack react 单独打包 CSS

    webpack react 单独打包 CSS webpack require css的方法,默认会把css 打入到js文件中,加载顺序有问题,如果需要打出独立的css文件 操作步骤: step1: 安 ...

  6. 第二次作业——App案例分析

    第一部分 调研, 评测 下载软件并使用起来,描述最简单直观的个人第一次上手体验. 我选择的应用是chrome浏览器.之所以选择分析它,是因为我用的时间较长,对功能比较熟悉. chrome浏览器提供了应 ...

  7. Echarts 曲线数少于图例数解决方法

    在上一篇文章 Echarts 多曲线“断点”问题解决方法 中说到了Angular 项目中要使用 Echarts 的方法. 说明了自己解决当“每一条曲线的横坐标不相同”时,在各条曲线上,它们的值采用数组 ...

  8. weblogic之CVE-2018-3246 XXE分析

    通过ftp通道将数据传出来.上传1.xml <!DOCTYPE xmlrootname [<!ENTITY % aaa SYSTEM "http://192.168.172.12 ...

  9. 【PHP笔试题】

    1.以下脚本输出什么? $s = '12345'; $m = 'a2b1c'; $s[$s[$m]] = '3'; echo $s; [ ] A.12345 [ ] B.12235 [ ] C.223 ...

  10. Kafka设计解析(十)Kafka如何创建topic

    转载自 huxihx,原文链接 Kafka如何创建topic? 目录 一.命令行部分 二.后台逻辑部分 Kafka创建topic命令很简单,一条命令足矣: bin/kafka-topics. --re ...