首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Phoenix构建失败。找不到符号。Phoenix 4.8.2 Hbase-1.2 cdh 5.9.1

Phoenix构建失败。找不到符号。Phoenix 4.8.2 Hbase-1.2 cdh 5.9.1
EN

Stack Overflow用户
提问于 2017-01-20 15:47:58
回答 1查看 480关注 0票数 0

我正在通过Cloudera的Hadoop和Hbase安装来安装Apache Phoenix 4.8.2-Hbase-1.2 (即两者都是通过cdh 5.9.1安装的)

遵循以下说明在其上构建Phoenix:Using Phoenix with Cloudera Hbase (installed from repo)

现在当我运行sudo mvn install -DskipTests

我在phoenix-core编译中得到这个错误:

代码语言:javascript
复制
[INFO] Reactor Summary:
[INFO] 
[INFO] Apache Phoenix .................................... SUCCESS [5.569s]
[INFO] Phoenix Core ...................................... FAILURE [2:30.148s]
[INFO] Phoenix - Flume ................................... SKIPPED
[INFO] Phoenix - Pig ..................................... SKIPPED
[INFO] Phoenix Query Server Client ....................... SKIPPED
[INFO] Phoenix Query Server .............................. SKIPPED
[INFO] Phoenix - Pherf ................................... SKIPPED
[INFO] Phoenix - Spark ................................... SKIPPED
[INFO] Phoenix - Hive .................................... SKIPPED
[INFO] Phoenix Client .................................... SKIPPED
[INFO] Phoenix Server .................................... SKIPPED
[INFO] Phoenix Assembly .................................. SKIPPED
[INFO] Phoenix - Tracing Web Application ................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2:37.862s
[INFO] Finished at: Fri Jan 20 13:02:44 IST 2017
[INFO] Final Memory: 68M/714M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project phoenix-core: Compilation failure: Compilation failure:
[ERROR] /opt/apache-phoenix-4.8.2-HBase-1.2-src-copy/phoenix-core/src/main/java/org/apache/phoenix/util/PhoenixMRJobUtil.java:[222,29] cannot find symbol
[ERROR] symbol:   variable QUEUE_NAME
[ERROR] location: interface org.apache.hadoop.mapreduce.MRJobConfig
[ERROR] /opt/apache-phoenix-4.8.2-HBase-1.2-src-copy/phoenix-core/src/main/java/org/apache/phoenix/util/PhoenixMRJobUtil.java:[226,32] cannot find symbol
[ERROR] symbol:   variable MAP_MEMORY_MB
[ERROR] location: interface org.apache.hadoop.mapreduce.MRJobConfig
[ERROR] /opt/apache-phoenix-4.8.2-HBase-1.2-src-copy/phoenix-core/src/main/java/org/apache/phoenix/util/PhoenixMRJobUtil.java:[227,29] cannot find symbol
[ERROR] symbol:   variable MAP_JAVA_OPTS
[ERROR] location: interface org.apache.hadoop.mapreduce.MRJobConfig
[ERROR] /opt/apache-phoenix-4.8.2-HBase-1.2-src-copy/phoenix-core/src/main/java/org/apache/phoenix/util/PhoenixMRJobUtil.java:[229,54] cannot find symbol
[ERROR] symbol:   variable QUEUE_NAME
[ERROR] location: interface org.apache.hadoop.mapreduce.MRJobConfig
[ERROR] /opt/apache-phoenix-4.8.2-HBase-1.2-src-copy/phoenix-core/src/main/java/org/apache/phoenix/util/PhoenixMRJobUtil.java:[230,39] cannot find symbol
[ERROR] symbol:   variable MAP_MEMORY_MB
[ERROR] location: interface org.apache.hadoop.mapreduce.MRJobConfig
[ERROR] /opt/apache-phoenix-4.8.2-HBase-1.2-src-copy/phoenix-core/src/main/java/org/apache/phoenix/util/PhoenixMRJobUtil.java:[231,39] cannot find symbol
[ERROR] symbol:   variable MAP_JAVA_OPTS
[ERROR] location: interface org.apache.hadoop.mapreduce.MRJobConfig
[ERROR] -> [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/MojoFailureException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :phoenix-core

在org.apache.hadoop.mapreduce.MRJobConfig类中找不到QUEUE_NAME MAP_MEMORY_MBMAP_JAVA_OPTS。cloudera hadoop 2.6不包含这些变量吗?

而且,只有PhoenixMRJobUtil.java中的这个public static void updateCapacityQueueInfo(Configuration conf)函数使用了这些变量,并导致编译失败。这是为容量调度器提供信息的功能。在phoenix代码中注释此函数及其调用是否安全,因为我安装这些函数只是为了本地测试,而不是为了生产环境。

否则还能有什么解决方案呢?hadoop 2.6和phoenix 4.8.2不兼容吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-22 07:22:35

最终为cdh5.9.1 (Hbase 1.2.0和Hadoop 2.6.0)成功构建了Phoenix 4.8.2。这些问题是由于Phoenix 4.8.2与cdh5.9.1不兼容造成的。

在尝试更改phoenix代码以成功编译它之后,我从这个代码库中查看了phoenix 4.8Hbase-1.2-cdh5.8分支,其中大多数代码更改已经完成,以使其兼容:

https://github.com/chiastic-security/phoenix-for-cloudera/branches

事实证明,这个分支虽然适用于cdh5.8,但也适用于我的cdh5.9.1。刚刚更改了pom.xml文件中的hbase和hadoop.two (包括mr)版本,并添加了以下内容:

代码语言:javascript
复制
</repository>
    <repository>
  <id>conjars.org</id>
  <url>http://conjars.org/repo</url>
</repository>
<repository>
  <id>apache snapshot</id>
  <url>https://repository.apache.org/content/repositories/snapshots/</url>
  <snapshots>
    <enabled>true</enabled>
  </snapshots>
</repository>
<repository>
  <id>sonatype-nexus-snapshots</id>
  <name>Sonatype Nexus Snapshots</name>
  <url>https://oss.sonatype.org/content/repositories/snapshots</url>
  <snapshots>
    <enabled>true</enabled>
  </snapshots>
</repository>

还将pigjacksonslf4jflumespark的版本信息替换为原始源的pom.xml中提到的版本信息:

http://www-us.apache.org/dist/phoenix/apache-phoenix-4.8.2-HBase-1.2/src/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41758521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档