【问题标题】:(HBase) Error: JAVA_HOME is not set and Java could not be found(HBase) 错误:未设置 JAVA_HOME 且找不到 Java
【发布时间】:2014-01-14 15:10:35
【问题描述】:

我已经阅读了一些关于设置 JAVA_HOME 的 cmets。因为我是这方面的初学者,所以在不知道自己在做什么的情况下,我没有编辑任何东西。我不想把事情搞得更糟。 所以如果你能指导我完成这个并告诉我我的编码有什么问题,我将非常感激。

我一直在尝试安装 Hadoop,然后是 HBase。经过很多困难和错误解决,我终于可以安装 Hadoop,并在我运行 start-all.sh 时得到这个输出,一切似乎都很好。

> hduser@CSLAP106:~$ /usr/local/hadoop/bin/start-all.sh

> hduser@CSLAP106:~$ jps

> 3005 NameNode

> 3404 JobTracker

> 5570 Jps

> 3554 TaskTracker

> 3311 SecondaryNameNode

我也有这个 Java 版本,当我输入 echo JAVA_HOME 时,我得到这个输出:

> hduser@CSLAP106:~$ java -version 
> 
> java version "1.7.0_25" OpenJDK Runtime Environment (IcedTea 2.3.12)
> (7u25-2.3.12-4ubuntu3)   OpenJDK Server VM (build 23.7-b01, mixed
> mode) 
> hduser@CSLAP106:~$ echo JAVA_HOME JAVA_HOME

在此之后,我尝试安装 HBase(我认为我即将放弃),并且不断收到 JAVA_HOME is not set and java cannot be found 的错误

这是我尝试启动 Hbase 的:

hduser@CSLAP106:~$ /usr/local/hbase/hbase-0.94.6.1/bin/start-hbase.sh
+======================================================================+
|      Error: JAVA_HOME is not set and Java could not be found         |
+----------------------------------------------------------------------+
| Please download the latest Sun JDK from the Sun Java web site        |
|       > http://java.sun.com/javase/downloads/ <                      |
|                                                                      |
| HBase requires Java 1.6 or later.                                    |
| NOTE: This script will find Sun Java whether you install using the   |
|       binary or the RPM based installer.                             |
+======================================================================+

我还检查了这个目录/usr/local/hbase/hbase-0.94.6.1/bin,看看它是否识别 Java,它确实识别了!

在搜索了 Strackoverflow 和其他人对同一问题的答案后,我尝试将它们应用于我的 .xml 和 .sh 文件,但再次没有任何反应。

对于 HADOOP

这是我设置 JAVA_HOME 的hadoop-env.sh

# The java implementation to use.  Required.
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386

这是my $HOME/.bashrc的编辑:

# Set Hadoop-related environment variables
export HADOOP_HOME=/usr/local/hadoop

export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-i386

# Add Hadoop bin/ directory to PATH

export PATH=$PATH:$HADOOP_HOME/bin

对于 HBase

这些是我在hbase-site.xml中所做的修改

<property>
        <name>hbase.rootdir</name>
    <value>hdfs://localhost:54310 /hbase</value>
</property>

这是给hbase-env.sh

# The java implementation to use.  Java 1.6 required.
# export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-i386

这就是我的猜测。

【问题讨论】:

  • export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-i386 in hbase-env.sh 被注释掉了?
  • @DavidEverlöf:评论被淘汰是什么意思?我想我第一次阅读您的评论时,我理解错了。我以为您的意思是我应该在该评论中添加“#”,但当我这样做时,我开始收到错误消息!所以我猜你的意思是'outcommented'我不太明白的东西!
  • 我的意思是 # export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-i386 的行不应该有一个 startint # 而是 export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-i386
  • @DavidEverlöf:非常感谢大卫!这解决了我的问题。 HBase 刚刚启动,但是,当我输入 JPS 时,它没有给我我正在寻找的 H Master。它显示starting master, logging to /usr/local/hbase/hbase-0.94.6.1/bin/../logs/hbase-hduser-master-CSLAP106.out /usr/local/hbase/hbase-0.94.6.1/bin/hbase-daemon.sh: line 150: /usr/local/hbase/hbase-0.94.6.1/bin/../logs/hbase-hduser-master-CSLAP106.log: No such file or directory
  • 您确定以 root 身份运行脚本吗?

标签: java hadoop hbase java-home


【解决方案1】:

虽然您可以在本地运行 java -version,但 HBase 显然找不到 JAVA_HOME 和 java 二进制文件。

您应该在运行 HBase 之前运行 export JAVA_HOME=/the/path/of/you/jdk/

BTY,echo JAVA_HOME JAVA_HOME 不正确。你可能想要echo $JAVA_HOME

【讨论】:

    【解决方案2】:

    Hbase 尝试读取在 hbase-env.sh 文件中设置的 JAVA_HOME 目录。

    在 hbase-env.sh 文件中

    export JAVA_HOME=/usr/java/jdk1.6.0/ is set and commented.
    

    为 hbase 设置的默认 JAVA_HOME。

    如果您将 java home 设置在不同的目录中,请编辑该行并将其注释掉。

    它会解决你的问题。

    【讨论】:

      【解决方案3】:

      请参考以下内容:

      "Java 需要安装且可用。如果您收到指示未安装 Java 的错误,但它在您的系统上,可能位于非标准位置,请编辑 conf/hbase-env.sh 文件并修改 JAVA_HOME 设置以指向包含您系统的 bin/java 的目录。"

      链接是http://hbase.apache.org/book/quickstart.html

      【讨论】:

        【解决方案4】:

        如果您已经在 ~/.bashrc 文件中设置了 JAVA_HOME 路径,但 Hbase 仍然出现“找不到 JAVA_HOME”的错误,请在 /etc/environment 文件中设置 JAVA_HOME。

        我遇到了这个问题,当我在“/etc/environment”中设置 JAVA_HOME 时它对我有用

        【讨论】:

          【解决方案5】:

          只需像这样修改hbase-env.sh

          export JAVA_HOME=/your/java/path
          

          我不知道为什么/etc/profile java 路径不起作用,但这种方式会对你有所帮助。

          【讨论】:

            【解决方案6】:

            您必须设置 JAVA 主页 -> 您可以通过两种方式进行此操作

            在 ~/hbase-0.98.10-hadoop1/conf 中设置 hbase-env.sh 中的路径 JAVA_HOME = 'PATH/TO/JAVE_HOME'

            或者在终端下 sudo 执行 user$ export JAVA_HOME = 'PATH/TO/JAVE_HOME'

            在 OS X (10) 上完成,希望对您有所帮助!

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-01-29
              • 1970-01-01
              • 1970-01-01
              • 2012-02-08
              • 1970-01-01
              • 2019-01-22
              相关资源
              最近更新 更多