2015-03-24 3 views
2

Я пытаюсь построить Apache Crunch source code на моем CentOS 7 машина, но я получаю следующее сообщение об ошибке в проекте crunch-spark, когда я исполняю mvn package:Недостающие зависимости в Apache Crunch Scala построить

[ERROR] /home/bwatson/programming/git/crunch/crunch-spark/src/it/scala/org/apache/crunch/scrunch/spark/PageRankClassTest.scala:71: error: bad symbolic reference. A signature in PTypeH.class refers to term protobuf 
[ERROR] in package com.google which is not available. 
[ERROR] It may be completely missing from the current classpath, or the version on 
[ERROR] the classpath might be incompatible with the version used when compiling PTypeH.class. 
[ERROR]  .map(line => { val urls = line.split("\\t"); (urls(0), urls(1)) }) 
[ERROR]   ^

Другие SO вопросы аналогичные ошибки (here и here), по-видимому, связаны с PATH или проблемами с версией. Я возился, но, похоже, не могу их разрешить. Для полноты:

[[email protected] crunch]$ scala -version 
Scala code runner version 2.11.5 -- Copyright 2002-2013, LAMP/EPFL 

[[email protected] crunch]$ java -version 
java version "1.8.0_31" 
Java(TM) SE Runtime Environment (build 1.8.0_31-b13) 
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode) 

[[email protected] crunch]$ mvn -version 
Apache Maven 3.0.5 (Red Hat 3.0.5-16) 
Maven home: /usr/share/maven 
Java version: 1.8.0_31, vendor: Oracle Corporation 
Java home: /usr/java/jdk1.8.0_31/jre 
Default locale: en_GB, platform encoding: UTF-8 
OS name: "linux", version: "3.10.0-123.20.1.el7.x86_64", arch: "amd64", family: "unix" 

Любой совет? Я не совсем уверен, где Scala ищет свои зависимости, но я бы подумал, что Maven позаботится об этом.

ответ

0

Оказалось, что в официальной документации для Crunch отсутствует параметр Maven. Вопрос был решен путем использования:

mvn package -Dcrunch.platform=2 
+0

[Кажется, что вы выбираете версию Hadoop для использования] (https://github.com/apache/crunch/blob/master/pom.xml#L47) –

+0

Да, я должен уточнить, что это решение зафиксировало мой конкретный проблема, тогда как вы ищете, чтобы добраться до корня более широкой проблемы. –

+0

Для всех, кто сталкивается с этим, вот [соответствующая проблема Crunch] (https://issues.apache.org/jira/browse/CRUNCH-518) –

0

К сожалению, Different versions of Scala are binary incompatible. В настоящее время по умолчанию Apache Spark uses Scala 2.10.4, not Scala 2.11. Apache Scrunch зависит от Spark. Maven ничего не знает об этом, так что это не поможет. Необходимо внести некоторые изменения в Scrunch, чтобы заставить его скомпилировать Scala 2.11/JDK 1.8. Я работаю над этим на данный момент, но у меня пока нет решения. Однако я получаю сообщение об ошибке, которое вы сообщаете, если я компилирую Scala 2.10.4 с JDK 1.8, а не Scala 2.11, поэтому я не думаю, что он делает то, что вы намереваетесь. Ошибка, похоже, исходит от компилятора Protobuf или jar, но я не знаю, почему это так.

Когда я сам его решаю, я отчитаю!

+0

Мне очень жаль - я думал, что закрыл этот вопрос некоторое время назад. Я решил проблему - в официальной документации Crunch отсутствовал параметр Maven. Я добавил и пометил свой собственный ответ. Надеюсь, это поможет вам. –

+0

ОК, отлично, спасибо Бен, с переключателем мой патч работает. Однако я думаю, что версия, которую вы строите, даже если у вас установлена ​​Scala 2.11.5, будет для Scala 2.10.4. Поскольку это версия по умолчанию, которую Spark цели, вероятно, хорошо. Но если вам нужна версия с версией 2.11, все будет в большей степени задействовано. –

 Смежные вопросы

  • Нет связанных вопросов^_^