作者: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

Gobblin编译支持CDH5.4.0的更多相关文章

  1. flink编译支持CDH6.2.0(hadoop3.0.0)

    准备工作 因为在编译时需要下载许多依赖包,在执行编译前最好先配置下代理仓库 <mirrors> <mirror> <id>nexus-aliyun</id&g ...

  2. nginx编译支持HTTP2.0

    nginx编译支持HTTP2.0 nginx编译支持HTTP2.0 wget https://www.openssl.org/source/openssl-1.1.0i.tar.gz #openssl ...

  3. CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14

    准备篇: CentOS 7.0系统安装配置图解教程 http://www.osyunwei.com/archives/7829.html 一.配置防火墙,开启80端口.3306端口 CentOS 7. ...

  4. CentOS7 编译安装 nginx-1.10.0

    对于NGINX 支持epoll模型 epoll模型的优点 定义: epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著的 ...

  5. Pentaho Kettle 6.1连接CDH5.4.0集群

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 欢迎转载 最近把之前写的Hadoop MapReduce程序又总结了下,发现很多逻辑基本都是大致相同的,于是想到 ...

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

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

  7. VC++编译MPIR 2.7.0

    目录 第1章编译    2 1.1 简介    2 1.2 下载    3 1.3 解决方案    4 1.4 创建项目    5 1.5 复制文件树    6 1.6 不使用预编译头文件    8 ...

  8. 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 准备 ...

  9. CentOS 6.4 64位 源码编译hadoop 2.2.0

    搭建环境:Centos 6.4 64bit 1.安装JDK 参考这里2.安装mavenmaven官方下载地址,可以选择源码编码安装,这里就直接下载编译好的wget http://mirror.bit. ...

随机推荐

  1. 【转】WriteMessage的信息在AutoCAD中命令行中实时显示

    之前程序中有段发送信息到命令行上显示的代码,如下:     ed.WriteMessage("开始标注横断面高程,请稍候!");     但是发现命令行中并不马上显示,代码也明明运 ...

  2. OC整理1

    关于面向对象 看起来简单,好好体会其实有点深奥,初学的时候更感觉抽象,可能由于开发经验不足的关系吧,很难体会到面向对象的精髓. 放轻松,我们来用最直白得方式来探讨一下面向对象. 首先,编程是为了用计算 ...

  3. poj1200-Crazy Search(hash入门经典)

    Hash:一般是一个整数.就是说通过某种算法,可以把一个字符串"压缩" 成一个整数.一,题意: 给出两个数n,nc,并给出一个由nc种字符组成的字符串.求这个字符串中长度为n的不同 ...

  4. 剑指Offer面试题:15.反转链表

    一.题目:反转链表 题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点. 链表结点定义如下,这里使用的是C#描述: public class Node { public in ...

  5. SOA相关资料整理分享

    昨@幸福框架同学问能否推荐SOA一些资,.想想之前看过不少资料文档,就整理分享下,有需要的可以参考下. 文章链接 理解面向服务的体系结构中企业服务总线场景和解决方案,第 1 部分 SOA 和 web ...

  6. FTP文件服务搭建与同步传输

    需求       搭建一台FTP服务器,用于文件的上传与下载:同时将FTP服务器目录中的文件同步到多个服务器中,实现同步更新,同时文件需要控制用户访问对应的文件夹权限. 需要用到的软件有:bestsy ...

  7. Nginx重写

    一.location匹配 1.分类:(1)正则location:~,~*(2)普通location:=,^~,@,无2.匹配规则:(1) =    精确匹配.如果找到,停止搜索(2) ^~    普通 ...

  8. Tornado框架中视图模板Template的使用

    上文的程序中有这样一段: class MessageHandler(tornado.web.RequestHandler): def get(self): self.write(''' <htm ...

  9. jQuery通过parent()和parents()方法访问父级元素

    <div class="inputGroup"> <p>2.您的最高学历是?</p> <label><input type=& ...

  10. MongoDB 聚合操作

    在MongoDB中,有两种方式计算聚合:Pipeline 和 MapReduce.Pipeline查询速度快于MapReduce,但是MapReduce的强大之处在于能够在多台Server上并行执行复 ...