복붙노트

[HADOOP] 클래스에 실패 하둡 항아리 실행을 찾을 수 없습니다

HADOOP

클래스에 실패 하둡 항아리 실행을 찾을 수 없습니다

내 하둡 작업을 실행하고 그것을 찾을 수 없습니다 클래스에 실패합니다. 총 4 개 자바 파일.

logProcessor.java
logMapper.java
logReducer.java
logParser.java

모든 유닉스의 COM 폴더에 내가있다 "패키지 닷컴을;" 모든 클래스의 첫 번째 행에서

당신이 명령 아래한다면 그 의미     헤드 -5 * 자바 당신은 볼 것이다     co.kr에서 패키지; 4 개 파일입니다.

logProcessor는 드라이버 클래스입니다. 모든 파일은 유닉스의 "COM"폴더에 있습니다.

ls -ltr com/
logProcessor.java
logMapper.java
logReducer.java
logParser.java

I compiled the java program and made a jar out of it.

hadoop jar /var/lib/hadoop-hdfs/xxxx/jarFiles/LogParser.jar com.LogProcessor /user/hdfs/flume/2015-03-30/03 /user/xxxx/output_xxx

그것은 오류가 아래에 나와 있습니다 :

Exception in thread "main" java.lang.ClassNotFoundException: com.RFCLogProcessor
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:270)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:201)

해결법

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

    1.첫째, 당신은 클래스 패스에 항아리 경로를 작성해야합니다. 의 .bashrc 파일로 jar 파일의 디렉토리 경로를 작성합니다.

    첫째, 당신은 클래스 패스에 항아리 경로를 작성해야합니다. 의 .bashrc 파일로 jar 파일의 디렉토리 경로를 작성합니다.

    그런 다음 명령 아래 사용 할 수 있습니다 :

    하둡 항아리 directorypath / yourjarname.jar packagename.mainclassname outputpath

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

    2.내가하고 있던 모든 권리이었다. didnt가 생성되었다 클래스가 가지고 그들에 실행 권한을 제외하고

    내가하고 있던 모든 권리이었다. didnt가 생성되었다 클래스가 가지고 그들에 실행 권한을 제외하고

    그래서 내가 그랬어

    chmod를 -R 777 /

    다시 jar'd과 같은 위의 명령을 실행하고 실행.

  3. from https://stackoverflow.com/questions/29438893/hadoop-jar-execution-failing-on-class-not-found by cc-by-sa and MIT license