Storm官方帮助手册翻译(下)

Posted 唐僧吃肉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Storm官方帮助手册翻译(下)相关的知识,希望对你有一定的参考价值。

使用其他语言编写Bolt

    Bolt可以使用任意语言编写。用另外一种语言编写Bolt来作为子进程运行。Storm会在标准输入输出的基础上使用Json来与子进程通信。通信协议之需要一个100行的适配器库,Storm自带了Ruby,Python,和Fancy的适配器库。

    下面是WordCountTopology中SplitSentence的定义:

1
2
3
4
5
6
7
8
9
public static class SplitSentence extends ShellBolt implements IRichBolt {
    public SplitSentence() {
        super("python""splitsentence.py");
    }
 
    public void declareOutputFields(OutputFieldsDeclarer declarer) {
        declarer.declare(new Fields("word"));
    }
}

 

   SplitSentence集成了ShellBolt并且通过"splitsentence.py"参数来指定使用python来运行。下面是splitsentence.py的具体实现:

1
2
3
4
5
6
7
8
9
import storm
 
class SplitSentenceBolt(storm.BasicBolt):
    def process(self, tup):
        words = tup.values[0].split(" ")
        for word in words:
          storm.emit([word])
 
SplitSentenceBolt().run()

 

  更多的关于使用其他语言写Spout和Bolt的信息,以及了解如何使用其他语言(完全避免使用JVM)创建Topology,查看Using non-JVM languages with Storm

 保证消息处理

    前文中我们调过了一些关于元组如何发射的概念。这些概念是Storm 可靠性的 一部分:Storm是如何保证每个消息被完全难处理的。阅读 Guaranteeing message processing一文来了解它是如何工作的,而且作为一个使用者应该如何利用Storm的可靠性。

事物Topology

    Storm保证每个消息都会被Topology处理至少处理一次。一个常见的问题是 “如何熟练使用Storm进行计数?会不会重复计数?”Storm有一个叫事物Topology的特性让你在大多数计算中精确处理消息。点击这里获取更多的关于事物Topology的信息。

 分布式RPC

    本文档介绍了如何熟练使用Storm做基本的流处理。你还可以使用Storm做更多的事情。Storm中一个比较有意思的程序是分布式RPC,你可以使用它来进行并行计算。点击这里获取更多的关于分布式RPC的信息。

总结

    本手册提供了开发、测试和不是Storm Topology的概览,其他的文档将更深入的了解Storm使用的各个方面

译者语

     经过多半天的努力,终于完成了文档的翻译,后续会继续带来更多的技术翻译,如Zookeeper,Spark,Kafa等。文中若有翻译不妥之处,望指正,大家共同进步

以上是关于Storm官方帮助手册翻译(下)的主要内容,如果未能解决你的问题,请参考以下文章

Storm官方文档翻译之在生产环境集群中运行Topology

Storm官方文档翻译之创建Storm项目

Storm 官方文档翻译 --- 消息的可靠性保障

Python 程序员快速学 Go+ 系列,第一篇+官方手册翻译

翻译:SET子句(已提交到MariaDB官方手册)

翻译:DECLARE Variable(已提交到MariaDB官方手册)