Storm流式计算基础
.note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB","STHeiti","Microsoft YaHei","WenQuanYi Micro Hei",SimSun,Song,sans-serif;}

.note-content h2 {line-height: 1.6; color: #0AA89E;}
.note-content {background: #FFFFFF;}
.note-content h1 {color: #7AB3A7;}
.note-content h3 {color: #147A67;}

Storm流式计算基础

○ 什么是Storm?

Storm是一个开源的、分布式、流式计算系统。

大家都知道现在我们都处于一个信息爆炸头的时代,有很多公司处理的数据量就很大,而且增长速度很惊人。但作为一个程序猿还是很懒的,当我们目前面临1wQPS的时候,绝对不会去考虑10wQPS的时候我们该怎么做。就在我们刚写完一个系统的时候,几倍的流量就来打你的脸,那这个时候该怎么办呢?大部分的公司在这个时候想到的办法就是升级服务器配置。因为开发前面的那个系统已经耗费不少时间了,要是开发一个几倍流量的系统,估计得雇佣多几个更有经验的程序猿,开发更长的时间才能开发出来。这个估计老板会选择买点更好的服务器算了。一开始这确实是个最方便最省钱的办法,但是很多公司都踏上了一条升级服务器配置的不归路。升着升着普通的机器就满足不了用户的需求了。

所以说当数据规模达到这种程度的情况下,资金也比较雄厚了,已经有了足够牛逼的开发团队,许多公司都不愿意当这个冤大头了,迫于无奈之下都想到的是同一个办法:把任务拆解到多台计算机上去执行,对外只提供一个接口

1.数据量大--------> 分
2. 布
3.增长太快--------> 式

之前有人曾经开发过分布式系统,都没有成功。后来google提出了三篇重要意义的论文,BigTable、GFS、MapReduce。然后被人看到这三篇论文之后就开发出了hadoop,基于hadoop的改进hadoop的系统就陆续出现了。由于hadoop有一整套的生态系统,所以现在人们谈到分布式就必谈到hadoop。但hadoop并不能解决大部分的计算需求。MapReduce只能处理批量式计算需求,数据得在计算之前就都准备好。收集数据得花一段时间,再进行计算又花一段时间,因此没有实时性。

\ 批量计算(MapReduce) 流式计算(Apache Storm)
数据到达 计算开始前数据已准备好 计算进行中数据持续更新到来
计算周期 计算完成后会结束计算 一般会作为服务持续更新运行
使用场景 时效性要求低的场景 时效性要求高的场景

○ Storm基本组件

Storm的主从结构

1.                     Supervisor
2. Zookeeper Supervisor
3.Nimbus ⇄ Zookeeper ⇄ Supervisor
4. Zookeeper Supervisor
5. Supervisor

主从结构:简单,高效,但主节点存在单点问题

  • Nimbus

    • 主节点
    • 只负责整体分配工作
    • 不具体干活
    • 老板
  • Supervisor

    • 从节点
    • 直接管理干活的Worker
    • 小组经理
  • Worker

    • 真正干活(TASK)的进程
  • Heron改进

  • Storm DRPC

  • Storm UI

Storm作业提交运行流程

  • 用户编写Storm Topolgy
  • 使用Client提交Topology给Nimbus
  • Nimbus指派ask给Supervisor
  • Supervisor为Task启动Worker
  • Worker执行Task

Storm基础理论的更多相关文章

  1. storm笔记:Storm+Kafka简单应用

    storm笔记:Storm+Kafka简单应用 这几天工作须要使用storm+kafka,基本场景是应用出现错误,发送日志到kafka的某个topic.storm订阅该topic.然后进行兴许处理.场 ...

  2. Storm如何保证可靠的消息处理

    作者:Jack47 PS:如果喜欢我写的文章,欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 本文主要翻译自Storm官方文档Guaranteeing messag ...

  3. Storm

    2016-11-14  22:05:29 有哪些典型的Storm应用案例? 数据处理流:Storm可以用来处理源源不断流进来的消息,处理之后将结果写入到某个存储中去.不像其它的流处理系统,Storm不 ...

  4. Storm介绍(一)

    作者:Jack47 PS:如果喜欢我写的文章,欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 内容简介 本文是Storm系列之一,介绍了Storm的起源,Storm ...

  5. 理解Storm并发

    作者:Jack47 PS:如果喜欢我写的文章,欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 注:本文主要内容翻译自understanding-the-parall ...

  6. Storm构建分布式实时处理应用初探

    最近利用闲暇时间,又重新研读了一下Storm.认真对比了一下Hadoop,前者更擅长的是,实时流式数据处理,后者更擅长的是基于HDFS,通过MapReduce方式的离线数据分析计算.对于Hadoop, ...

  7. Storm内部的消息传递机制

    作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 一个Storm拓扑,就是一个复杂的多阶段的流式计算.Storm中的组件 ...

  8. Storm介绍(二)

    作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 本文是Storm系列之一,主要介绍Storm的架构设计,推荐读者在阅读 ...

  9. Storm介绍及与Spark Streaming对比

    Storm介绍 Storm是由Twitter开源的分布式.高容错的实时处理系统,它的出现令持续不断的流计算变得容易,弥补了Hadoop批处理所不能满足的实时要求.Storm常用于在实时分析.在线机器学 ...

随机推荐

  1. Devexpress之barManager控件属性

    隐藏菜单栏左边的竖线和右边的箭头? 1.隐藏菜单栏上右边的箭头属性设置:OptionsBar=>>AllowQuickCustomization=False 2.隐藏菜单栏左边的竖线属性设 ...

  2. 端口扫描器之java实现

    端口扫描器之java实现   import java.net.*;import java.io.*;import java.awt.*;import java.awt.event.*;import j ...

  3. UVa 1583 - Digit Generator

    A+A的每一位的数字的和=B 问你每一个B对应 的最小的A 是多少 不然输出0: #include <cstdio> #include <iostream> #include ...

  4. HDU 1045(Fire Net)题解

    以防万一,题目原文和链接均附在文末.那么先是题目分析: [一句话题意] 给定大小的棋盘中部分格子存在可以阻止互相攻击的墙,问棋盘中可以放置最多多少个可以横纵攻击炮塔. [题目分析] 这题本来在搜索专题 ...

  5. BZOJ 3233: [Ahoi2013]找硬币( dp )

    dp(x)表示最大面值为x时需要的最少硬币数. 枚举x的质因数p,  dp(x) = min( dp(x/p) - (p-1) * sigma[a[i]/x] ). ----------------- ...

  6. dot.js教程文档api

    dot.js是一个短小精悍的js模板引擎,压缩版仅有4K大小,最近使用dot的时候整理出这个dot.js教程文档,其实称不上什么教程,只是对dot.js的介绍和实例,希望能帮助到一部分需要的人. 使用 ...

  7. 在vim保存时获得sudo权限

    在维护线上服务的时候,经常要编辑一些不属于操作用户的文件,比如只有r权限的文件,每次保存都会提示read only.这时可以使用如下命令代替原有的 :wq 命令 :w !sudo tee % 命令:w ...

  8. ctype.h 字符分类与转换

      函数及说明 1 int isalnum(int c)该函数检查传递的字符是否是字母数字. 2 int isalpha(int c)该函数是否传递的字符是字母. 3 int iscntrl(int ...

  9. iOS把一个简单的图形变成一个圆

    push是定义的一个button push.layer.masksToBounds = YES; push.layer.cornerRadius = 100; push.layer.borderWid ...

  10. Oracle EBS-SQL (WIP-8):检查期间任务下达记录数.sql

    select       WE.DESCRIPTION                                                                        任 ...