Gobblin编译支持CDH5.4.0
作者: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相关推荐
- Mono SVN最新代码或者Mono 1.2.5 支持IronPython 2.0
IronPython 2.0基于Dynamic Language Runtime(DLR). Mono开发团队迅速完成了对DLR的支持.IronPython 2.0 Aplal一起发布的DLR(Dyn ...
- Boost 1.59.0 编译支持Python3的链接库,生成vc120或vc140
Boost 1.59.0 编译支持Python3的链接库,生成vc120或vc140 官方编译的Boost中只带了Python2的链接库,Python3的链接库需要自己特别编译,官方编译版下载地址:h ...
- Cloudera Manager 5.3 和 CDH5.3.0 本地(离线)
为什么80%的码农都做不了架构师?>>> 声明一下:http://my.oschina.net/dataRunner/blog/369129 是本人所写,并非抄袭. 有部 ...
- 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 ...
- 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 一.配置 ...
- 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 准备 ...
- linux编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14
linux编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14的方法对于 我这个小菜菜来讲是非常的复杂的还好有这篇文章,下面一起来看看吧. 一.使用系统镜像文件配置本地yum源 1 ...
- 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 一.配置 ...
- Windows VS2017 编译 libssh2 1.7.0(执行命令、文件上传、下载)
下载安装 OpenSSL 要编译 libssh2,必须先编译好 OpenSSL 的静态库,直接从 http://slproweb.com/products/Win32OpenSSL.html 下载已经 ...
最新文章
- Linux软连接和硬链接
- SSH连接问题:1.Software caused connection abort2.client_loop: send disconnect: Connection reset
- matlab 三维饼图,重新学习MATLAB——作图技法及3D可视化
- c++学习4 -- 输入输出
- 做python自动化得时候怎么添加断言_在编写Web自动化测试用例的时候,如何写断言使新手不解,严格意义上来讲,没有断言的自动化脚本不能叫测试用例。就像功能测试一样,当测试人员做了一些操作...
- IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0 实际解决方案
- 【珍藏】 2012.NET开发必看资料53个+经典源码77个—下载目录
- 使用Visual Studio Code调试.net控制台应用程序的方法
- Maven的下载、安装和配置
- Docker快速配置指南
- 更改Mysql 密码的4种方法(转)
- 慢慢看Spring源码
- 常用的sql语句集锦
- 管道无损检测python_初用python-docx
- 电脑怎么设置扬声器播放麦克风的声音
- 一道疯狂bypass的题目
- OpenDaylight是什么?
- [irisctf 2023] rev
- 温控驱动(五)dts参数解析、节点作用
- IDEA中Git的配置及其使用(图文结合,步骤详解)
热门文章
- [转]Hspice 语法手册
- 高德地图 Android API 的基站定位原理及使用方法
- RAID及LVM,iscsi
- PHP代码规范[转]
- mysql 错误等级_Mysql5.7 的错误日志中最常见的note级别日志解释
- cass地籍参数设置命令_想成为一名厉害的测绘员?南方Cass教程+插件+课件不可少!...
- linux上开发应用程序_如何在Linux上安装软件应用程序
- 会议指南二维码生成_包装和准备技术会议的指南
- 涉足荒野script_为什么社区经理必须涉足(而不是潜入)社区
- 适合初学者的安卓开源项目_开源系列的初学者将从下周开始