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类没有使用而已。