由于Flume不能满足我们的需求,我们打算在Flume的基础上进行开发.那我们首先就需要了解一下其手动编译安装的方式.
官网上说的很简单,一条mvn clean compile就完事了.而我编译时,则没有这么洒脱.
首先,由于众所周知的网络原因,好几个依赖都下载不下来.特别是eigenbase-properties,我特别搞不明白.当我访问它的对应的网页时,如果不用代理,那么一会好使,一会不好使,而我如果使用代理的话,则一直好使.不知道是不是由于墙的原因.最后是通过找到eigenbase-properties的源代码,从源代码编译安装的.从Github上pull下来的是1.1.6版本的,而我们需要的是1.1.4版本的.当我编译1.1.4版本时,会提示我编译错误,搞不清楚原因.所以我索性就编译1.1.6版本的,然后将其拷贝到本地maven仓库的1.1.4版本中,当做1.1.4版本来用.虽然目前并没有任何问题,但是未来不知道有没有问题.
其他的网络问题,就翻墙吧.一般翻过墙就都能解决.
第二个问题就是FLUME_CLASSPATH的问题.编译完成后,你会在apache-flume-1.7.0-src/flume-ng-dist/target/apache-flume-1.7.0-bin/apache-flume-1.7.0-bin中看到有一个lib目录.我们需要将它添加到FLUME_CLASSPATH中,然后将FLUME_CLASSPATH添加到CLASSPATH中.奇怪的是,我并没有从任何文档中看到需要这个变量.