복붙노트

[HADOOP] JRE를 사용하여 sqoop을 실행하는 것처럼 보이지만 JAVA_HOME은 JDK로 설정됩니다.

HADOOP

JRE를 사용하여 sqoop을 실행하는 것처럼 보이지만 JAVA_HOME은 JDK로 설정됩니다.

우분투에서 sqoop (sqoop-1.4.3.bin__hadoop-1.0.0)을 설정하려고했습니다. 나는 문제없이 기본 sqoop 도움 등을 실행할 수있다. 다음을 실행하면 오류가 발생합니다.

sqoop import --connect jdbc:mysql://localhost/test --table sales -m 1

13/04/19 10:35:24 INFO orm.CompilationManager: HADOOP_MAPRED_HOME is /opt/hadoop/hadoop-1.0.4
13/04/19 10:35:24 ERROR orm.CompilationManager: It seems as though you are running sqoop with a JRE.
13/04/19 10:35:24 ERROR orm.CompilationManager: Sqoop requires a JDK that can compile Java code.
13/04/19 10:35:24 ERROR orm.CompilationManager: Please install a JDK and set $JAVA_HOME to use it.
13/04/19 10:35:24 ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: Could not start Java compiler.
    at org.apache.sqoop.orm.CompilationManager.compile(CompilationManager.java:176)

나는이 오류에 대한 답을 찾기 위해 인터넷 검색을 시도했는데, 대부분의 대답은 JAVA_HOME을 JDK에 설정하는 것입니다.이 패키지는 ~ / .bashrc [Ubuntu]에 있습니다.

$ echo $JAVA_HOME
/usr/lib/jvm/jdk1.7.0_15

이것들은 제가 설정 한 다른 변수들입니다 :

export HADOOP_COMMON_HOME=/opt/hadoop/hadoop-1.0.4
export HADOOP_MAPRED_HOME=/opt/hadoop/hadoop-1.0.4
export SQOOP_HOME=/opt/hadoop/sqoop-1.4.3.bin__hadoop-1.0.0
export PATH=$PATH:$SQOOP_HOME/bin

나는 또한 lib 폴더에 mysql jdbc 드라이버를 추가했다.

왜 내가이 오류가 발생합니다 어떤 아이디어? 미리 감사드립니다. 디디

해결법

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

    1.Scoop은 가져올 테이블의 스키마를 나타내는 Java 클래스를 작성합니다. 따라서 클래스를 작성하려면 jre 대신 jdk가 필요합니다.

    Scoop은 가져올 테이블의 스키마를 나타내는 Java 클래스를 작성합니다. 따라서 클래스를 작성하려면 jre 대신 jdk가 필요합니다.

    ./bashrc에 JAVA_HOME을 설정하고 $ HADOOP_HOME / conf / hadoop-env.sh도 설정하십시오.

    그게 효과가있다.

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

    2.Sqoop은 결국 Hadoop 쉘 스크립트를 실행할 것이므로 Hadoop이 JRE 대신 JDK를 사용하도록 올바르게 구성되었는지 확인해야합니다.

    Sqoop은 결국 Hadoop 쉘 스크립트를 실행할 것이므로 Hadoop이 JRE 대신 JDK를 사용하도록 올바르게 구성되었는지 확인해야합니다.

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

    3.나는 우분투에서 같은 문제가 있었다.

    나는 우분투에서 같은 문제가 있었다.

    My $ JAVA_HOME이 / usr / lib / jvm / java-7-openjdk-amd64로 올바르게 설정되었지만 / usr / lib / jvm / java-7-openjdk-amd64 / bin을 보면 "javac" . Sqoop이 필요하지만 찾을 수없는 것입니다.

    그래서 문제는 Java 컴파일러가 없어도 Java 설치가 이루어 졌다는 것입니다. 해결책은 그 때 아주 간단했다 :

    sudo apt-get install openjdk-7-jdk
    
  4. from https://stackoverflow.com/questions/16101967/it-seems-as-though-you-are-running-sqoop-with-a-jre-but-java-home-set-to-jdk by cc-by-sa and MIT license