有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

ubuntu在独立模式下运行Hadoop:bin/Hadoop:line 350:/usr/local/java/jdk1。8.O/bin/java:没有这样的文件或目录

我知道这类问题被问了很多次,但我还是不知道我的具体问题

我已经安装了Hadoop,并获得了所有必需的jar:

yosh@yosh-VirtualBox:~/hadoop$ ls
hadoop-1.2.1  hadoop-1.2.1.tar.gz

yosh@yosh-VirtualBox:~/hadoop/hadoop-1.2.1$ ls
bin          hadoop-ant-1.2.1.jar          input        README.txt
build.xml    hadoop-client-1.2.1.jar       ivy          sbin
c++          hadoop-core-1.2.1.jar         ivy.xml      share
CHANGES.txt  hadoop-examples-1.2.1.jar     lib          src
conf         hadoop-minicluster-1.2.1.jar  libexec      webapps
contrib      hadoop-test-1.2.1.jar         LICENSE.txt
docs         hadoop-tools-1.2.1.jar        NOTICE.txt

我会根据需要设置档案中的变量:

export JAVA_HOME=/usr/local/java/jdk1.8.o
PATH=$PATH:$JAVA_HOME/bin
JRE_HOME=/usr/local/java/jre1.8.o
PATH=$PATH:$JRE_HOME/bin
HADOOP_INSTALL=/home/hadoop/Hadoop/hadoop-1.2.1
PATH=$PATH:$HADOOP_INSTALL/bin
export JAVA_HOME
export JRE_HOME
export PATH

我安装了java:

yosh@yosh-VirtualBox:~$ java -version
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)

我也能在家里回音

yosh@yosh-VirtualBox:~$ echo $JAVA_HOME
/usr/local/java/jdk1.8.O

我看到其他一些问题提到我应该编辑hadoop配置。嘘

所以我也尝试了这个(在那个文件中):

# we use in Hadoop. Tune the variable down to prevent vmem explosion.
export MALLOC_ARENA_MAX=${MALLOC_ARENA_MAX:-4}   
export HADOOP_HOME=${HADOOP_PREFIX}
export HADOOP_HOME 
_WARN_SUPPRESS=1
export $JAVA_HOME # ive added here the java home

因此,我试图在独立模式下运行Hadoop,但当我运行Hadoop时(我已经创建了输入并复制了一些文本文件),我得到:

yosh@yosh-VirtualBox:~/hadoop/hadoop-1.2.1$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'
bin/hadoop: line 350: /usr/local/java/jdk1.8.O/bin/java: No such file or directory

我就是找不到答案,任何帮助都将不胜感激

顺便说一句,我使用的是Ubuntu 14.04


共 (1) 个答案

  1. # 1 楼答案

    看起来像是打字错误

    你有:

    export JAVA_HOME=/usr/local/java/jdk1.8.O
    PATH=$PATH:$JAVA_HOME/bin
    JRE_HOME=/usr/local/java/jre1.8.O
    PATH=$PATH:$JRE_HOME/bin
    

    O不是0;)换一下这些就可以了

    还有,为什么同时定义JAVA_HOMEJRE_HOME?我有一种预感,他们是一样的;要确认,请尝试以下操作:

    $ echo $(readlink -e $JAVA_HOME)
    $ echo $(readlink -e $JRE_HOME)
    

    如果这些都是相同的,你可以直接删除JRE_HOME。我怀疑Hadoop会优先考虑JAVA_HOME