作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处

Gobblin的前身是linkedin的Camus,好多人也用过,准备用Gobblin的方式来抽取数据,不过由于连接的集群是CDH的,而Gobblin默认支持的是hadoop2.3.0,因此需要手动编译一个支持CDH的Gobblin版本,否则使用中会遇到无法写入hdfs等不兼容的问题.整理记录其中遇到的一些问题和解决方式.

一.编译准备

1.github上下载gobblin0.6.2的源代码解压到本地.

2.了解Gradle自动化构建工具的基本使用

二.编译和问题解决

在源代码根目录下用该命令进行编译: ./gradlew clean build -PhadoopVersion=2.6.0-cdh5.4.0,不出意外会报错,总结为以下几类错误

1.找不到依赖的jar包,比如gradle-processors,coveralls-gradle-plugin等,这类问题都是因为对应的jar包无法下载成功(下载超时失败居多),多执行几次命令,如果还是不行,请手动下载,例如

https://plugins.gradle.org/m2/org/kt3k/gradle/plugin/coveralls-gradle-plugin/1.0.2/coveralls-gradle-plugin-1.0.2.jar

根据错误提示手动下载需要的jar包,必要时请自觉FQ

下载jar包完成后,放入gradle的module目录,比如我的在当前用户的 ~/.gradle/caches/modules-2/,根据jar包名放入对应的module文件夹下,重新build执行命令即可

2. fatal: Not a git repository (or any of the parent directories): .git  异常

这个问题和git有关系,如果是用git命令checkout下来的源代码,一般不会有这个问题,而我是手动从github上下载的src压缩包,则需要加上另外一个版本参数,如下

./gradlew clean build  -PhadoopVersion=2.6.0-cdh5.4.0 -Pversion=gobblin_0.6.2-180-g5a11598

重新执行命令,该错误消失

3.Could not resolve all dependencies for configuration ':gobblin-compaction:runtime'.

这个错误需要加上另外一个参数,如下

 ./gradlew clean build -PhadoopVersion=2.6.0-cdh5.4.0 -Pversion=gobblin_0.6.2-180-g5a11598 –PuseHadoop2

4.Execution failed for task ':gobblin-yarn:test'.

这个问题大家基本都知道,test模块编译不过去,官方给的建议是加上另外一个参数来跳过,如下

./gradlew clean build -PhadoopVersion=2.6.0-cdh5.4.0 -Pversion=gobblin_0.6.2-180-g5a11598 -PuseHadoop2 -x test

继续build,问题消失

5.编译成功后,根目录下找到gobblin-distribution-0.6.2.tar.gz解压后,配置好后执行官方提供的wikipedia例子时报错:gobblin-runtime-0.6.2.jar not a valid jar

去lib下查看,发现只有gobblin-runtime-gobblin-0.6.2.jar,没有gobblin-runtime-0.6.2.jar,因此推断这里Pversion多了个gobblin,修改命令如下

./gradlew clean build -PhadoopVersion=2.6.0-cdh5.4.0 -Pversion=0.6.2 -PuseHadoop2 -x test

这次打包正常,执行bin/gobblin-mapreduce.sh又报第2条中的异常:Not a git repository

又耐心翻了翻官方的issues,发现0.6.2这块儿编译问题很多,所以决定直接编译gobblin-0.7.0源代码,进入gobblin-0.7.0源代码根目录执行如下命令

./gradlew clean build -PhadoopVersion=2.6.0-cdh5.4.0 -Pversion=0.7.0 -PuseHadoop2 -x test

ok,这次一次性成功,解压生成的gobblin-distribution-0.7.0.tar.gz,重新执行wikipedia的demo,成功执行

三.问题总结

Gobblin的编译主要会遇到一些jar包依赖和版本的问题,所以按照上述方式来一步一步解决后可以编译出适合自己的版本.官方文档还是很详细,大家可以多多查阅,另外还有源代码可以参考.

参考资料:

http://gobblin.readthedocs.io/en/latest/Getting-Started/

https://github.com/linkedin/gobblin/issues/662

https://github.com/linkedin/gobblin/issues/822

https://github.com/linkedin/gobblin/issues/577

转载于:https://www.cnblogs.com/cssdongl/p/6094642.html

Gobblin编译支持CDH5.4.0相关推荐

  1. Mono SVN最新代码或者Mono 1.2.5 支持IronPython 2.0

    IronPython 2.0基于Dynamic Language Runtime(DLR). Mono开发团队迅速完成了对DLR的支持.IronPython 2.0 Aplal一起发布的DLR(Dyn ...

  2. Boost 1.59.0 编译支持Python3的链接库,生成vc120或vc140

    Boost 1.59.0 编译支持Python3的链接库,生成vc120或vc140 官方编译的Boost中只带了Python2的链接库,Python3的链接库需要自己特别编译,官方编译版下载地址:h ...

  3. Cloudera Manager 5.3 和 CDH5.3.0 本地(离线)

    为什么80%的码农都做不了架构师?>>>    声明一下:http://my.oschina.net/dataRunner/blog/369129    是本人所写,并非抄袭. 有部 ...

  4. mysql+1.6安装,CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14方法

    这篇文章主要介绍了CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14方法分享,需要的朋友可以参考下准备篇: 一.配置防火墙,开启80端口.3306端口 Cen ...

  5. centos 6.2 编译安装mysql_CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13

    CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13 2013-10-24 15:31:12 标签:服务器 防火墙 file 配置文件 written 一.配置 ...

  6. CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13+博客系统WordPress3.3.2

    说明: 操作系统:CentOS 6.2 32位 系统安装教程:CentOS 6.2安装(超级详细图解教程): http://www.osyunwei.com/archives/1537.html 准备 ...

  7. linux编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14

    linux编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14的方法对于 我这个小菜菜来讲是非常的复杂的还好有这篇文章,下面一起来看看吧. 一.使用系统镜像文件配置本地yum源 1 ...

  8. CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13

    CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13 2013-10-24 15:31:12 标签:服务器 防火墙 file 配置文件 written 一.配置 ...

  9. Windows VS2017 编译 libssh2 1.7.0(执行命令、文件上传、下载)

    下载安装 OpenSSL 要编译 libssh2,必须先编译好 OpenSSL 的静态库,直接从 http://slproweb.com/products/Win32OpenSSL.html 下载已经 ...

最新文章

  1. Linux软连接和硬链接
  2. SSH连接问题:1.Software caused connection abort2.client_loop: send disconnect: Connection reset
  3. matlab 三维饼图,重新学习MATLAB——作图技法及3D可视化
  4. c++学习4 -- 输入输出
  5. 做python自动化得时候怎么添加断言_在编写Web自动化测试用例的时候,如何写断言使新手不解,严格意义上来讲,没有断言的自动化脚本不能叫测试用例。就像功能测试一样,当测试人员做了一些操作...
  6. IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0 实际解决方案
  7. 【珍藏】 2012.NET开发必看资料53个+经典源码77个—下载目录
  8. 使用Visual Studio Code调试.net控制台应用程序的方法
  9. Maven的下载、安装和配置
  10. Docker快速配置指南
  11. 更改Mysql 密码的4种方法(转)
  12. 慢慢看Spring源码
  13. 常用的sql语句集锦
  14. 管道无损检测python_初用python-docx
  15. 电脑怎么设置扬声器播放麦克风的声音
  16. 一道疯狂bypass的题目
  17. OpenDaylight是什么?
  18. [irisctf 2023] rev
  19. 温控驱动(五)dts参数解析、节点作用
  20. IDEA中Git的配置及其使用(图文结合,步骤详解)

热门文章

  1. [转]Hspice 语法手册
  2. 高德地图 Android API 的基站定位原理及使用方法
  3. RAID及LVM,iscsi
  4. PHP代码规范[转]
  5. mysql 错误等级_Mysql5.7 的错误日志中最常见的note级别日志解释
  6. cass地籍参数设置命令_想成为一名厉害的测绘员?南方Cass教程+插件+课件不可少!...
  7. linux上开发应用程序_如何在Linux上安装软件应用程序
  8. 会议指南二维码生成_包装和准备技术会议的指南
  9. 涉足荒野script_为什么社区经理必须涉足(而不是潜入)社区
  10. 适合初学者的安卓开源项目_开源系列的初学者将从下周开始