storm记录--2-- Storm是什么

  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系统。

时间: 2024-10-03 22:16:16

storm记录--2-- Storm是什么的相关文章

storm记录--5-- Storm集群安装

以下是依次需要完成的安装步骤 一.安装JDK1.6 二.安装Zookeeper 三.安装zeromq-2.1.7 四.安装jzmq 五.安装Python-2.7.2 六.安装unzip 七.安装Storm 一.下载并安装JDK1.6 并设置环境变量,如: export JAVA_HOME=/opt/java6 export PATH=$PATH:$JAVA_HOME/bin 运行java.javac命令,测试java正常安装. 二.安装zookeeper 简易安装:下载zookeeper-3.4

Storm 起步 Zookeeper Storm 单机部署

注意: 仅仅记录个人开发基本搭建,保证storm运行起来,目前不能保证性能以及稳定性 从其它网站各路高手记录中都需要一下四个标准套装 zeromq jzmq storm zookeeper 实际安装过程中没有发现zeromq和jzmq的用途,因此安装了Zqromq后未安装jzmq,可能是研究不够深入,后续继续发现. 一.安装Zookeeper https://zookeeper.apache.org/ 下载最新版,解压到指定目录,设置环境变量 export ZOOKEEPER_HOME=zook

Storm入门(Storm程序)

Storm简介 Storm是一个分布式实时流式框架,大多应用于以下场景:实时分析.在线机器学习.流式计算.分布式RPC ETL(BL分析)等等.同类型的框架有hadoop和spark.hadoop侧重于海量数据的离线计算,spark则更擅长实时迭代计算.要注意的是,storm并不直接处理数据,而是把我们的业务程序(逻辑)放在很多服务器上并发运行,待处理消息被分散到很多服务器上并发处理,以此扩展程序的负载能力. Direction 简单来说的话,Storm框架包含两个部分.一个是Storm程序,一

1 storm基本概念 + storm编程规范及demo编写

本博文的主要内容有 .Storm的单机模式安装 .Storm的分布式安装(3节点)   .No space left on device .storm工程的eclipse的java编写 http://storm.apache.org/ 分布式的一个计算系统,但是跟mr不一样,就是实时的,实时的跟Mr离线批处理不一样. 离线mr主要是做数据挖掘.数据分析.数据统计和br分析. Storm,主要是在线的业务系统.数据像水一样,源源不断的来,然后,在流动的过程中啊,就要把数据处理完.比如说,一些解析,

【Twitter Storm系列】Storm环境配置及吞吐量测试调优--个人理解

1.硬件配置信息 6台服务器,2个CPU,96G,6核,24线程 2.集群信息 Storm集群:1个nimbus,6个supervisor nimbus:192.168.7.127 supervisor: 192.168.7.128 192.168.7.129 192.168.7.130 192.168.7.131 192.168.7.132 192.168.7.133 Zookeeper集群: 3个节点 192.168.7.127:2181, 192.168.7.128:2181, 192.1

storm记录--5-- Storm学习的HelloWorld

Storm学习的HelloWorld 1.下载Storm-start(https://github.com/nathanmarz/storm-starter/archive/master.zip) 2.进入下载目录,对zip文件解压 3.进入解压后的文件目录,修改m2-pom.xml(将twitter4j-core和twitter4j-stream替换为下面的部分) <dependency> <groupId>org.twitter4j</groupId> <ar

storm记录--3--Storm的基本概念

首先我们通过一个 storm 和hadoop的对比来了解storm中的基本概念. Hadoop Storm 系统角色 JobTracker Nimbus TaskTracker Supervisor Child Worker 应用名称 Job Topology 组件接口 Mapper/Reducer Spout/Bolt 接下来我们再来具体看一下这些概念. a.Nimbus:负责资源分配和任务调度. b.Supervisor:负责接受nimbus分配的任务,启动和停止属于自己管理的worker进

storm记录--4-- Storm适用场景

Storm适用场景 流聚合: 流聚合就是把两个或多个数据流聚合成一个数据流 -- 基于一些共同的tuple字段. builder.setBolt(5,new MyJoiner(),parallelism) .fieldsGrouping(1,new Fields("joinfield1","joinfield2")) .fieldsGrouping(2,new Fields("joinfield1","joinfield2")

storm记录--1-- 实时计算系统

实时计算系统 实时计算场景: 伴随着信息科技日新月异的发展,信息呈现出爆发式的膨胀,人们获取信息的途径也更加多样.更加便捷,同时对于信息的时效性要求也越来越高. 举个搜索场景中的例子,当一个卖家发布了一条宝贝信息时,他希望的当然是这个宝贝马上就可以被卖家搜索出来.点击.购买啦,相反,如果这个宝贝要等到第二天或者更久才可以被搜出来,估计这个大哥就要骂娘了. 再举一个推荐的例子,如果用户昨天在淘宝上买了一双袜子,今天想买一副泳镜去游泳,但是却发现系统在不遗余力地给他推荐袜子.鞋子,根本对他今天寻找泳