2016-03-03 247 views
0

Mahout的例子中,我跟隨亨利馬烏在行動教程k均值clustring,我使用相同的代碼中發現here: 具有相同的pom.xml也。 在我的本地機器上使用eclipse時,所有的東西都可以正常工作,所以我在創建jar文件(clustering-0.0.1-SNAPSHOT.jar)並將它帶入羣集(Hortonworks 2.3)時試圖運行它:hadoop jar clustering-0.0.1-SNAPSHOT.jar com.digimarket.clustering.App我的項目不同)我得到這個錯誤:java.lang.NoClassDefFoundError:上運行Hadoop集羣

java.lang.NoClassDefFoundError: org/apache/mahout/common/distance/DistanceMeasure

我知道這是一個依賴的問題,我發現誰收到了這個問題,但不知道他們怎麼解決的,用戶提出的問題。 herehere

這是Mahout的目錄在我的集羣中的內容:

ls /usr/hdp/2.3.4.0-3485/mahout/ 
bin 
conf 
doc 
lib 
mahout-examples-0.9.0.2.3.4.0-3485.jar 
mahout-examples-0.9.0.2.3.4.0-3485-job.jar 
mahout-integration-0.9.0.2.3.4.0-3485.jar 
mahout-math-0.9.0.2.3.4.0-3485.jar 
mahout-mrlegacy-0.9.0.2.3.4.0-3485.jar 
mahout-mrlegacy-0.9.0.2.3.4.0-3485-job.jar 

感謝。

+0

maven是否會生產兩個罐子; 'clustering-0.0.1-SNAPSHOT.jar'和'clustering-0.0.1-SNAPSHOT-jar-with-dependencies.jar'? – rj93

+0

它生成一個名爲mia-0.5.jar的jar(本書的作者http://stackoverflow.com/a/11482253/5089324) – zaher

+0

如何構建'clustering-0.0.1-SNAPSHOT.jar '? – rj93

回答

0

它看起來像您有一個依賴項,您的羣集上的代碼不可用。

基於從該項目pom.xml中,你應該使用:

<properties> 
    <mahout.version>0.5</mahout.version> 
    <mahout.groupid>org.apache.mahout</mahout.groupid> 
</properties> 
... 
<dependencies> 
    <dependency> 
    <groupId>${mahout.groupid}</groupId> 
    <artifactId>mahout-core</artifactId> 
    <version>${mahout.version}</version> 
    </dependency> 
    ... 
</dependencies> 

類org.apache.mahout.common.distance.DistanceMeasure包括在象夫核-0 *。 jar我有mahout-core-0.7.jar,並且類存在於那裏。

enter image description here

您可以下載JAR,包括其與-libjars標誌或者你可以把它放在Hadoop的類路徑。

相關問題