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 stormclass 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官方帮助手册翻译(上)
Storm作为当前最流行的实时计算框架,自Twitter将其开源后就一直备受关注.由于其具有先天的稳定性以及便捷性,目前被许多大公司所采用,国外像雅虎.雅虎日本.Twitter.OOYALA.Spot ...
- Caffe2官方使用手册翻译
详细教程见点击这里 http://www.jianshu.com/c/cf07b31bb5f2
- MariaDB官方手册翻译
MariaDB官方手册 翻译:create database语句(已提交到MariaDB官方手册) 翻译:rename table语句(已提交到MariaDB官方手册) 翻译:alter table语 ...
- Hive官方使用手册——新Hive CLI(Beeline CLI)
Hive官方使用手册——新Hive CLI(Beeline CLI) https://blog.csdn.net/maizi1045/article/details/79481686
- Java垃圾回收手册翻译 - 什么是垃圾回收
Java垃圾回收手册翻译 - 什么是垃圾回收 初看之下,垃圾回收应该要做其名称之事 - 找到和丢掉垃圾.然而事实上它正好做着相反的事,垃圾回收会记录所有仍在使用中的对象,然后将其他标记为垃圾.谨记这点 ...
- Hive官方手册翻译(Getting Started)
翻译Hive官方文档系列,文中括号中包含 注: 字样的,为我自行标注的,水平有限,翻译不是完美无缺的.如有疑问,请参照Hive官方文档对照查看. 内容列表 Cloudera制作的Hive介绍视频 ...
- Hive官方手册翻译(Getting Started)(转)
原文:http://slaytanic.blog.51cto.com/2057708/939950 翻译Hive官方文档系列,文中括号中包含 注: 字样的,为我自行标注的,水平有限,翻译不是完美无缺的 ...
- Hive 官方手册翻译 -- Hive Transactions (Hive 事务)
由 Alan Gates创建, 最终由 Andrew Sherman修改于2018年8月7日 原文链接:https://cwiki.apache.org/confluence/display/Hive ...
- Hive 官方手册翻译 -- Hive DDL(数据定义语言)
Hive DDL(数据定义语言) Confluence Administrator创建, Janaki Lahorani修改于 2018年9月19日 原文链接 https://cwiki.apache ...
随机推荐
- RabbitMQ队列
AMQP ,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.消息中间件主要用于组件之间的解耦,消息的发送者无 ...
- usaco 17.Jan 铜组T3
上午在打usaco月赛的铜组题,T1T2是用来秒杀的,然而T3卡了一上午,下面给出题面: 题意大概就是输入一个N*N的矩阵,矩阵中元素只有0与1两种状态,每次操作以左上角的点为矩阵中某一矩阵的左上方顶 ...
- oracle 行专列
首先,做准备工作. 建表 -- Create table create table DEMO ( n_iden NUMBER, c_order_code NVARCHAR2(), c_order_na ...
- mui 访问手机自带是否连接网络
//mui检测是否连接网络 function getSysInfo() { // var str = ""; // str += "名称:" + plus. ...
- JSON.parse() JSON.stringify() eval() jQuery.parseJSON() 的区别
http://www.jb51.net/article/81880.htm : jQuery.parseJSON(jsonString) : 将格式完好的JSON字符串转为与之对应的Java ...
- openstack私有云布署实践【16.2 Ubuntu1404 只有根分区镜像制作】
之所以要只有根分区镜像,是因为在创建VM或者调整云主机的硬盘大小时,它能自动扩容.无需人工介入 在原来的物理机10.40.41.1的CentOS 6.7上制作镜像. 宿主机坱要安装KVM相关软件: ...
- 淘淘商城_day02_课堂笔记
今日大纲 学习Nginx的使用 实现商品的管理 新增商品 查询商品列表 编辑商品 删除商品 上架和下架商品 学习nginx 开发阶段中的环境 开发环境:自己的电脑 测试环境:提供给测试人员使用的环境 ...
- L2-004. 这是二叉搜索树吗?
L2-004. 这是二叉搜索树吗? 题目链接:https://www.patest.cn/contests/gplt/L2-004 这题我的方法是先递归判定是不是二叉搜索树(镜像),再建树输出. 代码 ...
- Inverse属性和cascade属性以及集合的多对多关系
Inverse属性 Inverse属性,是在维护关联关系的时候起作用的. 表示控制权是否转移.(在一的一方起作用) Inverse = true, 控制反转. Inverse = false 不反转 ...
- App提交Appstore审核流程【转】
这是一个app提交到iTunces Connect被拒了4次摸索出来的经验,说多了都是泪,先让我擦擦...好了,话不多说,为了让中国的app不再那么容易被拒,或者被拒了不知道该咋办,我把我的小经验在这 ...