`
xuwenq
  • 浏览: 6643 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

twitter storm的多语言组件(1)

阅读更多
  Twitter Storm(https://github.com/nathanmarz/storm)是一个分布式实时计算系统,作者使用clojure和java来编写系统;因此storm默认支持使用clojure和java来编写计算任务。但在系统设计和实现上,作者考虑到了各种跨语言的场景,因此也提供了使用其他非JVM语言编写storm任务的机制。
  使用其他语言,如c++,python来编写storm计算任务的主要方法可以参见Storm wiki上的说明(https://github.com/nathanmarz/storm/wiki/Using-non-JVM-languages-with-Storm)。这篇wiki说的有点饶,据我理解其基本流程如下:
 
  • 使用A语言实现多语言协议 https://github.com/nathanmarz/storm/wiki/Multilang-protocol; 其实是实现一些消息收发和解析的方法,可以参考官方已经实现的python版本和ruby版本;
  • 使用A语言编写spout和bolt,实现计算逻辑;(如一些特定的语言可能得预先在服务器上装环境,或者能将运行时所需的lib都打包到可执行文件中)
  • 使用A语言实现topology (参考storm.thrift中的topology设定); spout和bolt可以和topology写到一个文件里
  • 使用storm shell(这个命令在shell command wiki里都没详细介绍)将资源文件和代码文件打包并提交,如对于python语言,
  •         storm shell resources/ python topology.py arg1 arg2
            这条命令首先将 resources/下的文件打成jar包传到nimubs服务器上,然后再调用:
             python topology.py arg1 arg2 {nimbus-host} {nimbus-port} {uploaded-jar-location} 命令启动topology。
             因此你需要在topology实现topo的组装和提交,即组装一个StormTopology,并且使用这个thrift函数来提交topology到nimbus:
             void submitTopology(1: string name, 2: string uploadedJarLocation, 3: string jsonConf, 4: StormTopology topology)
        throws (1: AlreadyAliveException e, 2: InvalidTopologyException ite);
分享到:
评论

相关推荐

    Twitter storm

    ### Twitter Storm:实时计算系统详解 #### 背景与定义 Twitter Storm 是一款由Apache基金会维护的开源分布式实时计算系统。它最初由BackType公司开发,并于2011年开源,随后被Twitter收购并进一步发展。Storm 的...

    基于Java的实例源码-开放实时数据处理平台 Twitter Storm.zip

    标题"基于Java的实例源码-开放实时数据处理平台 Twitter Storm.zip"揭示了我们讨论的主题是Twitter Storm,一个用于实时数据处理的开源平台,其核心实现是用Java编程语言编写的。这个压缩包包含了Nathan Marz开发的...

    基于Java的开放实时数据处理平台 Twitter Storm.zip

    4. **拓扑结构**:在Storm中,数据处理逻辑被组织成拓扑结构(topology),由多个“bolt”(处理组件)和“spout”(数据源)组成。Spouts负责生成数据流,bolts则对数据进行处理、聚合或转发。 5. **容错与持久化*...

    基于java的开放实时数据处理平台 Twitter Storm.zip

    【描述】"基于Java的开放实时数据处理平台Twitter Storm"强调了其编程语言基础和实时处理能力。Java作为企业级应用的首选语言,为Storm提供了强大的跨平台能力和丰富的库支持。Storm的设计使得它可以处理无界数据流...

    java源码:开放实时数据处理平台 Twitter Storm.zip

    在Storm的架构中,数据流被分成多个** bolts **(处理组件),这些组件通过** spouts **(数据源)接收数据,然后进行一系列处理。Bolts可以执行复杂的业务逻辑,如过滤、聚合、Join操作等,而Spouts则负责从外部...

    storm入门.pdf

    1. 分布式:它可以在多台机器上分布式执行。 2. 可靠性:能够保证每个消息至少被处理一次。 3. 容错性:当工作节点失败时,任务可以自动重新分配。 4. 实时性:可以对流式数据进行实时处理。 5. 易于扩展:可以灵活...

    开放实时数据处理平台 Twitter Storm源码

    7. **编程语言**:Twitter Storm支持多种编程语言,包括Java、Clojure和Python,这使得开发人员可以根据自己的熟悉程度选择合适的语言进行开发。 8. **社区与生态**:作为开源项目,Twitter Storm拥有活跃的社区,...

    从零开始学Storm.pdf

    6. 编程语言无关:Storm支持使用任何编程语言来定义拓扑和处理组件,这为不同背景的开发人员提供了便利。 在架构上,Storm使用ZooKeeper进行集群协调,支持分布式消息队列和数据库技术。Storm中的Topology负责消耗...

    细细品味Storm_Storm简介及安装

    未来,Storm将进一步优化其性能和可靠性,增强对更多编程语言的支持,并与其他大数据生态系统更好地集成。 #### 二、Storm安装 **2.1 版本选择** 在安装之前,应先了解所需的Storm版本及其兼容性。通常建议使用...

    storm 从零到精通 非常实用的文件

    - Storm 提供了多语言支持,开发者可以选择适合项目的编程语言。 - **3.10.1 支持的非 Java 语言** - 包括 Python、Ruby、Go 等多种语言。 - **3.10.2 对 Storm 使用非 Java 语言** - 使用非 Java 语言编写组件时...

    storm-starter-master

    Apache Storm的工作原理基于一个由多个节点组成的集群,其中包含Supervisor、Nimbus和Worker节点。Supervisor负责管理物理机器上的worker进程,Nimbus是主控节点,负责任务调度和分配,而Worker则执行实际的计算任务...

    apache-storm-0.9.5源码

    1. Spout:Spout是Apache Storm的数据输入组件,负责从外部数据源(如Kafka、Twitter或数据库)读取数据并生成数据流。在源码中,`backtype.storm.spout`包包含了各种Spout的实现,如`KafkaSpout`用于从Kafka消费...

    从零开始学storm.pdf

    6. 编程语言无关:Storm支持使用任何编程语言定义拓扑和处理组件,目前主要使用Java和Clojure,其中Java用于定义骨架,Clojure编写核心逻辑。Python也是Storm的常用语言之一。 Storm的架构设计允许它处理消息和更新...

    storm一个简单实例

    - **Spout**:数据源,负责从外部源(如Kafka、Twitter等)拉取或接收数据,并将数据发布到Storm的各个工作节点。 - **Bolt**:处理组件,执行数据清洗、聚合、过滤等操作。 2. **实时处理**:Storm的强项在于...

    项目1-Storm安装与编程实践1

    - 多语言支持:开发者可以用Java、Python、Ruby等多种语言编写Storm应用。 - 快速部署:快速启动和运行,使得开发和测试流程更加高效。 - 开源免费:遵循Apache许可证,用户可以自由使用和修改源代码。 2. Storm...

    Storm实战培训教程.pptx

    Storm是一个开源的分布式实时计算系统,起源于Twitter的内部项目,后来在2011年开源,极大地推动了实时流处理的发展。它的主要特点是编程模型简单、可扩展、高可靠性和高容错性。Storm在实时分析、在线机器学习、...

    Storm分布式实时计算在物联网系统中的应用.pdf

    5. **多语言支持**:Storm支持Clojure、Java、Ruby、Python等编程语言,方便开发者根据需求选择合适的工具。 Storm的编程模型简单,借鉴了MapReduce的思想,使得实时处理变得更加容易。Spout和Bolt是核心组件,其中...

    Building Python Real-Time Applications with Storm - Kartik Bhatnagar.pdf.pdf

    第一部分介绍了Storm的基础知识,包括Storm诞生之前的数据处理背景,Storm的关键特性,如低延迟、容错和水平可扩展性,以及Storm的集群模式,开发者模式、单机模式和多机模式的介绍。此外,书中还涉及到了Storm集群...

Global site tag (gtag.js) - Google Analytics