【原】Storm及特点
Storm入门教程
1. Storm基础
Storm
Storm主要特点
Storm基本概念
Storm调度器
Storm配置
Guaranteeing Message Processing(消息处理保障机制)
Daemon Fault Tolerance(守护线程容错机制)
理解Storm拓扑的并行
Tutorial
Local模式
在生产环境中运行Topologies
Storm
Storm是一个免费开源的分布式实时计算系统。Storm令无边界的流数据计算变得容易,弥补了Hadoop批处理所不能满足的实时要求。
Storm常用在实时分析、在线机器学习、持续计算、分布式远程调用和ETL等场景中。Storm处理速度快,单节点每秒可处理百万级元组的数据;同时,Storm是可扩展的、有容错性,容易部署与操作。
Storm已整合现有的消息队列和数据库系统。
Storm主要特点
- 简单的API接口
Storm的API简单且容易使用。当编写Storm程序时,处理的是元组组成的流数据,一个元组是一组值的集合。元组包含任何对象类型,当使用自定义数据类型时,只需要简单的使用storm的序列化器注册一下即可。
Storm提供了三种抽象的组件,分别是Spouts、Bolts和Topologies。Spouts组件是负责接收或生产处理所需的数据源。通常spout从消息队列中读取数据,比如Kestrel、RabbitMQ或是Kafka,也可以从其他地方生产自己需要的数据源,比如调用Twitter streaming API。Spout已经和大部分的消息队列集成。
Bolts处理接收到的数据流,生产出新的数据流提供给其他组件调用。大部分的计算逻辑都由bolt处理。比如函数处理、过滤器、join、聚集、甚至是数据库调用等等。
一个Topologie组件就是由多个spout和bolt组成的网络结构。网络中的每一个边线代表一个bolt组件订阅的数据流,这个数据流可能来至spout组件,也可能来至其他bolt组件。一个Topology组件就是复杂的流处理计算过程。Topology部署在服务器上就会一直运行。
Storm提供了一种本地运行模式,来模拟集群处理,这对开发和测试非常有用。客户端使用strom命令提交一个Topology到集群上运行。
- 可扩展性
Storm topologies先天并行计算并且运行在集群中。不同的topology的部分能调整它们的并行度,如client可通过“rebalance”命令及时调整正在运行的topologies的并行度。
先天并行计算是指它在低延迟的前提下保证了高吞吐量。如,在单台节点(处理器:2x Intel E5645@2.4Ghz,内存:24GB)上每秒处理百万级消息,消息约为100字节。
- 容错性
Storm有容错机制,当工作节点宕了,storm会尝试重启。如果节点宕机,会重启另启动一个节点。
Storm的守护进程Nimbus和Supervisors都是无状态的,如果它们死掉,那么它们将会重启就像什么也没发生。也就就是说,即使你用kill -9强制杀死这两个进程那么也不会影响集群的正常运行。
- 无数据丢失
Storm确保每个元组被处理。Storm的机制之一:能有效地记录元组的lineage。
Storm的抽象组件确保了数据至少处理一次,即使使用消息队列系统失败时,也能确保消息被处理。
通过Storm的抽象组件Trident能确保消息只被处理一次。
- 支持多种编程语言
Storm从一开始就设计为能被各种编程语言使用。Storm用Thrift定义和提交topologies。由于Thrift能被任何一种编程语言使用,因此,topologies也能被任何一种编程语言定义和使用。
同样,spouts和bolts能用任何一种语言定义。不是基于JVM实现的Storm最贱spouts和bolts可以通过JSON协议通信。
容易部署和操作
Storm集群易部署,要求配置最少就可以启动并运行。免费开源
Storm遵循开源协议Apache License, Version 2.0
Storm有庞大的生态系统库和工具:
1.Spouts:spouts已经和常用消息队列系统JMS、Kafka、Redis pub/sub等进行了整合。
2.storm-state:storm-state使计算中的内存状态易管理和可靠(通过分布式文件系统持久化)。
3.数据库集成:bolts已整个不同的数据库如MongoDB,RDBM,Cassandra等。
4.其他功能。
【原】Storm及特点的更多相关文章
- 【原】storm源码之理解Storm中Worker、Executor、Task关系
Storm在集群上运行一个Topology时,主要通过以下3个实体来完成Topology的执行工作:1. Worker(进程)2. Executor(线程)3. Task 下图简要描述了这3者之间的关 ...
- 【原】storm源码之storm代码结构【译】
说明:本文翻译自Storm在GitHub上的官方Wiki中提供的Storm代码结构描述一节Structure of the codebase,希望对正在基于Storm进行源码级学习和研究的朋友有所帮助 ...
- 【原】Storm 入门教程目录
Storm入门教程 1. Storm基础 Storm Storm主要特点 Storm基本概念 Storm调度器 Storm配置 Guaranteeing Message Processing(消息处理 ...
- 【原】Storm分布式RPC
5. Storm高级篇 序列化 分布式RPC High level overview LinearDRPCTopologyBuilder Local mode DRPC Remote mode DRP ...
- 【原】Storm序列化
5. Storm高级篇 序列化 Dynamic typing Custom serialization Java serialization Component-specific serializat ...
- 【原】Storm学习资料推荐
4.Storm学习资料推荐 书籍: 英文: Learning Storm: Ankit Jain, Anand Nalya: 9781783981328: Amazon.com: Books Gett ...
- 【原】Storm实战
3.Storm实战 如何新建一个Storm 项目 本文简要概括如何新建一个Storm项目,步骤如下: 1.添加Storm 相关jar添加到类路径上. 2.如果使用多语言特性,将多语言实现的目录加到cl ...
- 【原】Storm环境搭建
2.Storm环境搭建 单机 ... 集群 ... 搭建Storm开发环境 搭建Storm开发环境主要概括为以下两步: 1.下载Storm发行稳定版,然后解压,最后把解压后的bin/文件所在目录添加到 ...
- 【原】Storm Local模式和生产环境中Topology运行配置
Storm入门教程 1. Storm基础 Storm Storm主要特点 Storm基本概念 Storm调度器 Storm配置 Guaranteeing Message Processing(消息处理 ...
- 【原】Storm Tutorial
Storm入门教程 1. Storm基础 Storm Storm主要特点 Storm基本概念 Storm调度器 Storm配置 Guaranteeing Message Processing(消息处理 ...
随机推荐
- Delphi XE5 android listview
C:\Users\Public\Documents\RAD Studio\12.0\Samples\FireMonkeyMobile\ListView 路径下有两个dpk,装完后listview也能实 ...
- Mysql异常:MySQLNonTransientConnectionException: No operations allowed after statement closed
Mysql异常:MySQLNonTransientConnectionException: No operations allowed after statement closed MySQLNonT ...
- PAT-乙级-1026. 程序运行时间(15)
1026. 程序运行时间(15) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 要获得一个C语言程序的运行时间, ...
- cf 283A
不能简单模拟(会超时) 运用一点小技巧 减少时间复杂度 #include <cstdio> #include <cstring> using namespace std; ...
- jquery 清空动态append添加元素,remove方法
<html> <head> <script type="text/javascript" src="jquery-1.9.1.js" ...
- SQLite入门与分析(二)---设计与概念(续)
SQLite入门与分析(二)---设计与概念(续) 写在前面:本节讨论事务,事务是DBMS最核心的技术之一.在计算机科学史上,有三位科学家因在数据库领域的成就而获ACM图灵奖,而其中之一Jim G ...
- Invoke BeginInvoke
http://www.codeproject.com/Articles/10311/What-s-up-with-BeginInvoke http://www.codeproject.com/Arti ...
- 告诉你一个真实的OpenStack:都谁在用,用来干什么?
告诉你一个真实的OpenStack:都谁在用,用来干什么? OpenStack基金会近日发布的双年调查报告显示,开源云计算软件OpenStack正在进入主流企业市场,但该项目依然面临较难部署和管理的老 ...
- 1067. Disk Tree(字符串)
1067 破题啊 写完发现理解错题意了 子目录下会有跟之前重名的 把输入的字符串存下来 排下序 然后依次找跟上面有没有重的 #include <iostream> #include< ...
- bzoj1607: [Usaco2008 Dec]Patting Heads 轻拍牛头
筛法. 枚举每个数,它会对它的倍数的答案有贡献. 数大了以后,倍数相应少了很多.比枚举每个数的约数要好的多. 自己yy了一种分步做法.小于sqrt(m)被当作约数枚举,大于sqrt(m)的枚举倍数. ...