【问题标题】:It seems as though you are running sqoop with a JRE - But JAVA_HOME set to JDK好像您正在使用 JRE 运行 sqoop - 但 JAVA_HOME 设置为 JDK
【发布时间】:2013-04-19 09:56:39
【问题描述】:

我尝试在 Ubuntu 上设置 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

我还将mysql jdbc驱动添加到lib文件夹中。

任何想法为什么我会收到此错误? 提前致谢, 老爹

【问题讨论】:

    标签: hadoop java sqoop


    【解决方案1】:

    Scoop 创建代表您要导入的表的架构的 java 类。因此,要创建类,您需要 jdk 而不是 jre。

    ./bashrc$HADOOP_HOME/conf/hadoop-env.sh 中设置JAVA_HOME。

    应该可以的。

    【讨论】:

    • 非常感谢!我在 ./bashrc 中将 JAVA_HOME 设置为 JDK,但 $HADOOP_HOME/conf/hadoop-env.sh 仍在引用 JRE,所以我更改了它。现在一切顺利。
    • 嗨,我正在尝试将 sqoop 与 hadoop 连接。每次我尝试启动 sqoop 时,它都会给我这个错误“似乎您正在使用 JRE 运行 sqoop - 但 JAVA_HOME 设置为 JDK”Hadoop 版本 2.7.2 Hive 版本 1.2.1
    • @KJ_kaka 两个地方都设置了吗? (尽管这可能与 Hadoop 2 中的 Hadoop 1 不同。)
    • 非常感谢@MarkVickery 的回复...... HBase、Hive 和除 sqoop 外的其他组件工作正常。我检查了 .bashrc-file、hadoop-env.sh 文件,甚至还检查了 sqoop 文件。一切似乎都很好。我什至为“JRE” grep Hadoop 和 Sqoop 文件夹,但什么也没找到……这是我面临的一个奇怪的错误……
    【解决方案2】:

    Sqoop 最终会执行 Hadoop shell 脚本,所以我会确保您的 Hadoop 配置正确以使用 JDK 而不是 JRE。

    【讨论】:

      【解决方案3】:

      我在 Ubuntu 上遇到了同样的问题。

      我的 $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
      

      【讨论】:

        猜你喜欢
        • 2018-09-16
        • 1970-01-01
        • 2011-02-24
        • 2021-09-15
        • 2021-01-22
        • 2013-07-10
        • 1970-01-01
        • 2014-08-13
        • 1970-01-01
        相关资源
        最近更新 更多