02【在线日志分析】之基于Flume-ng Exec Source开发自定义插件AdvancedExecSource

1.目的
CDH的角色日志的一行基本组成:年月日 时分秒.毫秒 日志级别 日志信息 

本博客主要是想基于Exec Source开发自定义插件AdvancedExecSource,将机器名称 和 服务名称 添加到一行数据的前面,则格式为:机器名称 服务名称 年月日 时分秒.毫秒 日志级别 日志信息  

2.关闭projet的Maven Project Builder

选择 flume-ng-core,右键单击Properties,弹出Properties页面,单击左侧的Builders, 取消 Maven Project Builder,再 单击OK。

 

3.由于 flume-ng-core的部分java文件抛错,所以要添加文件夹
选择 flume-ng-core,右键单击Properties,弹出Properties页面,单击左侧的Java Build Path,然后单击右侧的Source 页,单击Add Folder按钮,弹出选择页面;
选择 target/generated-sources/目录的annotations,avro,java,再单击ok;返回Properties页面,单击OK。
 


4.创建package为com.onlinelog.analysis
选择 flume-ng-core,右键单击
New,单击Package,输入com.onlinelog.analysis






5.手工将flume-ng-core的src/main/java目录的ora.apache.flume包下source包的ExecSource.java和ExecSoureceConfigurationConstants.java文件,选中,拷贝一份至com.onlinelog.analysis包下;然后选择ExecSoure.java文件,右键选择Refactor-->Rename, 改为AdvancedExecSource,单击Finsh。



6.修改代码AdvancedExecSource.java代码
已经将代码上传至GitHub: https://github.com/Hackeruncle/OnlineLogAnalysis

7.导出为AdvancedExecSource.jar包


#导出后会有warn提示,可以忽略。因为是一些import类没有使用而已。
请使用浏览器的分享功能分享到微信等