Flume源码编译、打包、修改Taildir Source支持递归

为什么要编译源码?

  1. 修改各组件版本,为了跟生产上其他组件版本匹配
  2. bug修复
  3. 新特性的增加
  4. 二次开发

flume源码编译

编译方式:IDEA + MAVEN

编译版本:flume-ng-1.6.0-cdh5.15.1-src

编译注意事项

  1. 带cdh标志的部分jar包国内不方便下载,可以借助阿里云的香港云主机下载后拷贝到本地。

  2. 在flume-ng-sinks下的pom.xml中找到flume-ng-morphline-solr-sink模块并注释,因为jar下不来,也不常用。

    <modules>
    	<module>flume-hdfs-sinkmodule>
    	<module>flume-irc-sinkmodule>
    	<module>flume-ng-hbase-sinkmodule>
    	<module>flume-ng-elasticsearch-sinkmodule>
    	
    	<module>flume-ng-kafka-sinkmodule>
    modules>
    
  3. 在 pom.xml 的 repositoies 中加入阿里云地址和 cdh 地址,加快 jar 包下载速度。

    <repository>
      <id>alimavenid>
      <url>http://maven.aliyun.com/nexus/content/groups/public/url>
      <snapshots>
        <enabled>falseenabled>
      snapshots>
    repository>
    
     <repository>
      <id>cdh.repoid>
      <url>https://repository.cloudera.com/artifactory/cloudera-reposurl>
      <name>Cloudera Repositoriesname>
      <snapshots>
        <enabled>falseenabled>
      snapshots>
    repository>
    
  4. 修改 pom.xml 的 JDK 版本,这里采用的 JDK1.8

    <javaVersion>1.8javaVersion>
    
  5. 编译并打包,全局打包需要点击带 root 的目录下的package;若只想打包子模块,到子模块下点击 package。
    Flume源码编译、打包、修改Taildir Source支持递归_第1张图片

  6. 随便看一眼源码中的 README 文件,查看编译完成后jar包的目的地。

修改Taildir Source源码支持递归

flume-ng-1.6.0-cdh5.15.1-src 版本已经支持 Taildir Source 功能,但是不支持递归查找,所以需要修改这部分源码。
这里推荐一篇博客供大家参考,详细讲解了如何修改源码并实现可配置参数项,并在文章底部贴出了 Github 详细源码。

https://segmentfault.com/a/1190000019551664

你可能感兴趣的:(Flume)