1

Hadoop MapReduce は初めてです。次のコマンドを使用して MapReduce コードを実行しようとすると:

vishal@XXXX bin/hadoop jar /user/vishal/WordCount com.WordCount.java /user/vishal/file01 /user/vishal/output.

次の出力が表示されます。

   Exception in thread "main" java.io.IOException: Error opening job jar: /user/vishal/WordCount.jar     
    at org.apache.hadoop.util.RunJar.main(RunJar.java:130)          
    Caused by: java.util.zip.ZipException: error in opening zip file    
    at java.util.zip.ZipFile.open(Native Method)     
    at java.util.zip.ZipFile.<init>(ZipFile.java:131)    
    at java.util.jar.JarFile.<init>(JarFile.java:150)    
    at java.util.jar.JarFile.<init>(JarFile.java:87)    
    at org.apache.hadoop.util.RunJar.main(RunJar.java:128)

このエラーを修正するにはどうすればよいですか?

4

1 に答える 1

1

コマンドは Hadoop に JAR を実行するように要求していますが、代わりにディレクトリを指定しています。

クラス名に「.java」も追加しましたが、これは必須ではありません。com.WordCount(これは、パッケージ名を正しく書いていることを前提としています)。

最初に jar をビルドし/user/vishal/WordCount.jar(これが HDFS ではなくローカル ディレクトリであることを確認してください)、クラス名の末尾に「.java」を付けずにコマンドを実行します。また、質問のコマンドの最後にドットを付けましたが、実際のコマンドにはそれがないことを願っています。

bin/hadoop jar /user/vishal/WordCount.jar com.WordCount /user/vishal/file01 /user/vishal/output

詳細については、Hadoop チュートリアルの「使用方法」セクションを参照してください。

于 2012-11-12T11:31:30.107 に答える