个人GitHub地址 :https://github.com/LinMingQiang
博客前言
- 为什么我们要写日志
- 基本上每个程序都要有日志记录的功能,日志的记录最重要的用处就是监控程序的运行状态和错误查找。如果程序没有写日志,那程序就像瞎子一样,瞎跑,你都不知道为什么数据不对,为什么程序报错,程序运行成功还是失败。在流式计算Sparkstreaming中,日志的记录是非常重要的;因为流式计算是需要7*24小时一直运行的,你不记日志你根本不知道程序运行成功还是错误(当然你可以通过spark的history来查看),但是sparkstreaming的日志它只记录程序的内部错误,并不会记录你程序的计算逻辑错误(所以会导致你整个程序计算结果都不对了都不知道)。
- Sparkstreming日志的特别
- SparkStreming的日志是比较特别的,特别之处在于,它的日志只有在运行完成之后才能被load到本地查看的,不然它的日志是一直在hdfs上的。
- 那么,如果我们需要一个这样的功能:需要一个监控程序来监控SparkStreaming的运行情况,并且一旦程序出问题要马上发邮件到自己的邮箱然后自己重启程序。
解决的思路
- 简单的思路:把SparkStreaming的运行模式选为yarn-client模式,那么程序的driver就会是在固定的机子上,你