2019独角兽企业重金招聘Python工程师标准>>>

如何使用自定义配置文件?

开发storm应用时可能需要用到自身的配置文件。storm.yaml只能提供给storm自身的配置系统使用。针对后台最广泛使用的ini配置文件,推荐使用ini4j。它是一个轻量的ini配置文件读取器、具有简单易懂的api。

请在spout和bolt的prepare方法中读取配置文件。任何资源类的初始化都需要放到prepare方法中(比如数据库连接,和读取文件索引类等)。

程序部署中的注意事项

I 打包storm程序请不要把依赖打进去,依赖需要单独部署;

II 你需要一种有效的机制将程序的依赖包分发到所有的storm节点上(可上传到nimbus,通过rsync做目录同步);

III 你需要分发的依赖包集合=你的程序所有的依赖包集合 ?  storm依赖包与你的依赖包的交集(否则topology会初始化失败)

IV 在所有supervisor节点上自定义配置文件的内容和路径需要完全一致,路径不一致topology会初始化失败,内容不一致,程序的行为则是未定义的;

如何使用日志系统?如何debug?

在经过一番辛勤劳动之后,你的程序编译成功了。但是,这不代表着它会按照你设定的行为去运行。如何debug成为了一个问题。

最基本也是最原始的思路就是log。在所有你认为可能出错的地方log(尤其是在prepare方法中,这里通常做的是资源类的初始化,如果它们初始化失败,topology则会初始化失败,这样能帮助你快速定位到错误原因)。

Storm默认与log4j集成。你可以再$STORM_HOME/log4j/目录下找log4j的配置文件。通过调整它来控制log4j的行为。

不要急于在真实环境下部署你的程序。想要测试的话,还是首先在Local mode模式下观察吧。如果在local mode下测试的结果是符合预期的,而在真实环境下出错,一般应是非代码的因素造成的。你需要检查节点的资源文件、自定义配置文件、依赖包等等。此外在local mode下,所有日志打印信息是直接输出到屏幕上的,这样方便你看的更加清楚。

下面介绍下storm日志的结构:

所有的日志文件都存放在$STORM_HOME/logs/路径下。

在nimbus节点上:nimbus.log记录的是nimbus启动过程中的输出信息,包括启动时间和各个worker和task初始化过程中打印信息等等。ui.log则记录的storm监控程序启动过程中的输出信息,包括启动时间等等。

在supervisor节点上:supervisor.log记录的则是supervisor的相关启动信息。worker-XXX(一个supervisor节点通常部署了多个worker)记录的是消息传递、和任务执行过程中的输出信息(也就是你代码中的日志打印部分)。storm的设计目标之一是让任务(task)部署对用户透明。这样造成了:当你需要观察一个task的日志输出信息时,你不知道到哪个节点的哪个日志文件去找这个信息。因此,还是强烈建议在local mode下debug你的程序,然后在真实环境做好日志告警。

转载于:https://my.oschina.net/u/2300159/blog/381295

storm日志bebug问题相关推荐

  1. Storm(一)集群搭建

    2019独角兽企业重金招聘Python工程师标准>>> 系统环境: 192.168.33.17 192.168.33.18 192.168.33.19 基本软件包: zookeepe ...

  2. 携程基于Storm的实时大数据平台实践

    来源:http://mp.weixin.qq.com/s?__biz=MzI4OTU3ODk3NQ==&mid=2247483881&idx=1&sn=04971941bf57 ...

  3. Storm消费Kafka异常 - topic其中两个分区达到某个值不进行消费,持续阻塞

    Kafka消费storm,突然有两个分区无法消费数据(或重复消费无法提交offset) offset是我们自己进行管理,kafka日志也是正常没有报错,storm日志也是没有报错~ 就是卡住了 1.尝 ...

  4. Java程序员须知的七个日志管理工具

    本文由 ImportNew - 赖 信涛 翻译自 takipiblog.欢迎加入翻译小组.转载请见文末要求. Splunk vs. Sumo Logic vs. LogStash vs. GrayLo ...

  5. 大数据技术之_17_Storm学习_Storm 概述+Storm 基础知识+Storm 集群搭建+Storm 常用 API+Storm 分组策略和并发度

    大数据技术之_17_Storm学习 一 Storm 概述 1.1 离线计算是什么? 1.2 流式计算是什么? 1.3 Storm 是什么? 1.4 Storm 与 Hadoop 的区别 1.5 Sto ...

  6. 华为抓取错误日志在哪里_Java程序员须知的七个日志管理工具,提高排查错误效率...

    Java识堂,一个高原创,高收藏,有干货的微信公众号,一起成长,一起进步,欢迎关注 Splunk vs. Sumo Logic vs. LogStash vs. GrayLog vs. Loggly ...

  7. Hadoop 单节点 伪分布 安装手记

    实验环境 CentOS 6.X Hadoop 2.6.0 JDK    1.8.0_65 目的 这篇文档的目的是帮助你快速完成单机上的Hadoop安装与使用以便你对Hadoop分布式文件系统(HDFS ...

  8. storm_常用命令

    1)nimbus:启动nimbus守护进程 storm nimbus 2)supervisor:启动supervisor守护进程 storm supervisor 3)ui:启动UI守护进程. sto ...

  9. 发现kafka丢消息后的排查

    背景: 最近在用kafka做消息中间件,producer从hive中读取消息发送到kafka,后端storm对消息分类发送到elasticsearch建立索引. 问题: hive表中总共350万数据, ...

最新文章

  1. 手把手教你使用TF服务将TensorFlow模型部署到生产环境
  2. IOS--设计更丰富的界面
  3. JAVA——一次性读取或者写入文本文件所有内容
  4. MFC中的DC,CDC和HDC
  5. java linq_LINQ和Java
  6. 我们多么想要新的Java日期/时间API?
  7. linux 调优系列(续)
  8. 201521123028 《Java程序设计》第5周学习总结
  9. 用python编程、假设一年期定期利率_《Python程序设计》题库.pdf
  10. 温度控制直流电动机的c语言,温度控制直流电动机转速系统设计报告
  11. Java字节码插桩玩法(Javassist)
  12. AGND和GND_SIGNAL之间的隔离_PCB
  13. cad没有命令输入框_cad2017命令输入框没了
  14. 证券交易系统 -- 为什么要低延迟?
  15. python 矩阵求转置、行列式、迹、求逆
  16. Kubernetes K8S之资源控制器Job和CronJob详解
  17. 数学 立方和公式 立方差公式
  18. 怎么删除w7桌面计算机图标,桌面图标删除不了_Win7桌面有图标删不掉怎么办
  19. NPI (Neural Program Interpreter) 逆波兰表达式--什么是逆波兰表达式
  20. bat脚本代码,一键修改网卡的dns地址和恢复为DHCP获取的方式

热门文章

  1. 从背包问题优化详解动态规划思想
  2. 计算机组成实验微程序控制器实验,计算机组成原理实验报告3++微程序控制器实验.doc...
  3. php会不会被人工智能取代,为什么这9种工作不会被人工智能取代?
  4. 如何安装php5.5,源码安装php5.5
  5. vue 同级页面调用方法_【Vue】一个vue页面调用另一个vue页面中的方法
  6. android 本地图片分享,Android 把图片保存到本地相册
  7. html div bgcolor,HTML body bgcolor transparent
  8. telnet远程登陆、mstsc远程控制、SSH之间的比较和区别
  9. 架构风格与基于网络的软件架构设计
  10. C++ 使用模板Template