这篇文章主要介绍“flume多路复用怎么写”,在日常操作中,相信很多人在flume多路复用怎么写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”flume多路复用怎么写”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
一、编写目地
通过对flume组件的了解,除使用拦截器外,还可以对源码修改或自定义源。本次测试使用的是对源码修改。使用虚拟搭建flume + kafka环境,编写功能简单的多路复用,主要是用flume的exec收集数据源,放入到logger、hdfs、kafka队列。
二、编译环境说明
1、jdk版本:jdk1.7.0_80 注:根据pom.xml中要求flume-ng-1.6.0需要在jdk1.7中编译,使jdk1.8可能会存在问题
2、flume版本:flume-ng-1.6.0-cdh6.7.0
3、maven版本:apache-maven-3.3.9
三、Flume源码的修改
3、用maven编译flume-ng-1.6.0-cdh6.7.0源码
3.1、下载flume
cd /opt/sourcecode
wget http://archive.cloudera.com/cdh6/cdh/5/flume-ng-1.6.0-cdh6.7.0-src.tar.gz
tar -zxvf flume-ng-1.6.0-cdh6.7.0-src.tar.gz
3.2、修改源码:
cd /opt/sourcecode/flume-ng-1.6.0-cdh6.7.0/flume-ng-core/src/main/java/org/apache/flume/source
在ExecSource.java中增加如下代码:
vi ExecSource.java
// 创建map(注:在源码中336行增加)
<repository>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<id>conjars</id>
<name>Conjars</name>
<url>http://conjars.org/repo</url>
<layout>default</layout>
</repository>
到此,关于“flume多路复用怎么写”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!