我已经准备好了 JAVA_HOME
当我 echo
它,我看到了正确的值:
$ echo $JAVA_HOME
/usr/lib/jvm/java-6-openjdk-amd64/
我还把 JAVA_HOME
hadoop-env.sh的值。
$ grep JAVA_HOME conf/hadoop-env.sh
# The only required environment variable is JAVA_HOME. All others are
# set JAVA_HOME in this file, so that it is correctly defined on
export JAVA_HOME="/usr/lib/jvm/java-6-openjdk-amd64/"
尽管如此,hadoop仍然显示了 JAVA_HOME
变量完全不同。我不知道它从哪里得到这个值。有什么建议吗?
$ hadoop noname -format
Warning: $HADOOP_HOME is deprecated.
/usr/bin/hadoop: line 320: /usr/lib/jvm/java-6-sun/bin/java: No such file or directory
/usr/bin/hadoop: line 390: /usr/lib/jvm/java-6-sun/bin/java: No such file or directory
9条答案
按热度按时间vqlkdk9b1#
在$hadoop\u home/etc/hadoop/hadoop-env.sh集合中
在$hadoop\u home/libexec/hadoop-config.sh中查找并修改
JAVA=$JAVA_HOME/bin/java
到e5nqia272#
我遇到了“error/usr/bin/java/bin/java不存在”
在~/.bashrc中,我把javau home设置为
/usr/bin/java
. 我看见他进来了hadoop/etc/hadoop-config.sh
它使用的$JAVA_HOME/bin/java
; 这就解释了那个错误。只是,它没有将其修复为remove/bin/java。为了找到答案,我通过我看到了
在我的bash提示中,我注意到最多的是箭头的左边是青色的,右边是绿色的。我想可能是个符号链接。这次我又做了一次
ls -al
“ing(the-al是非常重要的)符号链接位置(见下文),并注意到它看起来像另一个符号链接。我在箭头右边取了这个值,然后把它放在~/.bashrc中
最终配置
~/.bashrc
hadoop/etc/hadoop/hadoop-env.sh
hadoop/libexec/hadoop-config.sh
注意,我安装jdk是从via开始的
sudo apt-get install default-jdk
uxh89sit3#
如果有人面临同样的问题,请查看是否创建了/etc/hadoop目录。如果是,则指向
$JAVA_HOME
变量输入/etc/hadoop/hadoop-env.sh
到适当的jvm路径。jmp7cifd4#
我也有同样的问题,但对我来说是不同的问题。hadoop脚本期望/opt/hadoop/jdk1.0.7.40作为我的java主页。但我将其设置为/opt/hadoop/jdk1.0.7_。下划线起了作用。现在它正在工作。也许这对丹有帮助
n1bvdmb65#
我找到了一个有趣的解决办法:
如果你
echo $JAVA_HOME
,你可能会/usr/bin/java
echo export $JAVA_HOME=/usr/ >> conf/hadoop-env.sh
ht4b089n6#
把你的东西弄复杂了伙计们。。。。我有/usr/lib/java-1.8.0-openjdk\u blabla,而hadoop需要/usr/lib/java-1.8.0-openjdk\u yadiyada
然后我开始:cp-ar/usr/lib/java-1.8.0-openjdk\u blabla/usr/lib/java-1.8.0-openjdk\u yadiyada
而且很开心!不可能搞砸这些无意义的会议。。。
zte4gxcn7#
我在hadoop安装中也遇到了同样的问题。我发现在
/etc/hadoop/hadoop-env.sh
javau home被硬编码为/usr/lib/jvm/java-6-sun
. 我把它改成了${JAVA_HOME}
这似乎起到了作用。arknldoa8#
我敢肯定这不是理想的解决办法。但我就是这么做的:
我到处都是回音
/usr/local/hadoop/bin/hadoop
看看什么时候JAVA_HOME
设置为的静态(似乎是静态的)定义路径/usr/lib/jvm/java-6-sun
.我可以说这种事很快就会发生。我不知道为什么会这样。我在中安装了java
/usr/local/jdk1.7.0_17
在我的道路上正确地设置了javau家。有趣的是,我甚至没有安装Java6!所以这里是令人讨厌的部分。我去了它希望找到java-6-sun的地方,并设置了一个指向我的java安装的符号链接
然后一切都成功了。我知道这是一篇非常刻薄的文章,但也许这篇文章可以帮助其他人。
7gyucuyw9#
有两个
hadoop-env.sh
文件:一个在conf
子目录hadoop
目录下的一个/etc/hadoop
. 你需要改变$JAVA_HOME
两者都有。