복붙노트

[HADOOP] hadoop 단어 계산 예제를 실행할 수 없습니까?

HADOOP

hadoop 단어 계산 예제를 실행할 수 없습니까?

난 우분투 12.04에서 VM웨어의 단일 노드 환경에서 hadoop 단어 계산 예제를 실행하고 있습니다. 나는 다음과 같은 예제를 실행한다.

hadoop@master:~/hadoop$ hadoop jar hadoop-examples-1.0.4.jar wordcount    
/home/hadoop/gutenberg/ /home/hadoop/gutenberg-output

아래 위치에 파일을 입력했습니다 :

/home/hadoop/gutenberg

출력 파일의 위치는 다음과 같습니다.

    /home/hadoop/gutenberg-output

내가 다음과 같은 오류 메시지가 나타납니다 wordcount 프로그램을 실행할 때 : -

 13/04/18 06:02:10 INFO mapred.JobClient: Cleaning up the staging area     
hdfs://localhost:54310/home/hadoop/tmp/mapred/staging/hadoop/.staging/job_201304180554_0001       
13/04/18 06:02:10 ERROR security.UserGroupInformation: PriviledgedActionException       
as:hadoop cause:org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory 
/home/hadoop/gutenberg-output already exists 
org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory 
/home/hadoop/gutenberg-output already exists at 

org.apache.hadoop.mapreduce.lib.output.FileOutputFormat.checkOutputSpecs(FileOutputFormat.j 
ava:137) at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:887) at 
org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:850) at 
java.security.AccessController.doPrivileged(Native Method) at 
javax.security.auth.Subject.doAs(Subject.java:416) at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121) at   
org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:850) at  
org.apache.hadoop.mapreduce.Job.submit(Job.java:500) at  
org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:530) at 
org.apache.hadoop.examples.WordCount.main(WordCount.java:67) at 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:616) at 
org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68) 
at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:139) at 
org.apache.hadoop.examples.ExampleDriver.main(ExampleDriver.java:64) at 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:616) at   
org.apache.hadoop.util.RunJar.main(RunJar.java:156) hadoop@master:~/hadoop$ bin/stop-
all.sh Warning: $HADOOP_HOME is deprecated. stopping jobtracker localhost: stopping   
tasktracker stopping namenode localhost: stopping datanode localhost: stopping 
secondarynamenode    hadoop@master:~/hadoop$

해결법

  1. ==============================

    1.이미 존재하는 출력 파일을 삭제하거나 다른 파일로 출력하십시오.

    이미 존재하는 출력 파일을 삭제하거나 다른 파일로 출력하십시오.

    (나는 당신이 생각한 오류 메시지의 다른 해석에 대해 조금 궁금해합니다.)

  2. ==============================

    2.Dave (예외)와 마찬가지로 출력 디렉토리가 이미 존재합니다. 다음을 사용하여 먼저 다른 디렉토리로 출력하거나 기존 디렉토리를 제거해야합니다.

    Dave (예외)와 마찬가지로 출력 디렉토리가 이미 존재합니다. 다음을 사용하여 먼저 다른 디렉토리로 출력하거나 기존 디렉토리를 제거해야합니다.

    hadoop fs -rmr /home/hadoop/gutenberg-output
    
  3. ==============================

    3.자신 만의 .jar 파일을 생성하여 실행하려고한다면 다음 사항에주의하십시오.

    자신 만의 .jar 파일을 생성하여 실행하려고한다면 다음 사항에주의하십시오.

    직업을 운영하려면 다음과 같이 작성해야합니다.

    hadoop jar <jar-path> <package-path> <input-in-hdfs-path> <output-in-hdfs-path>
    

    그러나 드라이버 코드를 면밀히 살펴보면 arg [0]을 입력으로, arg [1]을 출력으로 설정했음을 알 수 있습니다. 표시 할 내용은 다음과 같습니다.

    FileInputFormart.addInputPath(conf, new Path(args[0]));
    FileOutFormart.setOutputPath(conf, new Path(args[1]));
    

    그러나 hadoop은 대신 arg [0]을 로, 대신

    따라서 작동 시키려면 다음을 사용해야합니다.

    FileInputFormart.addInputPath(conf, new Path(args[1]));
    FileOutFormart.setOutputPath(conf, new Path(args[2]));
    

    arg [1]과 arg [2]를 사용하면 올바른 것을 얻을 수 있습니다! :) 희망이 도움이. 건배.

  4. ==============================

    4.'tmp'폴더가 있는지 확인하십시오.

    'tmp'폴더가 있는지 확인하십시오.

    hadoop fs -ls /

    출력 폴더를 보거나 'tmp'가 둘 다 삭제하면 (활성 작업이 실행 중이 지 않은 것으로 간주 됨)

    hadoop fs -rmr / tmp

  5. from https://stackoverflow.com/questions/16084998/unable-to-run-hadoop-wordcount-example by cc-by-sa and MIT license