2
mark@maestro1:/usr/lib/hadoop/wordcount_classes$ javac -classpath /usr/lib/hadoop/hadoop-common-2.0.0-cdh4.0.1.jar:/usr/lib/hadoop/client/hadoop-mapreduce-client-core-2.0.0-cdh4.0.1.jar -d /usr/lib/hadoop/wordcount_classes /usr/lib/hadoop/wordcount_classes/WordCount.java
/usr/lib/hadoop/hadoop-common-2.0.0-cdh4.0.1.jar(org/apache/hadoop/fs/Path.class):     
warning: Cannot find annotation method 'value()' in type 'LimitedPrivate': class file for org.apache.hadoop.classification.InterfaceAudience not found
/usr/lib/hadoop/wordcount_classes/WordCount.java:14: error: error while writing Map: could not create parent directories
public static class Map extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> {
            ^
1 error
1 warning

このエラーは何ですか?この wordcount.java ファイルをコンパイルできません!

Java クラスパスを正しく設定するように言われています。私がこれについてどのように行っているかについて、誰かコメントはありますか?助けてください!ありがとう!

4

1 に答える 1

4

これ

-d /usr/lib/hadoop/wordcount_classes

クラスファイルを書き込む場所を示します。これは正しいです ?そこに書き込む権限がないのではないかと思います。

error while writing Map: could not create parent directories

そのディレクトリにディレクトリを作成できますか (ヒント: use mkdir) ? /usr/libできたとしても、ディレクトリはこれを行うのに適した場所ではないと思います。ホームディレクトリ内で開発を行うことを期待しています。

/usr ディレクトリは通常、プログラムやライブラリなどのインストールに使用され、通常のユーザーには書き込みが制限されています。man hierUnix で使用されるさまざまなディレクトリの適切な説明を提供します。

于 2012-09-20T14:32:51.120 に答える