복붙노트

[HADOOP] java.lang.ClassNotFoundException가 :에 의한 org.apache.hadoop.mapreduce.InputFormat

HADOOP

java.lang.ClassNotFoundException가 :에 의한 org.apache.hadoop.mapreduce.InputFormat

나는 MAC OSX 10.9.4에서 Sqoop을 가져 오기를하고 같은 오류를 얻고있다 :

14/10/24 11:51:41 INFO sqoop.Sqoop: Running Sqoop version: 1.4.5
14/10/24 11:51:41 INFO tool.BaseSqoopTool: Using Hive-specific delimiters for output. You can override
14/10/24 11:51:41 INFO tool.BaseSqoopTool: delimiters with --fields-terminated-by, etc.
14/10/24 11:51:41 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
14/10/24 11:51:41 INFO tool.CodeGenTool: Beginning code generation
14/10/24 11:51:42 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `test_log` AS t LIMIT 1
14/10/24 11:51:42 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `test_log` AS t LIMIT 1
14/10/24 11:51:42 INFO orm.CompilationManager: HADOOP_MAPRED_HOME is /Users/hadoop/hadoop-2.5.1/share/hadoop/mapreduce
Note: /tmp/sqoop-hadoop/compile/2398ed5be0489f1c76d6fb556f3e0e9d/test_log.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
14/10/24 11:51:45 INFO orm.CompilationManager: Writing jar file: /tmp/sqoop-hadoop/compile/2398ed5be0489f1c76d6fb556f3e0e9d/test_log.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/mapreduce/InputFormat
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:455)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:367)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:455)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:367)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:455)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:367)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:455)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:367)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at org.apache.sqoop.manager.ImportJobContext.<init>(ImportJobContext.java:51)
    at com.cloudera.sqoop.manager.ImportJobContext.<init>(ImportJobContext.java:33)
    at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:483)
    at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:601)
    at org.apache.sqoop.Sqoop.run(Sqoop.java:143)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
    at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:218)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227)
    at org.apache.sqoop.Sqoop.main(Sqoop.java:236)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.mapreduce.InputFormat
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 58 more

하둡 버전 : 2.5.1 Sqoop을 버전 : 1.4.5 OS : OSX10.9.4

ENV 변수가 설정되어 있습니다 :

또한 core.jar를가 존재

해결법

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

    1.

    for f in ${HADOOP_MAPRED_HOME}/*.jar; do
    HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:$f;
    done  
    

    빈 / 구성 - Sqoop을이 추가

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

    2.어떻게 든 항아리에 액세스 할 수 없습니다했다. HDFS에서 Sqoop을 단지 퍼 팅 후, Sqoop을 가져 오기는 잘 갔다. 이 링크는 도움 Sqoop을 jar 파일을 찾을 수 없습니다

    어떻게 든 항아리에 액세스 할 수 없습니다했다. HDFS에서 Sqoop을 단지 퍼 팅 후, Sqoop을 가져 오기는 잘 갔다. 이 링크는 도움 Sqoop을 jar 파일을 찾을 수 없습니다

  3. ==============================

    3.라이브러리를 찾을 수 있습니다 $ HADOOP_COMMON_LIB_NATIVE_DIR의 경우를 확인하십시오. 그렇지 않으면 당신은 당신의 맵리 듀스 구현의 같은 디렉토리에 넣어 수 있습니다 :

    라이브러리를 찾을 수 있습니다 $ HADOOP_COMMON_LIB_NATIVE_DIR의 경우를 확인하십시오. 그렇지 않으면 당신은 당신의 맵리 듀스 구현의 같은 디렉토리에 넣어 수 있습니다 :

    /Users/hadoop/hadoop-2.5.1/share/hadoop/mapreduce/

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

    4.저도 같은 문제를 겪고! 그냥 sqooq에서 lib 폴더에 하둡 - 맵리 듀스 클라이언트 코어-3.0.0-SNAPSHOT.jar를 복사합니다. 더러운하지만 작동합니다. 당신은 아마 그냥 몇 가지 테스트를 만들고 싶어

    저도 같은 문제를 겪고! 그냥 sqooq에서 lib 폴더에 하둡 - 맵리 듀스 클라이언트 코어-3.0.0-SNAPSHOT.jar를 복사합니다. 더러운하지만 작동합니다. 당신은 아마 그냥 몇 가지 테스트를 만들고 싶어

  5. ==============================

    5.CD $ SQOOP_HOME / 빈

    CD $ SQOOP_HOME / 빈

    정력 구성-Sqoop을

    라인 아래에 추가

    add_to_classpath ${HADOOP_MAPRED_HOME}
    

    이후 "add_to_classpath의 $ {SQOOP_JAR_DIR}"

  6. from https://stackoverflow.com/questions/26542874/caused-by-java-lang-classnotfoundexception-org-apache-hadoop-mapreduce-inputfo by cc-by-sa and MIT license