storm日志bebug问题
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问题相关推荐
- Storm(一)集群搭建
2019独角兽企业重金招聘Python工程师标准>>> 系统环境: 192.168.33.17 192.168.33.18 192.168.33.19 基本软件包: zookeepe ...
- 携程基于Storm的实时大数据平台实践
来源:http://mp.weixin.qq.com/s?__biz=MzI4OTU3ODk3NQ==&mid=2247483881&idx=1&sn=04971941bf57 ...
- Storm消费Kafka异常 - topic其中两个分区达到某个值不进行消费,持续阻塞
Kafka消费storm,突然有两个分区无法消费数据(或重复消费无法提交offset) offset是我们自己进行管理,kafka日志也是正常没有报错,storm日志也是没有报错~ 就是卡住了 1.尝 ...
- Java程序员须知的七个日志管理工具
本文由 ImportNew - 赖 信涛 翻译自 takipiblog.欢迎加入翻译小组.转载请见文末要求. Splunk vs. Sumo Logic vs. LogStash vs. GrayLo ...
- 大数据技术之_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 ...
- 华为抓取错误日志在哪里_Java程序员须知的七个日志管理工具,提高排查错误效率...
Java识堂,一个高原创,高收藏,有干货的微信公众号,一起成长,一起进步,欢迎关注 Splunk vs. Sumo Logic vs. LogStash vs. GrayLog vs. Loggly ...
- Hadoop 单节点 伪分布 安装手记
实验环境 CentOS 6.X Hadoop 2.6.0 JDK 1.8.0_65 目的 这篇文档的目的是帮助你快速完成单机上的Hadoop安装与使用以便你对Hadoop分布式文件系统(HDFS ...
- storm_常用命令
1)nimbus:启动nimbus守护进程 storm nimbus 2)supervisor:启动supervisor守护进程 storm supervisor 3)ui:启动UI守护进程. sto ...
- 发现kafka丢消息后的排查
背景: 最近在用kafka做消息中间件,producer从hive中读取消息发送到kafka,后端storm对消息分类发送到elasticsearch建立索引. 问题: hive表中总共350万数据, ...
最新文章
- 手把手教你使用TF服务将TensorFlow模型部署到生产环境
- IOS--设计更丰富的界面
- JAVA——一次性读取或者写入文本文件所有内容
- MFC中的DC,CDC和HDC
- java linq_LINQ和Java
- 我们多么想要新的Java日期/时间API?
- linux 调优系列(续)
- 201521123028 《Java程序设计》第5周学习总结
- 用python编程、假设一年期定期利率_《Python程序设计》题库.pdf
- 温度控制直流电动机的c语言,温度控制直流电动机转速系统设计报告
- Java字节码插桩玩法(Javassist)
- AGND和GND_SIGNAL之间的隔离_PCB
- cad没有命令输入框_cad2017命令输入框没了
- 证券交易系统 -- 为什么要低延迟?
- python 矩阵求转置、行列式、迹、求逆
- Kubernetes K8S之资源控制器Job和CronJob详解
- 数学 立方和公式 立方差公式
- 怎么删除w7桌面计算机图标,桌面图标删除不了_Win7桌面有图标删不掉怎么办
- NPI (Neural Program Interpreter) 逆波兰表达式--什么是逆波兰表达式
- bat脚本代码,一键修改网卡的dns地址和恢复为DHCP获取的方式
热门文章
- 从背包问题优化详解动态规划思想
- 计算机组成实验微程序控制器实验,计算机组成原理实验报告3++微程序控制器实验.doc...
- php会不会被人工智能取代,为什么这9种工作不会被人工智能取代?
- 如何安装php5.5,源码安装php5.5
- vue 同级页面调用方法_【Vue】一个vue页面调用另一个vue页面中的方法
- android 本地图片分享,Android 把图片保存到本地相册
- html div bgcolor,HTML body bgcolor transparent
- telnet远程登陆、mstsc远程控制、SSH之间的比较和区别
- 架构风格与基于网络的软件架构设计
- C++ 使用模板Template