★ yaml跟我们一般用的属性配置文件有所不同, 它的要求更严格一些, 因此在往conf/storm.yaml中添加配置的时候必须注意.
比如必须注意开始位置和冒号后面的空格, 否则配置不会生效. 关于yaml相关的资料, 网上有很多资料可以参考
如何检查配置是否生效, 可以使用命令: storm localconfvalue 配置关键字
但是这个命令只能在nimbus上生效, 在supervisor看到的还是默认值. 不知道为什么
★ 在部署storm节点的时候需要安装jzmq和0qm, 在安装这两个依赖包之后, 需要执行sudo -u root ldconfig. 否则会出现异常:
java.lang.UnsatisfiedLinkError: /usr/local/lib/libjzmq.so.0.0.0: libzmq.so.1: cannot open shared object file: No such file or
directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1803)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1728)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1028)
at org.zeromq.ZMQ.<clinit>(ZMQ.java:34)
这里有相关的讨论:
http://groups.google.com/group/storm-user/browse_thread/thread/656fb21d7166574d
★ 关闭nimbus相关进程:
kill `ps aux | egrep '(daemon\.nimbus)|(storm\.ui\.core)' | fgrep -v egrep | awk '{print $2}'`
★ 干掉supervisor上的所有storm进程:
kill `ps aux | fgrep storm | fgrep -v 'fgrep' | awk '{print $2}'`
★ 目前storm貌似不支持动态加载log4j配置文件, 每一个supervisor节点需要修改log4j/storm.log.properties文件来调整日志输出.
★ 在打包toplogy工程的时候, 如果采用assembly方式, 对于相关的依赖的配置一般要这样:
- <dependencySets>
- <dependencySet>
- <outputDirectory>/</outputDirectory>
- <unpack>true</unpack>
- <excludes>
- <exclude>storm:storm</exclude>
- </excludes>
- </dependencySet>
- </dependencySets>
wiki上说可以用<scope>compile</scope>. 然后将storm依赖设置为runtime, 貌似不行. 另外就是所有的依赖包将全部解压, 然后将所有依赖的配置和class文件生成一个文件. 这个是通过<unpack>true</unpack>参数来控制的.
★ 有时候supervisor的conf/storm.yaml参数设置不合理, 会导致worker无法起来的现象, 比如我碰到的一个例子是. 定义了worker.childopts(给了一个不合理的jvm参数). 结果导致worker反复启动, 而均不成功, 这里的日志信息也不明确, 只是说无法start, 但是没有给更详细的上下文信息.
-0611-427a-8e23-84fe25047dbd 6701 d7f8354d-9ec0-4272-aa0d-9260f7b0042f
2012-02-24 14:24:27 supervisor [INFO]
a17ff23e-00b2-4e51-9001-74664413d2dd still hasn't started
2012-02-24 14:24:28 supervisor [INFO]
a17ff23e-00b2-4e51-9001-74664413d2dd still hasn't started
2012-02-24 14:24:28 supervisor [INFO]
a17ff23e-00b2-4e51-9001-74664413d2dd still hasn't started
2012-02-24 14:24:29 supervisor [INFO]
a17ff23e-00b2-4e51-9001-74664413d2dd still hasn't started
★ 有问题直接上storm-user搜索相关帖子或者问Storm的作者Nathan Marz. 此人回答问题非常热心. 从提问人的id来看, 貌似中国人在上面问问题的非常多^_^
★在提交topology的时候有时可能出现如下异常:
at backtype.storm.utils.NimbusClient.<init>(NimbusClient.java:30)
at backtype.storm.utils.NimbusClient.getConfiguredClient(NimbusClient.java:17)
at backtype.storm.StormSubmitter.submitJar(StormSubmitter.java:78)
at backtype.storm.StormSubmitter.submitJar(StormSubmitter.java:71)
at backtype.storm.StormSubmitter.submitTopology(StormSubmitter.java:50)
at com.taobao.kaleidoscope.storm.IcdbTopology.main(IcdbTopology.java:59)
但是启动nimbus是没有问题的, 这个主要以为内conf_dir路径设置不正确, 在bin/storm脚本中需要加上这样一句:
- CONF_DIR = STORM_DIR + "/conf"
★Q:如何知道一个tuple的来源?
A:tuple.getSourceStramId()
相关推荐
最后,Storm异常处理是保证系统稳定运行的关键。有效的异常处理策略包括捕获并记录错误,以及在失败时自动重试或重新分配任务。理解并熟练应用这些技术,能帮助开发者构建更健壮的Storm拓扑。 总结来说,Storm的...
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学...基于Storm+Esper架构实现的证券异常交易行为监控系统源码+项目说明(支持金证交易系统的指令拦截 、复制与解析).zip
2. **流式数据处理**:如日志收集、实时监控,及时响应异常情况。 3. **消息路由**:结合Flume或Kafka,构建高效的数据传输和处理管道。 通过对Storm的学习,我们可以理解实时数据处理的核心原理,掌握如何构建和...
- **实时处理**:用Bolt进行实时计算,如实时统计、异常检测或实时报表生成。 - **数据持久化**:将处理后的结果存储到数据库(如HBase、Cassandra)、消息队列(如Kafka)或其他数据存储中。 - **容错机制**:利用...
5. 错误处理:处理可能发生的异常,如网络问题或数据冲突。 五、优化策略 1. 数据分区:根据数据的属性进行分区,减少写入 HBase 时的争用,提高性能。 2. 并行度调整:适当增加 Bolt 的并行度,以提高处理速度。 3...
这部分可能涉及信用评分模型、异常交易检测算法,以及如何在Storm中实现这些复杂的业务逻辑。 六、Storm之猜你喜欢推荐系统实战 推荐系统是提高用户体验和转化率的关键技术。在这里,Storm被用来构建实时推荐引擎,...
- 实现正确的失败恢复机制,确保在异常情况下能正确重放未处理的数据。 2. **Bolt开发规范**: - Bolt的设计应尽可能高效,避免不必要的计算和内存消耗。 - 遵循合适的并行度设置,以平衡资源利用和处理速度。 ...
9. **监控和管理**:通过Storm UI监控拓扑运行情况,如有异常,可使用`storm kill`命令停止拓扑,或`storm list`查看当前运行的拓扑。 集群搭建完成后,需要注意监控集群的健康状况,包括资源利用率、网络延迟、...
- **并发度与线程安全**:深入分析并发度设置的重要性以及如何保证线程安全,避免数据处理过程中的错误和异常。 - **批处理事务**:介绍Storm Trident提供的批处理事务机制,提高数据处理的一致性和可靠性。 - **...
7. **数据清洗和预处理**:在处理基站数据前,可能需要进行数据清洗,去除异常值,标准化格式等,以便后续分析。 8. **数据分析与算法**:计算掉话率可能涉及特定的统计算法,例如滑动窗口计数、比率计算等。理解并...
最后,一个完整的测试流程应该包括对异常情况的模拟,以确保Web服务在面对异常输入或网络问题时也能正确响应。 总的来说,"Storm_WebService.zip"提供的内容旨在帮助开发者建立一个可靠的、能够处理实时数据流的Web...
在本项目中,热力图主要用于展示实时数据流中的热点区域,有助于快速识别关键信息或异常情况。 #### 三、项目设计与实现 **1. 系统架构设计** - **数据采集层**:负责收集来自不同源的实时数据流,如传感器数据、...
- 使用工具进行全方位的测试,包括边界条件、异常处理和性能测试。 - 定期更新和维护测试用例,以适应服务的变化。 总之,Storm_r1.1-Adarna是Web Service开发者的重要助手,它简化了调试过程,提高了开发效率。...
5. 错误检测:高亮显示错误或异常,便于快速定位问题。 6. 会话管理:保存和重放请求,方便复现问题或回归测试。 7. 日志记录:跟踪请求历史,便于追踪和调试。 8. 自动化测试:通过脚本或预定义的测试套件执行批量...
- 日志分析:实时处理和分析服务器日志,发现异常行为。 - 电商推荐:实时用户行为分析,提供个性化推荐。 7. **与其他技术的集成** - Storm可以与Hadoop、Cassandra、Kafka等大数据技术结合,构建端到端的...
这包括验证请求和响应格式、处理异常情况、以及性能和负载测试等。 Storm_r1.1-Adarna作为一款测试工具,提供以下关键特性: 1. **易用性**:工具设计简洁,易于上手,使得非专业测试人员也能快速进行Web服务接口...
这些日志数据可以进一步分析,例如,通过实时分析日志数据来检测系统的异常行为,进行故障预警。 **电商交易系统** 在电商交易系统中,实时处理能力至关重要。例如,订单创建、支付确认、库存更新等都需要实时处理...
Bolt可以执行计数、过滤或其他复杂操作,如计算每分钟的点击次数,或者识别异常行为。 3. **资源调度**:在YARN上部署Storm拓扑,YARN会根据资源需求和集群状态来调度和管理Storm的工作节点(worker)。 4. **离线...
- **物联网(IoT)**:实时处理传感器数据,进行设备监控和异常检测。 - **广告定向**:根据用户行为实时推送个性化广告。 **4. Storm的实时处理优势** - **低延迟**:Storm设计的目标是亚秒级的延迟,非常适合对...