`
邢邢色色
  • 浏览: 229975 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Storm官方文档about页面翻译

阅读更多

原创翻译,如有错误请指出,谢谢。

原文链接:http://storm.incubator.apache.org/about/integrates.html

 

集成

Storm可以集成任何队列系统和数据库系统。Storm的spout的抽象使得集成一个新的队列系统变得简单。示例的队列集成包括:

  1. Kestrel
  2. RabbitMQ / AMQP
  3. Kafka
  4. JMS
  5. Amazon Kinesis

同样的,集成数据库系统到Storm中也很简单。简单的打开一个连接到你的数据库,进行你通常想要做的读写。

Storm会处理并行(parallelization),分片(partitioning),在必要的时候会失败重试。


简单的API

Storm 有一套简单并易于使用的API。当在Storm上写程序时,你要对数据流中的消息(tuple)进行处理和转换,tuple就是一个有名字的list,一 个名字对应着list中的一个值。tuple可以包括任何类型的对象,如果你想使用一个Storm不认识的类型,你需要为这个类型注册一个序列化器 (serializer),这很简单。

Storm中仅有3种抽象:spouts,bolts和拓扑(topologies)。一个 spout是一个计算流的来源。通常来说一个spout从一个队列系统读取数据,比如Kestrel, RabbitMQ,或者Kafka,但是一个spout也可以自己产生自己的数据流,或者从其他的地方读取,比如推特的流API。Spout对于大多数队 列系统都已有实现。

一个bolt处理任意数量的输入流,并产生任意数量的新的输出流。计算的大部分逻辑都有bolt来实现,比如functions,filters,streaming joins,streaming aggregations,与数据库通信,等等。

一个拓扑(topology) 是一个由spout和bolt组成的网络(network),其中的每一条边(edge)代表一个bolt订阅了其他某个spout或bolt的输出流。 一个拓扑是一个任意的复杂的多阶段(multi stage)的流计算。当部署拓扑到集群上时,拓扑会一直无限运行下去,除非我们显式的杀死它。

Storm有一个本地模式(local mode),就是在一个单一的进程里模拟Storm集群。这在开发测试的时候很有用。Storm的命令行客户端用来将一个准备好的拓扑提交到实际的集群中进行计算。

storm-starter项目包含了简单的拓扑,用来学习基本的Storm的开发。怎样使用Storm可参考官方tutorial和官方文档集。


可扩展性

Storm的拓扑跑在一个集群中的各个节点上,天生就是并行的。一个拓扑中的不同的部分(各个bolt)可以通过调节他们的并行度(parallelism)来独立的扩展。

命令行命令storm的子命令rebalance可以动态的调整一个正在运行的拓扑的并行度。

Storm天生的并行度意味着它有非常高的吞吐量并且延迟很低。Storm在下列硬件条件下做了一个benchmark:每个节点每秒可处理100w个大小为100字节的消息。

  • CPU: 2x Intel E5645@2.4Ghz
  • 内存: 24 GB

容错

Storm是容错的:当worker进程死掉,Storm会自动的重启它们。如果节点挂掉,worker进程会在另外一个节点重启。

Storm 的后台进程,Nimbus和Supervisor进程被设计成无状态的(stateless)和快速失败的(fail-fast)。如果它们挂掉,它们能 像什么都没有发生一样的重启。这意味着你可以使用kill -9来杀掉Storm的后台进程,且不会影响到集群的健康或者你的拓扑。

后面的文档可以看到更多相关的话题。


数据能够被处理的保证

Storm可以保证每个tuple能被完全的处理。Storm的一个核心机制是使用一种极其高效的方式来跟踪一个tuple在一个拓扑的轨迹。可以参考这篇文章(链接to do..)。

Stor的基本抽象提供了一个至少处理一次(at-least-once)的保证,当使用队列系统时也可以获得同样的保证。当处理失败时消息才会被重新发送(replay)。

使用Trident,一个建立在Storm的基本抽象的高层次的抽象,你可以实现仅处理一次(exactly-once)的处理语义。


使用其他的任何编程语言

Storm被设计成完全的支持任何编程语言。Storm的核心是一个Thrift定义,可以用来定义和提交拓扑。因为Thrift支持任何语言,所以定义和提交拓扑也可以支持任何语言。

同样的,spout和bolt也可以使用任何语言定义。非JVM语言写的spout和bolt通过建立在stdin/stdout之上的JSON-based protocol来在Storm集群间进行通信。Ruby,Python,Javascript,Perl,PHP都实现了这个协议的适配器。

前面提到的storm-starter项目中也有一个示例使用Python实现了一个bolt。


部署和维护简单

Storm集群部署起来很容易,需要一个最小化的安装和配置就能跑起来。Storm自带的配置就适用于生产环境。部署过程参见后面的文章。

如果你使用EC2,storm-deploy项目能帮你一键搞定。

此外,Storm一旦部署完成,维护起来很简单。Storm设计得非常健壮,集群在数月之后依然能保持运行。


自由并且开源

Apache Storm是一个自由且开源的项目,使用Apache License, Version 2.0许可证,当前是Apache Software Foundation (ASF)的孵化项目,由Apache Incubator提供赞助。

Storm有一个庞大且正在增长的生态系统,提供了很多可以集成到Storm的工具和库,包括以下组件:

  1. Spouts: JMS, Kafka, Redis pub/sub等等可以集成到spout。
  2. storm-state: storm-state 使得可以使用分布式文件系统轻松的管理计算中的内存中的大量数据并持久化。
  3. 数据库集成: 有很多辅助的bolt可以集成很多种数据库,比如MongoDB, RDBMS’s, Cassandra。等等。
  4. 更多其他的工具。

Storm官方文档中还有更多Storm相关的项目的链接,这些项目不在Apache项目的范畴内。

0
0
分享到:
评论

相关推荐

    storm chm文档

    storm chm文档 ,使用Storm实现实时大数据分析,storm源码学习

    storm自学文档

    在搭建Storm伪分布式环境方面,文档提供了详细的步骤。这些步骤包括配置安装yum,设置软件源,初始化系统,并进行测试。同时,还需要搭建Zookeeper集群,并安装Storm的依赖库,下载并解压Storm发布版本。接着,修改...

    Storm 1.1.0 中文文档

    Storm 1.1.0 中文文档 Storm 1.1.0 中文文档 Storm 1.1.0 中文文档

    Apache Storm-0.9.1 API 参考文档

    Apache Storm 是一个开源的分布式...总结,Apache Storm-0.9.1 API 参考文档为开发者提供了详细指导,涵盖了从基本概念、组件实现、拓扑构建到集群管理和性能调优的全方位知识,帮助开发者高效地构建实时数据处理系统。

    Storm的文档详解

    ### Storm的文档详解 #### 一、Storm基础概念 **1.1 什么是Storm?** Apache Storm 是一款免费且开源的分布式实时计算系统。它专为处理无界数据流而设计,能够实现实时数据处理任务,具备低延迟、高可用、分布式...

    storm学习文档

    storm学习文档

    STORM学习文档

    Storm学习文档 Storm 是一个分布式实时计算系统,主要用于处理大规模数据流。该文档对 Storm 的学习笔记,总结了 Storm 的架构、组件、工作流程等关键知识点。 一、Storm 架构 Storm 的架构主要由四个组件组成...

    storm配置文档.pdf

    ### Storm配置文档 #### 1. Storm集群基础配置 - Storm集群由主节点(Master)和从节点(Slave)组成,主节点负责协调和管理,从节点负责执行计算任务。 - 示例中提供的IP地址和角色如下: - node1: ***.**.***.**...

    storm性能测试文档

    标题 "storm性能测试文档" 暗示了我们即将探讨的是Apache Storm这一分布式实时计算系统的性能测试方面。Apache Storm是一个开源的流处理框架,广泛应用于实时数据处理、大数据分析和在线机器学习等领域。性能测试是...

    storm配置文档[借鉴].pdf

    storm配置文档[借鉴].pdf

    storm配置文档[整理].pdf

    storm配置文档[整理].pdf

    Apache Storm-0.8.1 API 参考文档 ( Html版 )

    这份Apache Storm 0.8.1的API参考文档详细阐述了如何创建、提交和管理Topologies,以及如何定义Spouts、Bolts和数据流分发策略。通过深入学习和理解这些API,开发者可以有效地利用Storm构建高性能的实时数据处理应用...

    Storm官方FAQ翻译

    ### Storm最佳实践与常见问题解答 #### 一、配置Storm + Trident的最佳实践 Apache Storm 是一个用于实时数据处理的强大框架,而Trident是其提供的一个高级API层,它提供了更强大的容错能力和易于理解的编程模型。...

    storm-doc-zh:Apache Storm官方文档中文版

    风暴1.1.0中文文档 Apache Storm是一个免费的,开源的,分布式的实时计算系统。注意(注意)在最新版本中,类包已经从“ backtype.storm”更改为“ org.apache.storm”了,所以使用旧版本编译的拓扑代码不会像在...

    Apache Storm-0.8.1 api文档 (html)

    在 Apache Storm 0.8.1 版本中,API 文档提供了对这些关键概念的深入理解。以下是一些主要知识点: 1. **拓扑(Topology)**:拓扑是 Storm 的核心,定义了数据流如何在系统中传输和处理。它由一系列 bolts 和 ...

    storm项目-流数据监控系列1《设计文档》

    分别为1、storm项目-流数据监控系列1《设计文档》2、storm项目-流数据监控系列2《代码解析》 3、storm项目-流数据监控系列3《实例运行》4、storm项目-流数据监控系列4《MetaQ接口》5、storm项目-流数据监控系列5...

    storm集群部署文档

    ### Storm集群部署知识点 #### 一、Storm集群简介 Apache Storm 是一款开源的分布式实时计算系统,它提供了简单而强大的API来处理无限的数据流。Storm的设计使其能够支持各种类型的流处理应用,包括实时分析、在线...

    storm入门.pdf

    除了书籍《Getting Started with Storm》之外,还有一些社区和网站提供了Storm的使用文档和教程,这些都是学习Storm技术的宝贵资源。在实践中,开发者应重视对Storm各种术语的准确理解和运用,例如spout、bolt、...

Global site tag (gtag.js) - Google Analytics