Mavenを使用してHadoopジョブを構築しようとしています。この仕事は、私がMavenを使用せず、EclipseへのHadoop Jarの依存関係を直接インポートするときにうまく機能します。Hadoop Maven依存エラー
また、Hadoopの依存関係がなくても、Mavenを使って簡単なjar(hello world type)を構築することができます。
しかし、私はHadoopの依存関係を追加し、jarファイルを実行すると、私はこのエラーを取得:
dataException in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration
at org.graphhadoop.CreateAdjacency.Adjacency(CreateAdjacency.java:74)
at org.graphhadoop.Driver.main(Driver.java:12)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.conf.Configuration
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 2 more
ポンポンファイルの変更は、これらは、以下のとおりです。
私は間違っているつもりです<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>0.20.203.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>org.graphhadoop.Driver</mainClass>
</manifest>
</archive>
<manifestEntries>
<Class-Path>../target/classes</Class-Path>
</manifestEntries>
</configuration>
</plugin>
</plugins>
</build>
?
編集:
今、私はローカルジャーを実行している場合 - ではないHadoopの上、ローカルデータに。
java -jar jarname.jar
どのように実行していますか? –
hadoop -jar jarname.jar – Gitmo
すべての依存関係を持つjarファイルを作成している場合を除き、実行クラスパスに依存する必要があります。 –