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. 在ASP.NET项目中使用CKEditor

    CKEditor是什么 CKEidtor是一个在线富文本编辑器,可以将让用户所见即所得的获得编辑在线文本,编辑器或自动将用户编辑的文字格式转换成html代码. 在ASP.NET工程中添加CKEdito ...

  2. 什么是HTTP Keep-Alive呢?

    在通过调试工具查看网络请求的时候,通常在response header能看到类似下面这种:Keep-Alive: timeout=10, max=94 .那么Keep-Alive到底是什么呢? HTT ...

  3. < meta > 元素(转)

    < meta > 元素 概要 标签提供关于HTML文档的元数据.元数据不会显示在页面上,但是对于机器是可读的.它可用于浏览器(如何显示内容或重新加载页面),搜索引擎(关键词),或其他 we ...

  4. DOM事件对象

    触发DOM上的事件时会产生一个事件对象event. event的内容:与事件有关的信息,导致事件的元素,事件的类型及其他与特定事件相关的信息. event对象会传入到事件处理程序中. 一.DOM 中的 ...

  5. UVA 1395 Slim Span

    题意: 要求的是所有生成树中最大边与最小边差值最小的那个. 分析: 其实可以利用最小瓶颈生成树,就是最小生成树这一性质,枚举原图的最小边,然后找相应生成树的最大边 代码: #include <i ...

  6. js学习心得(一)(菜鸟)

    js基础已经打了好几次了,慕课跟着学了一遍,视频看了一些,还读了诸如 jsdom艺术,js精粹以及锋利jq(没读完). 这次再次重头读并写一遍代码,工具书是js,查缺补漏高级程序设计第二版,犀牛书有点 ...

  7. C++命名准则

    总则:命名用英语,单词简单,明了.意义明确.过长的单词可以使用省略.一般是去掉元音字母形成省略.如果有通用的缩写,应该采用通用的缩写. 1.函数命名 1.1:全局函数:采用限定词+动词(+名词的原则) ...

  8. sffs

    因为微软收购了Skype,就减少了对linux版软件的支持,官方下载页面已找不到了.只有这一个地址了.要下的尽早.http://download.skype.com/linux/skype-ubunt ...

  9. Android之 compileSdkVersion, minSdkVersion, and targetSdkVersion

    在一年之中,也有可能只是几个月后,你会发布你的Android应用程序.但是这中间有可能会发布新的版本的Android系统,比如:6.0+. 你肯定希望你的应用可以向前兼容,当用户升级到新的Androi ...

  10. Apache-Tomcat 和 Apache-Maven配置

    1.1.下载安装文件 官网对应版本下载,例:apache-tomcat-8.0.35-windows-x64.zip 1.2.指定对应的安装目录: 例:D:\JavaSoft\apache-tomca ...