WordCount class not foundとFileAlreadyExistsException、WordCountを実行
2087 ワード
Assuming that: /user/joe/wordcount/input - input directory in HDFS /user/joe/wordcount/output - output directory in HDFS
上記の意味では、hdfsでoutputを作成する必要はありません.作成すると、後のように報告されます.
Run the application:
ここで最初はWordCount.JAvaとコンパイルされたクラスファイルはすべて自分のディレクトリの下に置かれている(wc.jarパッケージはずっとHadoopディレクトリの下にある)、WordCountも絶対パスを書いている(javaファイルはどのパッケージの下にもなく、Hadoopサイトからコピーされている)が、最初はclass not foundの異常を報告し、その後Hadoopディレクトリの下でjavaファイルをコンパイルし、その後成功したのは、なぜかよく理解できない.
17/02/25 16:36:05 INFO client.RMProxy: Connecting to ResourceManager at master/192.168.28.131:8032 Exception in thread "main"org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://master:9000/user/daiqing/wordcount/output already exists
at org.apache.hadoop.mapreduce.lib.output.FileOutputFormat.checkOutputSpecs(FileOutputFormat.java:146)
at org.apache.hadoop.mapreduce.JobSubmitter.checkSpecs(JobSubmitter.java:266)
at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:139)
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1290)
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1287)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698)
at org.apache.hadoop.mapreduce.Job.submit(Job.java:1287)
at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1308)
at WordCount.main(WordCount.java:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
EXampleのWordCountを実行し、-filesを使用して外部ファイルの入力を行います
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount -files WordCount.java /user/daiqing/wordcount/input/user/daiqing/wordcount/output1
上記の意味では、hdfsでoutputを作成する必要はありません.作成すると、後のように報告されます.
Run the application:
$ bin/hadoop jar wc.jar WordCount /user/joe/wordcount/input /user/joe/wordcount/output
ここで最初はWordCount.JAvaとコンパイルされたクラスファイルはすべて自分のディレクトリの下に置かれている(wc.jarパッケージはずっとHadoopディレクトリの下にある)、WordCountも絶対パスを書いている(javaファイルはどのパッケージの下にもなく、Hadoopサイトからコピーされている)が、最初はclass not foundの異常を報告し、その後Hadoopディレクトリの下でjavaファイルをコンパイルし、その後成功したのは、なぜかよく理解できない.
17/02/25 16:36:05 INFO client.RMProxy: Connecting to ResourceManager at master/192.168.28.131:8032 Exception in thread "main"org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://master:9000/user/daiqing/wordcount/output already exists
at org.apache.hadoop.mapreduce.lib.output.FileOutputFormat.checkOutputSpecs(FileOutputFormat.java:146)
at org.apache.hadoop.mapreduce.JobSubmitter.checkSpecs(JobSubmitter.java:266)
at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:139)
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1290)
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1287)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698)
at org.apache.hadoop.mapreduce.Job.submit(Job.java:1287)
at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1308)
at WordCount.main(WordCount.java:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
EXampleのWordCountを実行し、-filesを使用して外部ファイルの入力を行います
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount -files WordCount.java /user/daiqing/wordcount/input/user/daiqing/wordcount/output1