Ubuntu 14 上的 Hadoop 安装 2.6.0 - Java 错误
Hadoop Installation 2.6.0 on Ubuntu 14 - Java Error
编辑
我正在尝试在我的 Ubuntu 14 机器上安装 Hadoop 2.6.0。不过我遇到了一个错误。
当我尝试为 Java 设置 HOME
变量时,它似乎没有按预期进行。
我在我的机器上 hduser
专门针对 运行 设置并使用 Hadoop。该用户是 sudoer。
一些信息:
java -version' gives the following
java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.5) (7u79-2.5.5-0ubuntu0.14.04.2)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)
这是我机器上安装的唯一版本,可以通过运行以下命令查看:
update-alternatives --display java
给出以下消息:
java - auto mode
link currently points to /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java - priority 1071
slave java.1.gz: /usr/lib/jvm/java-7-openjdk-amd64/jre/man/man1/java.1.gz
Current 'best' version is '/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java'.
然后我转到以下路径:
cd /usr/lib/jvm
然后我列出了内容ls
default-java java-1.7.0-openjdk-amd64 java-7-openjdk-amd64
然后我输入 cd java*
和 pwd
,这会出现以下路径:
/usr/lib/jvm/java-1.7.0-openjdk-amd64
好的,根据这些信息,我将该目录复制到 .bashrc
文件中,如下所示:
# The java implementation to use.
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
我填写的hadoop-env.sh
文件如下:
#Hadoop variables
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
然后我在终端输入 source ~/.bashrc
然后重新启动终端以将其设置为新的 Java 路径。输入 Hadoop -version 时,我得到以下输出:
/usr/bin/hadoop: line 350: /usr/lib/jvm/java-6-sun/bin/java: No such file or directory
/usr/bin/hadoop: line 434: /usr/lib/jvm/java-6-sun/bin/java: No such file or directory
我不知道从这里到哪里去。
谢谢,
看来你同时安装了java(我这里指的是JRE/JDK)1.6、1.7和1.8。这完全没问题,因为 java 安装通常通过替代子系统进行管理。
问题是(与您的预期相反)设置 JAVA_HOME
没有 select 使用 java。这是通过提到的替代子系统完成的。 JAVA_HOME
变量本身只是附加配置,当有人要求启动 java
进程时,它无权覆盖正在执行的内容。
此外 运行ning cd java*
并不是一个好主意,除非您想进入以给定字符串开头的第一个目录。尝试 运行 ls java*
看看我的观点。再一次,由于替代子系统,这里有多个不同版本的 java 是可以的。
另一个问题是你混合了不同风格的 java 你可能没有安装(java-8-oracle
vs java-6-sun
vs java-1.6.0-openjdk
.
要检查安装了哪个 java,运行:
alternatives --display java
然后根据结果,切换到java的一个版本并相应地设置JAVA_HOME
。
添加 JAVA_HOME
以指向 hadoop-env.sh
中的 openjdk
。在 hadoop-env.sh
中添加此行:
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
NOTE: Change JAVA_HOME path in .bashrc too
更新一:
运行 终端中的这些命令。 (这将在 /bin 中设置 java & javac 以使用你的 jdk)
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/java 1
sudo update-alternatives --config java
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/javac" 1
sudo update-alternatives --config javac
NOTE: If you dont have java and javac in the specified path, it will be inside /jre folder. Change it respectively.
编辑
我正在尝试在我的 Ubuntu 14 机器上安装 Hadoop 2.6.0。不过我遇到了一个错误。
当我尝试为 Java 设置 HOME
变量时,它似乎没有按预期进行。
我在我的机器上 hduser
专门针对 运行 设置并使用 Hadoop。该用户是 sudoer。
一些信息:
java -version' gives the following
java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.5) (7u79-2.5.5-0ubuntu0.14.04.2)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)
这是我机器上安装的唯一版本,可以通过运行以下命令查看:
update-alternatives --display java
给出以下消息:
java - auto mode
link currently points to /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java - priority 1071
slave java.1.gz: /usr/lib/jvm/java-7-openjdk-amd64/jre/man/man1/java.1.gz
Current 'best' version is '/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java'.
然后我转到以下路径:
cd /usr/lib/jvm
然后我列出了内容ls
default-java java-1.7.0-openjdk-amd64 java-7-openjdk-amd64
然后我输入 cd java*
和 pwd
,这会出现以下路径:
/usr/lib/jvm/java-1.7.0-openjdk-amd64
好的,根据这些信息,我将该目录复制到 .bashrc
文件中,如下所示:
# The java implementation to use.
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
我填写的hadoop-env.sh
文件如下:
#Hadoop variables
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
然后我在终端输入 source ~/.bashrc
然后重新启动终端以将其设置为新的 Java 路径。输入 Hadoop -version 时,我得到以下输出:
/usr/bin/hadoop: line 350: /usr/lib/jvm/java-6-sun/bin/java: No such file or directory
/usr/bin/hadoop: line 434: /usr/lib/jvm/java-6-sun/bin/java: No such file or directory
我不知道从这里到哪里去。
谢谢,
看来你同时安装了java(我这里指的是JRE/JDK)1.6、1.7和1.8。这完全没问题,因为 java 安装通常通过替代子系统进行管理。
问题是(与您的预期相反)设置 JAVA_HOME
没有 select 使用 java。这是通过提到的替代子系统完成的。 JAVA_HOME
变量本身只是附加配置,当有人要求启动 java
进程时,它无权覆盖正在执行的内容。
此外 运行ning cd java*
并不是一个好主意,除非您想进入以给定字符串开头的第一个目录。尝试 运行 ls java*
看看我的观点。再一次,由于替代子系统,这里有多个不同版本的 java 是可以的。
另一个问题是你混合了不同风格的 java 你可能没有安装(java-8-oracle
vs java-6-sun
vs java-1.6.0-openjdk
.
要检查安装了哪个 java,运行:
alternatives --display java
然后根据结果,切换到java的一个版本并相应地设置JAVA_HOME
。
添加 JAVA_HOME
以指向 hadoop-env.sh
中的 openjdk
。在 hadoop-env.sh
中添加此行:
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
NOTE: Change JAVA_HOME path in .bashrc too
更新一:
运行 终端中的这些命令。 (这将在 /bin 中设置 java & javac 以使用你的 jdk)
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/java 1
sudo update-alternatives --config java
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/javac" 1
sudo update-alternatives --config javac
NOTE: If you dont have java and javac in the specified path, it will be inside /jre folder. Change it respectively.