Storm记录02-- Storm是什么
Storm是什么:
如果只用一句话来描述storm的话,可能会是这样:分布式实时计算系统。按照storm作者的说法,storm对于实时计算的意义类似于hadoop对于批处理的意义。我们都知道,根据google mapreduce来实现的hadoop为我们提供了map, reduce原语,使我们的批处理程序变得非常地简单和优美。对比Hadoop的批处理,Storm是个实时的、分布式以及具备高容错的计算系统。同Hadoop一样Storm也可以处理大批量的数据,然而Storm在保证高可靠性的前提下还可以让处理进行的更加实时;也就是说,所有的信息都会被处理。Storm可以扩展到不同的机器上进行大批量的数据处理,他同样还有其他一些特性。
Storm的架构:
Storm的集群由一个主节点和多个工作节点组成。主节点运行了一个名为“nimbus”的守护进程,用于分配代码、布置任务及故障检测。每个工作节点都运行了一个名为“supervisor”的守护进程,用于监听工作,开始并终止工作进程。Nimbus和Supervisor都能快速失败,而且是无状态的,这样一来他们都变得十分健壮,两者的协调工作是由Zookeeper来完成的。Zookeeper用于管理集群中的不同组件。ZeroMQ是内部消息系统,JZMQ是ZeroMQ的Java Binding。有个名为storm-deploy的子项目,可以在AWS上一键部署Storm集群。
Storm优势:
a.简单的编程模型。类似于MapReduce降低了并行批处理复杂性,Storm降低了进行实时处理的复杂性。
b.服务化,一个服务框架,支持热部署,即时上线或下线App。
c.可以使用各种编程语言。你可以在Storm之上使用各种编程语言。默认支持Clojure、Java、Ruby和Python。要增加对其他语言的支持,只需要实现一个简单的Storm通信协议即可。
d.容错性。Storm会管理工作进程和节点故障。
e.水平扩展。计算是在多个线程、进程和服务器之间并行进行的。
f.可靠的消息处理。Storm保证每个消息至少能得到一次完整处理。任务失败时,它会从消息源重试消息。
g.快速。系统的设计保证了消息能得到快速的处理,使用ZeroMQ作为其底层的消息队列。
h.本地模式。Storm有一个“本地模式”,可以在处理过程中完全模拟Storm集群。这让你可以快速进行开发和单元测试。
Storm存在的问题:
a、目前的开源版本中只是单节点nimbus,挂掉只能自动重启,可以考虑实现一个双nimbus的布局。
b、Clojure是一个在JVM平台运行的动态函数式编程语言,优势在于流程计算,Storm的部分核心内容由Clojure编写,虽然性能上提高不少但同时也提升了维护成本。
storm的适用场景:
流数据处理。Storm可以用来处理源源不断流进来的消息,处理之后将结果写入到某个存储中去。
分布式rpc。由于storm的处理组件是分布式的,而且处理延迟极低,所以可以作为一个通用的分布式rpc框架来使用。当然,其实我们的搜索引擎本身也是一个分布式rpc系统。
转载于:https://blog.51cto.com/gldbhome/1761604
Storm记录02-- Storm是什么相关推荐
- redis storm mysql_flume+kafka+storm+redis/mysql启动命令记录
1.flume启动 bin/flume-ng agent --conf conf --conf-file conf/flume-conf.properties --name fks -Dflum ...
- Storm 01之 Storm基本概念及第一个demo
2.1 Storm基本概念 在运行一个Storm任务之前,需要了解一些概念: Topologies :[tə'pɑ:lədʒɪ]拓扑结构 Streams Spouts:[spaʊt]喷出; 喷射; 滔 ...
- Storm 起步 Zookeeper Storm 单机部署
注意: 仅仅记录个人开发基本搭建,保证storm运行起来,目前不能保证性能以及稳定性 从其它网站各路高手记录中都需要一下四个标准套装 zeromq jzmq storm zookeeper 实际安装过 ...
- storm笔记:storm集群
storm笔记:storm集群 Strom集群结构是有一个主节点(nimbus)和多个工作节点(supervisor)组成的主从结构,主节点通过配置静态指定(还有一种主从结构是在运行时动态选举,比如z ...
- Storm学习(一)Storm介绍
场景 伴随着信息科技日新月异的发展,信息呈现出爆发式的膨胀,人们获取信息的途径也更加多样.更加便捷,同时对于信息的时效性要求也越来越高.举个搜索场景中的例子,当一个卖家发布了一条宝贝信息时,他希望的当 ...
- Storm学习(一) Storm介绍
场景 伴随着信息科技日新月异的发展,信息呈现出爆发式的膨胀,人们获取信息的途径也更加多样.更加便捷,同时对于信息的时效性要求也越来越高.举个搜索场景中的例子,当一个卖家发布了一条宝贝信息时,他希望的当 ...
- 大数据技术之_17_Storm学习_Storm 概述+Storm 基础知识+Storm 集群搭建+Storm 常用 API+Storm 分组策略和并发度
大数据技术之_17_Storm学习 一 Storm 概述 1.1 离线计算是什么? 1.2 流式计算是什么? 1.3 Storm 是什么? 1.4 Storm 与 Hadoop 的区别 1.5 Sto ...
- 【Storm】Storm简介及Storm集群的安装部署
1.Storm概述 (1)Storm简介 Storm最早是由BackType公司开发的实时处理系统,底层由Clojure实现.Clojure也是一门基于JVM的高级面向函数式的编程语言.2011年Tw ...
- BigData之Storm:Apache Storm的简介、深入理解、下载、案例应用之详细攻略
BigData之Storm:Apache Storm的简介.深入理解.下载.案例应用之详细攻略 目录 Apache Storm的简介 Apache Storm的深入理解 1.Storm与hadoop ...
- linux 下 storm环境搭建,Storm在Ubuntu环境下的单机部署
Storm在Ubuntu环境下的单机部署 目录 查看Ubuntu 安装JDK 安装Pythod 安装Zookeeper 安装ZeroMQ 安装Jzmp 安装Storm 查看Ubuntu是32位还是64 ...
最新文章
- C语言文件最后一行重复储存,求大佬看看,我这个程序为什么保存进文件只有最后一行...
- 如何做好SOC的一点点体会
- KMP模版 KMP求子串在主串出现的次数模版
- 目标跟踪数据集OTB、VOT下载
- python怎么读文件名-python读取文件名并改名字的实例
- C语言告警warning: missing braces around initializer详解
- python:类的空间问题 类与类之间的关系
- ThinkPHP跨控制器调用方法
- C# Winform 窗体美化(四、镂空窗体)
- hadoop 开启防火墙_hadoop上搭建hive
- 程序员专属段子集锦 2/10
- tensorflow学习笔记(1)如何高效地学习TensorFlow(附链接)
- Tomcat乱码解决方法
- masm32踩坑总结
- 联想Y450 GT130M显卡 使用NVIDIA公版驱动(安装成功)
- 深度学习论文阅读目标检测篇(六)中英对照版:YOLOv3《 An Incremental Improvement》
- centos设置ftp默认端口
- 如何将域名解析到指定的端口(linux服务器,超级简单,图文)
- 洛谷P1046陶陶摘苹果题解--zhengjun
- 2016在电影院看过的电影
热门文章
- faster rcnn的tensorflow代码的理解
- 求整数的位数及各位数字之和 (15 分)
- 机器学习之几个好用的数据下载网站
- node.js go java_ABAP,Java, nodejs和go语言的web server编程
- MyBatis复习(二):mybatis-config.xml核心配置文件
- P3864 [USACO1.2]命名那个数字 Name That Number
- mybatis-generator 详细配置及使用,爬坑记录
- Anaconda中出现No module named cv2
- hibernate框架学习笔记11:Criteria查询详解
- final、finally和finalize;throw和throws;collection和collections;==和equals;Statement和PrepareStatement...