1. Storm是什么:

    如果只用一句话来描述storm的话,可能会是这样:分布式实时计算系统。按照storm作者的说法,storm对于实时计算的意义类似于hadoop对于批处理的意义。我们都知道,根据google mapreduce来实现的hadoop为我们提供了map, reduce原语,使我们的批处理程序变得非常地简单和优美。对比Hadoop的批处理,Storm是个实时的、分布式以及具备高容错的计算系统。同Hadoop一样Storm也可以处理大批量的数据,然而Storm在保证高可靠性的前提下还可以让处理进行的更加实时;也就是说,所有的信息都会被处理。Storm可以扩展到不同的机器上进行大批量的数据处理,他同样还有其他一些特性。

  2. Storm的架构:

    Storm的集群由一个主节点和多个工作节点组成。主节点运行了一个名为“nimbus”的守护进程,用于分配代码、布置任务及故障检测。每个工作节点都运行了一个名为“supervisor”的守护进程,用于监听工作,开始并终止工作进程。Nimbus和Supervisor都能快速失败,而且是无状态的,这样一来他们都变得十分健壮,两者的协调工作是由Zookeeper来完成的。Zookeeper用于管理集群中的不同组件。ZeroMQ是内部消息系统,JZMQ是ZeroMQ的Java Binding。有个名为storm-deploy的子项目,可以在AWS上一键部署Storm集群。

  3. Storm优势:

    a.简单的编程模型。类似于MapReduce降低了并行批处理复杂性,Storm降低了进行实时处理的复杂性。

    b.服务化,一个服务框架,支持热部署,即时上线或下线App。

    c.可以使用各种编程语言。你可以在Storm之上使用各种编程语言。默认支持Clojure、Java、Ruby和Python。要增加对其他语言的支持,只需要实现一个简单的Storm通信协议即可。

    d.容错性。Storm会管理工作进程和节点故障。

    e.水平扩展。计算是在多个线程、进程和服务器之间并行进行的。

    f.可靠的消息处理。Storm保证每个消息至少能得到一次完整处理。任务失败时,它会从消息源重试消息。

    g.快速。系统的设计保证了消息能得到快速的处理,使用ZeroMQ作为其底层的消息队列。

    h.本地模式。Storm有一个“本地模式”,可以在处理过程中完全模拟Storm集群。这让你可以快速进行开发和单元测试。

  4. Storm存在的问题:

    a、目前的开源版本中只是单节点nimbus,挂掉只能自动重启,可以考虑实现一个双nimbus的布局。

    b、Clojure是一个在JVM平台运行的动态函数式编程语言,优势在于流程计算,Storm的部分核心内容由Clojure编写,虽然性能上提高不少但同时也提升了维护成本。

  5. storm的适用场景:

    流数据处理。Storm可以用来处理源源不断流进来的消息,处理之后将结果写入到某个存储中去。

    分布式rpc。由于storm的处理组件是分布式的,而且处理延迟极低,所以可以作为一个通用的分布式rpc框架来使用。当然,其实我们的搜索引擎本身也是一个分布式rpc系统。

转载于:https://blog.51cto.com/gldbhome/1761604

Storm记录02-- Storm是什么相关推荐

  1. 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 ...

  2. Storm 01之 Storm基本概念及第一个demo

    2.1 Storm基本概念 在运行一个Storm任务之前,需要了解一些概念: Topologies :[tə'pɑ:lədʒɪ]拓扑结构 Streams Spouts:[spaʊt]喷出; 喷射; 滔 ...

  3. Storm 起步 Zookeeper Storm 单机部署

    注意: 仅仅记录个人开发基本搭建,保证storm运行起来,目前不能保证性能以及稳定性 从其它网站各路高手记录中都需要一下四个标准套装 zeromq jzmq storm zookeeper 实际安装过 ...

  4. storm笔记:storm集群

    storm笔记:storm集群 Strom集群结构是有一个主节点(nimbus)和多个工作节点(supervisor)组成的主从结构,主节点通过配置静态指定(还有一种主从结构是在运行时动态选举,比如z ...

  5. Storm学习(一)Storm介绍

    场景 伴随着信息科技日新月异的发展,信息呈现出爆发式的膨胀,人们获取信息的途径也更加多样.更加便捷,同时对于信息的时效性要求也越来越高.举个搜索场景中的例子,当一个卖家发布了一条宝贝信息时,他希望的当 ...

  6. Storm学习(一) Storm介绍

    场景 伴随着信息科技日新月异的发展,信息呈现出爆发式的膨胀,人们获取信息的途径也更加多样.更加便捷,同时对于信息的时效性要求也越来越高.举个搜索场景中的例子,当一个卖家发布了一条宝贝信息时,他希望的当 ...

  7. 大数据技术之_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 ...

  8. 【Storm】Storm简介及Storm集群的安装部署

    1.Storm概述 (1)Storm简介 Storm最早是由BackType公司开发的实时处理系统,底层由Clojure实现.Clojure也是一门基于JVM的高级面向函数式的编程语言.2011年Tw ...

  9. BigData之Storm:Apache Storm的简介、深入理解、下载、案例应用之详细攻略

    BigData之Storm:Apache Storm的简介.深入理解.下载.案例应用之详细攻略 目录 Apache Storm的简介 Apache Storm的深入理解 1.Storm与hadoop ...

  10. linux 下 storm环境搭建,Storm在Ubuntu环境下的单机部署

    Storm在Ubuntu环境下的单机部署 目录 查看Ubuntu 安装JDK 安装Pythod 安装Zookeeper 安装ZeroMQ 安装Jzmp 安装Storm 查看Ubuntu是32位还是64 ...

最新文章

  1. C语言文件最后一行重复储存,求大佬看看,我这个程序为什么保存进文件只有最后一行...
  2. 如何做好SOC的一点点体会
  3. KMP模版 KMP求子串在主串出现的次数模版
  4. 目标跟踪数据集OTB、VOT下载
  5. python怎么读文件名-python读取文件名并改名字的实例
  6. C语言告警warning: missing braces around initializer详解
  7. python:类的空间问题 类与类之间的关系
  8. ThinkPHP跨控制器调用方法
  9. C# Winform 窗体美化(四、镂空窗体)
  10. hadoop 开启防火墙_hadoop上搭建hive
  11. 程序员专属段子集锦 2/10
  12. tensorflow学习笔记(1)如何高效地学习TensorFlow(附链接)
  13. Tomcat乱码解决方法
  14. masm32踩坑总结
  15. 联想Y450 GT130M显卡 使用NVIDIA公版驱动(安装成功)
  16. 深度学习论文阅读目标检测篇(六)中英对照版:YOLOv3《 An Incremental Improvement》
  17. centos设置ftp默认端口
  18. 如何将域名解析到指定的端口(linux服务器,超级简单,图文)
  19. 洛谷P1046陶陶摘苹果题解--zhengjun
  20. 2016在电影院看过的电影

热门文章

  1. faster rcnn的tensorflow代码的理解
  2. 求整数的位数及各位数字之和 (15 分)
  3. 机器学习之几个好用的数据下载网站
  4. node.js go java_ABAP,Java, nodejs和go语言的web server编程
  5. MyBatis复习(二):mybatis-config.xml核心配置文件
  6. P3864 [USACO1.2]命名那个数字 Name That Number
  7. mybatis-generator 详细配置及使用,爬坑记录
  8. Anaconda中出现No module named cv2
  9. hibernate框架学习笔记11:Criteria查询详解
  10. final、finally和finalize;throw和throws;collection和collections;==和equals;Statement和PrepareStatement...