0

我正在尝试构建 Twitter 的大象鸟包,以便可以将其与 Pig 一起使用,但出现错误:

[INFO] Elephant Bird ..................................... SUCCESS [0.638s]
[INFO] Elephant Bird Hadoop Compatibility ................ SUCCESS [1.213s]
[INFO] Elephant Bird Core ................................ FAILURE [0.580s]
[INFO] Elephant Bird Cascading2 .......................... SKIPPED
[INFO] Elephant Bird Hive ................................ SKIPPED
[INFO] Elephant Bird Pig ................................. SKIPPED
[INFO] Elephant Bird Mahout .............................. SKIPPED
[INFO] Elephant Bird RCFile .............................. SKIPPED
[INFO] Elephant Bird Lucene .............................. SKIPPED
[INFO] Elephant Bird Pig Lucene .......................... SKIPPED
[INFO] Elephant Bird Examples ............................ SKIPPED

[ERROR] Failed to execute goal com.github.igor-petruk.protobuf:protobuf-maven-plugin:0.4:run (default) on project elephant-bird-core: Protobuf installation version does not match Protobuf library version -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :elephant-bird-core

这是我的系统的 Maven 信息:

Apache Maven 3.0.3 (r1075438; 2011-02-28 09:31:09-0800)
Maven home: /usr/share/maven
Java version: 1.7.0_45, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.8.3", arch: "x86_64", family: "mac"

我已经安装了 Thrift 和 protobuf。

编辑按照 Jigar 的建议,我修复了这里遇到的第一个与 protobuf 版本有关的构建错误。我还更新了导致错误的 pom 文件中的 Thrift 版本号。但我仍然收到以下错误:

[INFO] Elephant Bird ..................................... SUCCESS [0.647s]
[INFO] Elephant Bird Hadoop Compatibility ................ SUCCESS [1.157s]
[INFO] Elephant Bird Core ................................ FAILURE [7.434s]
[INFO] Elephant Bird Cascading2 .......................... SKIPPED
[INFO] Elephant Bird Hive ................................ SKIPPED
[INFO] Elephant Bird Pig ................................. SKIPPED
[INFO] Elephant Bird Mahout .............................. SKIPPED
[INFO] Elephant Bird RCFile .............................. SKIPPED
[INFO] Elephant Bird Lucene .............................. SKIPPED
[INFO] Elephant Bird Pig Lucene .......................... SKIPPED
[INFO] Elephant Bird Examples ............................ SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.987s
[INFO] Finished at: Mon Oct 21 14:25:09 PDT 2013
[INFO] Final Memory: 20M/369M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project elephant-bird-core: Compilation failure
[ERROR] /Users/evanzamir/Pig/pig-jars/elephant-bird/core/src/main/java/org/apache/thrift/Fixtures.java:[118,69] error: cannot find symbol
[ERROR] -> [Help 1]
4

2 回答 2

0

如错误消息所示:

Protobuf 安装版本与 Protobuf 库版本不匹配

您使用了错误版本的协议缓冲区。@jigar-joshi 发布了一个指针,向您展示如何将其更改为正确的版本。

编辑:以下回答用户报告的新错误。

阅读错误消息并尝试理解它们很重要。例如,这个说:

/Users/evanzamir/Pig/pig-jars/elephant-bird/core/src/main/java/org/apache/thrift/Fixtures.java:[118,69] 错误:找不到符号

这意味着在文件Fixtures.java的第 118 行(字符 69)中,您有一个先前未定义(或正确导入/正确限定)的符号(例如,变量或方法名称)。

于 2013-10-21T21:05:21.980 回答
0

我遇到了同样的问题并找到了解决方法。你需要安装 protobuf 2.4.1 和 thrift 0.7.0。我已经创建了演示文稿,其中包含要遵循的步骤(关于如何安装旧版本)。希望这会有所帮助

http://www.slideshare.net/kapildewade/elephant-bird-build-error

于 2013-11-02T20:21:53.560 回答