2012-07-03 87 views
0

這是我下面的教程:Ubuntu的Hadoop的類路徑

http://wiki.apache.org/hadoop/Running_Hadoop_On_Ubuntu_Linux_(Single-Node_Cluster

我試圖格式化HDFS的NameNode

[email protected]:/usr/local/hadoop/bin# ./hadoop namenode -format 
    ./hadoop: line 258: /usr/lib/jvm/java-6-sun/bin/java: No such file or directory 
    ./hadoop: line 289: /usr/lib/jvm/java-6-sun/bin/java: No such file or directory 
    ./hadoop: line 289: exec: /usr/lib/jvm/java-6-sun/bin/java: cannot execute: No such file or directory 

我也包括我對所做的更改/ etc/bash.bashrc。這些被做配置路徑:

export JAVA_HOME=/usr/lib/jvm/java-6-openjdk 
export JDK_HOME=$JAVA_HOME 
export PATH=$PATH:$JAVA_HOME/bin 

我檢查,看看如果Java變量是被設置 echo $JAVA_HOME。下面是路徑

/usr/lib/jvm/java-6-openjdk 

which java返回不同的二進制比$JAVA_HOME點。解決這個問題的最好方法是什麼?

+0

很明顯,'java'是在別的地方。而不是改變系統範圍的'.bashrc'(你的文件名是一個錯字?)改變你自己的。在shell提示符下鍵入'which java'來查看它試圖執行的內容。從那裏拿走。 –

+0

好的,我檢查哪個java返回/ usr/bin/java我收集它是在錯誤的地方,但不知道如何修復它 – alex

+0

那麼,這可能是一個符號鏈接到真正的Java - 把*你的* Java路徑* first *因此它覆蓋了現有的'$ PATH'中的內容。既然你把你的秒,它會首先找到所有的默認javas。 –

回答

1

步驟1:

export JAVA_HOME=/path/to/java 
export HADOOP_HOME=/path/to/hadoop 

步驟2:設置JAVA_HOME路徑CONF/hadoop-env.sh

步驟3:CONF /芯-site.xml中:

<configuration> 
    <property> 
    <name>fs.default.name</name> 
    <value>hdfs://localhost:9000</value> 
    </property> 
</configuration> 

第4步:conf/hdfs-site.xml:

<configuration> 
    <property> 
    <name>dfs.replication</name> 
    <value>1</value> 
    </property> 
</configuration> 

第5步: CONF/mapred-site.xml中:

<configuration> 
    <property> 
    <name>mapred.job.tracker</name> 
    <value>localhost:9001</value> 
    </property> 
</configuration> 

步驟6:登錄SSH本地主機和格式的新的分佈式文件系統

bin/hadoop namenode -format 

步驟7:啓動Hadoop守護進程:

bin/start-all.sh 

第8步:檢查NameNode & JobTracker以下端口

http://localhost:50070/ 
http://localhost:50030/ 
0

我發現一個有趣的解決方案:
如果你echo $JAVA_HOME,你可能會得到/usr/bin/java
echo export $JAVA_HOME=/usr/ >> conf/hadoop-env.sh

0

你可以測試一下:whereis java 如果你能看到Java的當前位置,然後鍵入env看你的路徑。 如果你有什麼問題,你需要重置你的java路徑和hadoop路徑。