设为首页 收藏本站
查看: 1263|回复: 0

[经验分享] Apache Flume 1.7.0 源码编译 导入Eclipse

[复制链接]

尚未签到

发表于 2017-12-24 20:23:13 | 显示全部楼层 |阅读模式
前言
  最近看了看Apache Flume,在虚拟机里跑了一下flume + kafka + storm + mysql架构的demo,功能很简单,主要是用flume收集数据源(http上报信息),放入到kafka队列里,然后用storm消费kafka里的资源,计算结果并存入到mysql中;
  在这期间遇到了很多问题,也学到了一些知识,打算做个笔记吧,帮助自己也帮助别人;
  先从Flume源码的编译开始;

下载
  下载源码很简单,去官网或者去github下载,Apache Flume 1.7.0的github源码地址如下:
  https://github.com/apache/flume/tree/release-1.7.0

Maven编译安装
  在mvn install之前,最好先设置下maven的国内镜像地址,加快依赖的下载速度,时间还是很宝贵的,别浪费在无聊的等待上,
  打开maven的setting.xml配置文件,添加如下镜像即可:
  

  <mirrors>  
<!-- mirror
  
| Specifies a repository mirror site to use instead of a given repository. The repository that

  
| this mirror serves has an>  
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
  
|
  
<mirror>
  
<id>mirrorId</id>
  
<mirrorOf>repositoryId</mirrorOf>
  
<name>Human Readable Name for this Mirror.</name>
  
<url>http://my.repository.com/repo/path</url>
  
</mirror>
  
-->
  

  
<mirror>
  
<id>alimaven</id>
  
<name>aliyun maven</name>
  
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  
<mirrorOf>central</mirrorOf>        
  
</mirror>
  

  
</mirrors>
  

  在控制台输入如下命令,后面的参数表示跳过单元测试
  mvn install -Dmaven.test.skip=true
  很快就开始下载依赖了,骚等片刻:
DSC0000.jpg

  遗憾的是报错了,坑爹,又是国外的网络不能访问,ping下maven.twttr.com,果真不行,哎,,,

[ERROR] Failed to execute goal on project flume-ng-morphline-solr-sink: Could not resolve dependencies for project org.apache.flume.flume-ng-sinks:flume-ng-morphline-solr-sink:jar:1.7.0: Failed to collect dependencies at org.kitesdk:kite-morphlines-all:pom:1.0.0 -> org.kitesdk:kite-morphlines-useragent:jar:1.0.0 -> ua_parser:ua-parser:jar:1.3.0: Failed to read artifact descriptor for ua_parser:ua-parser:jar:1.3.0: Could not transfer artifact ua_parser:ua-parser:pom:1.3.0 from/to maven-twttr (http://maven.twttr.com): maven.twttr.com: Unknown host maven.twttr.com -> [Help 1]
  网上找了半天解决方案,搞什么代理啊 VPN什么的,有点麻烦,好在找到了一个ip,添加到hosts里即可,如下:
  

199.16.156.89 maven.twttr.com  

  添加完host后,继续执行mvn install -Dmaven.test.skip=true,耐心等待...
  结果等了半天,还是不行,卡在这,又是坑爹的天朝网络,速度真的太慢了,没办法。。。。。conjars.org的访问速度真心太慢...
  Downloading: http://conjars.org/repo/eigenbase/eigenbase-properties/1.1.4/eigenbase-properties-1.1.4.pom
  多试几次吧,反正我是试了好几次,最后终于成功了,也可以尝试在父pom.xml加个repository,如下,实在不行,真的只能代理了,或者把别人已经下好的依赖拷贝到自己的maven本地仓库。
  

  <repositories>  
<repository>
  
<id>nexus.axiomalaska.com</id>
  
<url>http://nexus.axiomalaska.com/nexus/content/repositories/public</url>
  
</repository>
  
</repositories>
  

DSC0001.png


导入Eclipse
  这个没啥好说的,直接导入maven工程即可,遗憾的是flume-ng-core工程还是报错,如下:
  TransferStateFileMeta cannot be resolved to a type
  仔细看看源码,发现确实没有定义TransferStateFileMeta 这个类,这就尴尬了,在检查下,发现pom.xml有错误,需要安装,execution元素那边报错了,鼠标放上去,提示需要安装相应插件,那就安装吧,骚等片刻,终于安装好了,update下maven工程,pom.xml也没报错了。。。
  坑爹的是发现还是报那个错误
  TransferStateFileMeta cannot be resolved to a type
  不过发现问题还是出在pom.xml里的build-helper-maven-plugin这个插件的配置上,好像原因是DurablePositionTracker引用的TransferStateFileMeta这个类是自动生成的,查看target目录,确实找到了这个类,但是为什么还是报错,仔细观察,原来是source没配对,因为TransferStateFileMeta类是在generated-sources的avro目录下的,那就增加个目录呗,在sources节点增加<source>target/generated-sources/avro</source>,如下所示。。
  

            <executions>  
<execution>
  
<id>add-source</id>
  
<phase>generate-sources</phase>
  
<goals>
  
<goal>add-source</goal>
  
</goals>
  
<configuration>
  
<sources>
  
<source>target/generated-sources/java</source>
  <source>target/generated-sources/avro</source>
  
</sources>
  
</configuration>
  
</execution>
  
</executions>
  

  update下工程,终于Ok了,没报任何错误。。。(如果还有错的话,试着先执行mvn eclipse:eclipse命令后再导入)
DSC0002.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-427625-1-1.html 上篇帖子: PHP在apache中的三种工作方式 下篇帖子: phpstorm9整合本地apache和豆沙绿主题设置(附资源)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表