`
wbj0110
  • 浏览: 1610566 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

storm常见问题解答(转 )

阅读更多

一、我有一个数据文件,或者我有一个系统里面有数据,怎么导入storm做计算?

你需要实现一个Spout,Spout负责将数据emit到storm系统里,交给bolts计算。怎么实现spout可以参考官方的kestrel spout实现:
https://github.com/nathanmarz/storm-kestrel

如果你的数据源不支持事务性消费,那么就无法得到storm提供的可靠处理的保证,也没必要实现ISpout接口中的ack和fail方法。

二、Storm为了保证tuple的可靠处理,需要保存tuple信息,这会不会导致内存OOM?

Storm为了保证tuple的可靠处理,acker会保存该节点创建的tuple id的xor值,这称为ack value,那么每ack一次,就将tuple id和ack value做异或(xor)。当所有产生的tuple都被ack的时候, ack value一定为0。这是个很简单的策略,对于每一个tuple也只要占用约20个字节的内存。对于100万tuple,也才20M左右。关于可靠处理看这个:
https://github.com/nathanmarz/storm/wiki/Guaranteeing-message-processing

三、Storm计算后的结果保存在哪里?可以保存在外部存储吗?

Storm不处理计算结果的保存,这是应用代码需要负责的事情,如果数据不大,你可以简单地保存在内存里,也可以每次都更新数据库,也可以采用NoSQL存储。storm并没有像s4那样提供一个Persist API,根据时间或者容量来做存储输出。这部分事情完全交给用户。

数据存储之后的展现,也是你需要自己处理的,storm UI只提供对topology的监控和统计。

四、Storm怎么处理重复的tuple?

因为Storm要保证tuple的可靠处理,当tuple处理失败或者超时的时候,spout会fail并重新发送该tuple,那么就会有tuple重复计算的问题。这个问题是很难解决的,storm也没有提供机制帮助你解决。一些可行的策略:
(1)不处理,这也算是种策略。因为实时计算通常并不要求很高的精确度,后续的批处理计算会更正实时计算的误差。
(2)使用第三方集中存储来过滤,比如利用mysql,memcached或者redis根据逻辑主键来去重。
(3)使用bloom filter做过滤,简单高效。

五、Storm的动态增删节点

我在storm和s4里比较里谈到的动态增删节点,是指storm可以动态地添加和减少supervisor节点。对于减少节点来说,被移除的supervisor上的worker会被nimbus重新负载均衡到其他supervisor节点上。在storm 0.6.1以前的版本,增加supervisor节点不会影响现有的topology,也就是现有的topology不会重新负载均衡到新的节点上,在扩展集群的时候很不方便,需要重新提交topology。因此我在storm的邮件列表里提了这个问题,storm的开发者nathanmarz创建了一个issue 54并在0.6.1提供了rebalance命令来让正在运行的topology重新负载均衡,具体见:
https://github.com/nathanmarz/storm/issues/54
和0.6.1的变更:
http://groups.google.com/group/storm-user/browse_thread/thread/24a8fce0b2e53246

storm并不提供机制来动态调整worker和task数目。

六、Storm UI里spout统计的complete latency的具体含义是什么?为什么emit的数目会是acked的两倍?
这个事实上是storm邮件列表里的一个问题。Storm作者marz的解答:

The complete latency is the time from the spout emitting a tuple to that
tuple being acked on the spout
. So it tracks the time for the whole tuple

tree to be processed.

If you dive into the spout component in the UI, you'll see that a lot of
the emitted/transferred is on the __ack* stream. This is the spout
communicating with the ackers which take care of tracking the tuple trees. 


简单地说,complete latency表示了tuple从emit到被acked经过的时间,可以认为是tuple以及该tuple的后续子孙(形成一棵树)整个处理时间。其次spout的emit和transfered还统计了spout和acker之间内部的通信信息,比如对于可靠处理的spout来说,会在emit的时候同时发送一个_ack_init给acker,记录tuple id到task id的映射,以便ack的时候能找到正确的acker task。

分享到:
评论

相关推荐

    Storm Blueprints.Patterns

    4. **模式设计**:书中可能涵盖了多种常见的Storm应用模式,如窗口化处理、状态管理、复杂事件处理(CEP)、实时聚合等,以及如何根据业务需求选择合适的模式。 5. **开发与部署**:指导读者如何编写、测试和优化...

    Jabra捷波朗Storm 弦月3用户手册.pdf

    在遇到任何使用上的问题时,用户手册提供了详尽的常见问题解答(FAQ)部分,帮助用户自行解决大部分问题。若问题依旧无法解决,用户可联系Jabra Storm官方客服以获得专业协助。 综上所述,《Jabra捷波朗Storm 弦月3...

    Jabra捷波朗Storm 弦月3快速说明书.pdf

    如果遇到问题,用户可以通过访问Jabra官方网站的support页面获取更多帮助,包括下载手册、故障排除、常见问题解答和视频教程。 总的来说,Jabra捷波朗Storm 弦月3是一款功能齐全、易于使用的蓝牙耳机,提供了多种...

    Storm第02天

    3. **笔记.txt** - 学习笔记,记录了学习过程中的要点、问题解答或者是对Storm概念的解释,对于巩固理解非常有帮助。 4. **StormDemo** - 这可能是一个Storm项目的实例,包含了一个完整的拓扑定义,用于演示如何创建...

    kafka-storm-starter-develop

    5. **文档**:可能会有关于如何运行示例、配置说明以及常见问题解答的文档。 ### 开发流程 1. **设置环境**:安装 Java、Maven 或 Gradle,配置 Kafka 和 Storm 的环境。 2. **构建项目**:使用构建工具(如 Maven...

    Storm官方FAQ翻译

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

    大数据常见面试题(2019版)

    以下是一些可能的面试问题及其详细解答: 1. **Java内存模型与垃圾回收** - Java内存分为堆内存和栈内存。堆内存存储对象实例,栈内存存储基本类型和对象引用。 - 垃圾回收是Java自动内存管理的一部分,负责回收...

    《分布式计算、云计算与大数据》习题参考解答

    通过对这份习题参考解答的学习,学生不仅可以巩固课堂所学,还能了解到这些技术在实际问题中的应用,为未来在分布式计算、云计算和大数据领域的实践打下坚实基础。同时,解决课后习题有助于培养独立思考和解决问题的...

    Hadoop常见的45个面试题

    在大数据处理领域,Hadoop是不可或缺的关键技术之一。作为一个专业的IT大师,我很高兴为你...在实际面试中,你可能会遇到关于这些概念的深入问题,如具体配置参数、性能调优、故障排查等,都需要根据实际情况进行解答。

    hadoop_hbase_pig

    文件列表中的"hbase.txt"可能包含了HBase的安装指南、配置参数、操作命令或常见问题解答;"pig.txt"可能涵盖了Pig Latin语法、Pig UDF(用户自定义函数)的开发以及Pig在实际数据分析中的应用示例;"hadoop.txt"可能...

    BlackBerry9500中文教程

    - **相机和摄像机疑难解答**:解决相机使用中的常见问题。 #### 多媒体功能 - **传输和下载多媒体文件**:介绍如何传输和下载多媒体文件到设备上。 - **播放多媒体文件和录制语音消息**:播放音乐、视频以及录制...

    (英语)高三英语阅读理解试题经典及解析 (2).doc

    4. "The calm before the storm":这是一个常见的英语表达,不仅用于描述实际天气状况,也常用来描绘在事件爆发前的宁静状态,预示着即将到来的冲突或问题。 5. "Eye of the storm":在气象学中,这是飓风中心相对...

    暴风影音三

    而 `Readme-说明.htm` 文件通常包含了关于软件的详细信息,包括安装指南、许可协议、可能的系统要求以及常见问题解答。用户在安装前应仔细阅读这个文件,确保软件的正确安装和使用。 总的来说,暴风影音3是一个针对...

    RepData_PeerAssessment2

    国家气象局风暴数据文档国家气候数据中心风暴事件常见问题解答数据库中的事件始于1950年,到2011年11月结束。在数据库的较早年份中,通常记录的事件较少,这很可能是由于缺少良好的记录。 最近的几年应该被

    算法题.zip

    【算法题.zip】这个压缩包文件集合了多个与IT领域高度相关的资料,...然而,值得注意的是,这个压缩包中并未提供答案,因此在学习过程中需要自己寻找解答,通过实践来加深理解,这无疑也是提升自身能力的一个好方法。

    京东-王哲涵-京东大数据平台进化之路.pdf

    3. **智能客服**:通过自然语言处理技术,京东构建了智能客服系统,能够自动解答用户的常见问题,提高客户服务效率。 #### 七、结论 京东大数据平台的成功构建不仅依赖于先进的技术体系,更重要的是持续的技术创新...

    九年级英语上学期第十五周周考试题1(无答案) 人教新目标版 试题.doc

    - (B)部分包含了一些常见的英语句型,如“以...为基础”(be based on),“上交”(hand in),地球围绕太阳转(rotate around),搜索(search for),以...命名(named after),相距(at a distance of)等。 3. 语法知识...

    mycat-权威指南.pdf

    本章集中解答了Mycat用户可能遇到的问题,并提供了相应的解决方案。 ### 第12章 MYCAT性能测试指南 本章提供Mycat性能测试的方法和建议,帮助用户评估Mycat在实际使用中的表现。 ### 高级进阶篇 #### 第1章 读写...

    流行的python项目汇总.docx

    - python_koans:它是一个交互式的Python学习教程,通过问题和解答的方式帮助用户掌握测试驱动开发(TDD)。 - sure:专门用于自动化测试的库,提供了流畅的断言和深度响应,简化测试编写。 - responses:这个库...

Global site tag (gtag.js) - Google Analytics