2014-01-14 66 views
9

我读过一些关于设置JAVA_HOME的注释。由于我是初学者,所以在没有任何知识的情况下我没有编辑任何东西。我不想把事情搞得比这更糟糕。 所以如果你能指导我通过这个,告诉我我的编码有什么问题,我会非常感激。(HBase)错误:没有设置JAVA_HOME,Java无法找到

我一直在试图安装Hadoop和HBase。在经历了很多困难和错误解决之后,我终于可以安装Hadoop,并在运行start-all.sh时获得此输出,并且一切似乎都正常。

> [email protected]:~$ /usr/local/hadoop/bin/start-all.sh 

> [email protected]:~$ jps 

> 3005 NameNode 

> 3404 JobTracker 

> 5570 Jps 

> 3554 TaskTracker 

> 3311 SecondaryNameNode 

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

> [email protected]:~$ 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) 
> [email protected]:~$ echo JAVA_HOME JAVA_HOME 

在此之后,我试图安装HBase的(我觉得我快要放弃),并不断我得到的错误JAVA_HOME is not set and java cannot be found

这是我试图启动HBase的:

[email protected]:~$ /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的

这是hadoop-env.sh我在其中设置JAVA_HOME:

# 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 

这是我猜。

+1

'hbase-env.sh'中的'export JAVA_HOME =/usr/lib/jvm/java-1.7.0-openjdk-i386'是否已被注释掉? – netigger

+0

@DavidEverlöf:通过评论,你是什么意思?我想我第一次读你的评论,我错了。我以为你的意思是我应该在评论中加上'#',当我这样做时,我开始接受错误!所以我想你的意思是'outcommented'esle我没有完全得到! – Nazanin

+1

我的意思是''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'取而代之! – netigger

回答

4

显然HBase找不到JAVA_HOME和java二进制文件,尽管你可以在本地运行java -version

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

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

1

请参考以下:

“Java需要安装和使用。如果你表明没有安装Java的错误,但它是你的系统上,也许在一个非标准位置,编辑。 conf/hbase-env。SH文件并修改JAVA_HOME设置为指向包含斌/ Java的系统目录“

的联系是http://hbase.apache.org/book/quickstart.html

0

你必须设置Java主 - >你能做到这两个方面

要么设置在hbase-env.sh路径在〜/ HBase的-0.98.10-hadoop1/CONF JAVA_HOME = 'PATH/TO/JAVE_HOME'

或终端下须藤执行用户$出口JAVA_HOME =“PATH/TO/JAVE_HOME'

完成在OS X上(10)希望这有助于!

1

如果您已经在〜/ .bashrc文件中设置了JAVA_HOME路径,并且Hbase仍然给出了“JAVA_HOME not found”的错误,请在/ etc/environment文件中设置JAVA_HOME。

我面对这个问题和它的工作对我来说,当我设置JAVA_HOME在“的/ etc /环境”

0

就修改hbase-env.sh这样的:

export JAVA_HOME=/your/java/path 

我不知道是什么原因/etc/profile java的路径不起作用,但这种方式会帮助你。

1

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

在hbase-env.sh文件中#export JAVA_HOME =/usr/java/jdk1.6.0/被设置和注释。

但它是hbase的默认JAVA_HOME。如果您将java home设置在不同的目录中,请编辑该行并将其注释掉。

它会解决你的问题。