簡體   English   中英

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

我不知道從這里去哪里。

謝謝,

hadoop-env.sh添加JAVA_HOME指向您的openjdk hadoop-env.sh添加以下行:

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

注意:也在.bashrc中更改JAVA_HOME路徑

更新一:

在終端中運行這些命令。 (這會將/ 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

注意:如果在指定的路徑中沒有javajavac ,它將位於/ jre文件夾中。 分別更改。

看來您同時安裝了Java 1.6、1.7和1.8(在這里我指的是JRE / JDK)。 完全可以,因為Java安裝通常是通過Alternatives子系統進行管理的。

問題是(與您的期望相反)設置JAVA_HOME不會選擇使用哪個Java。 這是通過提到的替代子系統來完成的。 JAVA_HOME變量本身只是附加配置,並且無權覆蓋要求啟動java進程的執行內容。

此外,除非您要進入以給定字符串開頭的第一個目錄,否則運行cd java*並不是一個好主意。 嘗試運行ls java*以了解我的觀點。 同樣,這里還可以有多個不同版本的Java,這要歸功於Alternatives子系統。

另一個問題是,您混用了可能尚未安裝的各種java-8-oracle版本( java-8-oraclejava-6-sunjava-1.6.0-openjdk

要檢查安裝了哪個java,請運行:

alternatives --display java

然后根據結果,切換到Java的一個版本,並相應地設置JAVA_HOME

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM