Storm基础理论
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基础理论的更多相关文章
- storm笔记:Storm+Kafka简单应用
storm笔记:Storm+Kafka简单应用 这几天工作须要使用storm+kafka,基本场景是应用出现错误,发送日志到kafka的某个topic.storm订阅该topic.然后进行兴许处理.场 ...
- Storm如何保证可靠的消息处理
作者:Jack47 PS:如果喜欢我写的文章,欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 本文主要翻译自Storm官方文档Guaranteeing messag ...
- Storm
2016-11-14 22:05:29 有哪些典型的Storm应用案例? 数据处理流:Storm可以用来处理源源不断流进来的消息,处理之后将结果写入到某个存储中去.不像其它的流处理系统,Storm不 ...
- Storm介绍(一)
作者:Jack47 PS:如果喜欢我写的文章,欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 内容简介 本文是Storm系列之一,介绍了Storm的起源,Storm ...
- 理解Storm并发
作者:Jack47 PS:如果喜欢我写的文章,欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 注:本文主要内容翻译自understanding-the-parall ...
- Storm构建分布式实时处理应用初探
最近利用闲暇时间,又重新研读了一下Storm.认真对比了一下Hadoop,前者更擅长的是,实时流式数据处理,后者更擅长的是基于HDFS,通过MapReduce方式的离线数据分析计算.对于Hadoop, ...
- Storm内部的消息传递机制
作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 一个Storm拓扑,就是一个复杂的多阶段的流式计算.Storm中的组件 ...
- Storm介绍(二)
作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 本文是Storm系列之一,主要介绍Storm的架构设计,推荐读者在阅读 ...
- Storm介绍及与Spark Streaming对比
Storm介绍 Storm是由Twitter开源的分布式.高容错的实时处理系统,它的出现令持续不断的流计算变得容易,弥补了Hadoop批处理所不能满足的实时要求.Storm常用于在实时分析.在线机器学 ...
随机推荐
- 在ASP.NET项目中使用CKEditor
CKEditor是什么 CKEidtor是一个在线富文本编辑器,可以将让用户所见即所得的获得编辑在线文本,编辑器或自动将用户编辑的文字格式转换成html代码. 在ASP.NET工程中添加CKEdito ...
- 什么是HTTP Keep-Alive呢?
在通过调试工具查看网络请求的时候,通常在response header能看到类似下面这种:Keep-Alive: timeout=10, max=94 .那么Keep-Alive到底是什么呢? HTT ...
- < meta > 元素(转)
< meta > 元素 概要 标签提供关于HTML文档的元数据.元数据不会显示在页面上,但是对于机器是可读的.它可用于浏览器(如何显示内容或重新加载页面),搜索引擎(关键词),或其他 we ...
- DOM事件对象
触发DOM上的事件时会产生一个事件对象event. event的内容:与事件有关的信息,导致事件的元素,事件的类型及其他与特定事件相关的信息. event对象会传入到事件处理程序中. 一.DOM 中的 ...
- UVA 1395 Slim Span
题意: 要求的是所有生成树中最大边与最小边差值最小的那个. 分析: 其实可以利用最小瓶颈生成树,就是最小生成树这一性质,枚举原图的最小边,然后找相应生成树的最大边 代码: #include <i ...
- js学习心得(一)(菜鸟)
js基础已经打了好几次了,慕课跟着学了一遍,视频看了一些,还读了诸如 jsdom艺术,js精粹以及锋利jq(没读完). 这次再次重头读并写一遍代码,工具书是js,查缺补漏高级程序设计第二版,犀牛书有点 ...
- C++命名准则
总则:命名用英语,单词简单,明了.意义明确.过长的单词可以使用省略.一般是去掉元音字母形成省略.如果有通用的缩写,应该采用通用的缩写. 1.函数命名 1.1:全局函数:采用限定词+动词(+名词的原则) ...
- sffs
因为微软收购了Skype,就减少了对linux版软件的支持,官方下载页面已找不到了.只有这一个地址了.要下的尽早.http://download.skype.com/linux/skype-ubunt ...
- Android之 compileSdkVersion, minSdkVersion, and targetSdkVersion
在一年之中,也有可能只是几个月后,你会发布你的Android应用程序.但是这中间有可能会发布新的版本的Android系统,比如:6.0+. 你肯定希望你的应用可以向前兼容,当用户升级到新的Androi ...
- Apache-Tomcat 和 Apache-Maven配置
1.1.下载安装文件 官网对应版本下载,例:apache-tomcat-8.0.35-windows-x64.zip 1.2.指定对应的安装目录: 例:D:\JavaSoft\apache-tomca ...