zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Web server failed to start. Port 8080 was already in use.
    org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplic
    HttpClient测试框架
    Mock接口平台Moco学习
    自动化测试框架TestNG
    css常用记录...个人查看使用
    常用JS工具类 .....持续更新中 ...CV大法好
    element-upload覆盖默认行为(多个文件上传调用一次接口)
    基础术语理解
    MVC和MVVM设计模式简单理解
  • 原文地址:https://www.cnblogs.com/cssdongl/p/6094642.html
Copyright © 2011-2022 走看看