2016-04-24 69 views
0

我基本上有this問題,除了當我去哪裏安裝hadoop的文件夾,沒有hadoop/config,所以我不知道在哪裏尋找hadoop-env.sh。如何讓Hadoop查找我的最新數據Java而不是我的強制性OSX舊版Java?溝通正確的Java版本到Hadoop

+0

安裝hadoop究竟在哪裏? hadoop目錄裏面是什麼? – JosEduSol

+0

Homebrew在'/ usr/local/Cellar/hadoop'中安裝了Hadoop。裏面唯一的東西是一個目錄'2.7.1'。其中,我在'usr/local/Cellar/hadoop/2.7.1/libexec/etc/hadoop/hadoop-env.sh'中找到了hadoop-env文件。 –

+0

那麼問題解決了嗎? – JosEduSol

回答

1

我試過的Hadoop-2.7.2本地,以我的經驗,你可以通過環境HADOOP_CONF_DIR指定配置目錄。

說得很簡單,你可以在start-dfs.sh開始HDFS之前export HADOOP_CONF_DIR。在這一點上,你可以添加你自己的JAVA_HOME$HADOOP_CONF_DIR/hadoop-env.sh。順便說一下,$HADOOP_CONF_DIR通常指向hadoop版本的目錄副本。例如,在hadoop-2.7.2中,您可以複製hadoop-2.7.2/etc/hadoop/並更新必要的配置並將其指定爲您自己的HADOOP_CONF_DIR

感謝eric_kernfeld的改進:

UPDATE:因爲OP採用自制的安裝,有多個 目錄命名hadoop和OP要經過 <version>/libexec/etc/hadoop.

在結束,hadoop-2.7.2/etc/hadoop/(請使用您自己的版本,而不是2.7.2)是默認的HADOOP_CONF_DIR,這意味着您可以更新hadoop-2.7.2/etc/hadoop/hadoop-env.sh ISH。

但是,如果您的hadoop早於2.x.x版,可能會有所不同。

+0

由於有多個名爲'hadoop'的目錄,'etc'幫助我找到了正確的目錄,我接受了這個答案。但是,如你所示,我必須通過'/libexec/etc/hadoop',而不是'/etc/hadoop'。我可以編輯你的答案來包含這個嗎? –

+0

我很欣賞你可以改進它。非常感謝你! –

+0

實際上,我忽略了一個事實,即您不使用hadoop版本的tarball,而是從操作系統源代碼庫中使用。在我的嘗試中,我只從官方[網站](http://apache.fayea.com/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz)下載了tarball並將其解壓並更新必要的環境。在我的情況下,它實際上在目錄'hadoop-x.x.x/etc/hadoop'中。我很抱歉沒有明確說明。 –

0

對於Hadoop 2+,hadoop-env.sh文件應該直接在hadoop/hadoop-env.sh中。

如果不存在該文件,你可以創建它,並把裏面的:

export JAVA_HOME={your java home path}