簡體   English   中英

Hadoop MAC OS安裝問題

[英]Hadoop MAC OS installation woes

因此,我嘗試按照此注釋中的步驟在MAC OS X Leopard上安裝hadoop: 在OS X Single Node Cluster上運行Hadoop

我到達了步驟4:格式化和運行Hadoop,在其中輸入了以下內容:

hadoop-*/bin/hadoop namenode -format

這產生了以下令人不愉快的輸出:

Macbook009:~ Hadoop$ hadoop-*/bin/hadoop namenode -format
    Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:676)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:317)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:375)
Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:676)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:317)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:375)

我進行了一些谷歌搜索,並了解到JAVA_HOME可能不正確。 我創建了一個.bash_profile文件,如下所示:

export JAVA_HOME=/system/Library/Frameworks/JavaVM.framework/Versions/1.6/Home
export HADOOP_HOME=~/Users/Hadoop/hadoop-0.20.203.0

export PATH=$HADOOP_HOME/bin:$PATH

不行 同樣的錯誤。 我究竟做錯了什么?

我懷疑實際運行Hadoop的JVM不是預期的JVM,而是較舊的JVM(Java 5)。 通過運行ps (或任何等效於Mac的Mac)並檢查命令行來驗證這一點。

嘗試將$HADOOP_HOME/conf/hadoop-env.sh中的JAVA_HOME設置為與.bash_profile相同的路徑。

設置JAVA_HOME可能仍然是一個問題,因為它可能與Web上的示例不同。 在終端中使用此命令查找您的JAVA_HOME目錄/ usr / libexec / java_home

這是由於您正在運行的jre早於編譯類文件的jre而引起的。 例如,以1.5 jre運行1.6編譯的Java。 如果該類僅針對1.6進行編譯,則無法與1.5一起使用。

做一個

  java -version

看看你有哪個孩子。 很可能您有一個舊的,需要升級。

嘗試輸入jps並查看實際正在運行多少個節點。 應該有6個。 希望你不會有問題。

以下步驟對我來說是無縫的:

http://ragrawal.wordpress.com/2012/04/28/installing-hadoop-on-mac-osx-lion

對於wordcount示例,您需要將文件復制到hdfs,您可以在以下命令中找到該命令:(這是我在遵循上一頁之后的唯一努力)。

http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/#running-a-mapreduce-job

但是,對於OS X的較新版本(如10.9),上述設置PATH不起作用。

找到了一種可以在文件/ etc / paths中為MAC添加默認PATH環境的方法。

在SUDO模式下使用Terminal打開此文件。

$ sudo nano / etc / paths(在提示時輸入密碼)。

以以下格式附加路徑。

/users/hadoop/hadoop-1.2.1/bin

/users/hadoop/hadoop-1.2.1/sbin

保存文件並重新啟動計算機。 下次無需鍵入整個命令即可從Script運行Hadoop腳本命令。

暫無
暫無

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

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