Windows安裝hadoop

來源:互聯網
上載者:User

首先安裝cygwin 見同一目錄下的“下載安裝Cygwin.mht”,或者上Google搜尋索引鍵“下載安裝Cygwin.mht”。
然後安裝hadoop-0.21.0,步驟如下10步:
 1. 開啟cygwin
 進入D盤目錄下的Hadoop檔案夾:cd D:/Hadoop
 2. 安裝hadoop:  tar -zvxf hadoop-0.20.1.tar.gz
 3. 解壓完成後進入hadoop-0.20.1的配置目錄,開啟core-site.xml,加入以下內容。這裡是定義namenode運行地址和連接埠
 <property>
  <name>fs.default.name</name>
  <value>hdfs://localhost:9000</value>
   </property>
 4. 開啟hdfs-site.xml,加入以下內容
   <property>
  <name>dfs.replication</name>
  <value>1</value>
   </property>
  
   <property>
  <name>dfs.name.dir</name>
  <value>/Hadoop/namenode</value>
   </property>

   <property>
  <name>dfs.data.dir</name>
  <value>/Hadoop/datanode</value>
   </property>
 5. 最後修改hadoop-env.sh,把下面注釋的這行開啟,並設定為你的jdk路徑。
  如果你的java在Program Files下,則整個jdk路徑加引號,最好是把jdk目錄設定到如下:D:\Java\jdk1.6.0_26
  但是你可以這麼做:
   在Hadoop的設定檔,hadoop-env.sh中,需要添加Java SDK的路徑。
   要知道,Cygwin中並沒有安裝Java,那麼只能使用Windows下安裝的JDK。
   看了網上的文章,只是提到說export後面的路徑需要用雙引號括起來,
   因為一般JDK都是安裝在“Program Files”下的。但是我這麼添加以後,就是不行,
   報錯“JAVA_HOME is not set”還是“…Program cannot found”來著,不太記得了,
   反正就是啟動Hadoop的時候報錯。經過研究後知道,首先Cygwin下不能使用windows的路徑直接存取,
   需要是Linux風格的目錄,如果是訪問C盤下安裝的JDK的話,不能使用“C:/Program Files/Java/jdk1.6.0_22”,
   而需要使用這樣“/cygdrive/c/Program Files/Java/jdk1.6.0_22”;其次是hadoop好像不能識別帶空格的目錄路徑,
   那怎麼辦呢,想到了符號連結,通過在Cygwin下建立一個符號連結,指向我的JDK安裝目錄,
   使用這樣的命令:ln “C:/Program Files/Java/jdk1.6.0_22” /usr/local/jdk1.6.0_22.
   這樣就在/usr/local/下建立了一個Windows下JDK目錄的符號連結,如果使用:cd /usr/local/jdk1.6.0_22,
   然後ls下,就會發現已經在jdk的安裝目錄下了。然後在hadoop-env.sh中export JAVA_HOME=/usr/local/jdk1.6.0_22,
   這樣就OK了

  因為我安裝的時候,在Program Files中沒有安裝成功。修改為如下內容:
  # The java implementation to use.  Required.
  export JAVA_HOME=/cygdrive/d/Java/jdk1.6.0_26
 6. 在cygwin下進入bin目錄,首先需要格式化namenode
  cd D:\Hadoop\hadoop-0.21.0\bin
  ./hadoop namenode -format
  這裡會報這個錯:
  java.lang.NoClassDefFoundError: org/apache/hadoop/util/PlatformName
  Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.PlatformName
  
     at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
     at java.security.AccessController.doPrivileged(Native Method)
     at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
  Could not find the main class: org.apache.hadoop.util.PlatformName.  Program will exit.
  解決辦法如下:
  只需要將${HADOOP_HOME}/bin/hadoop-config.sh檔案中的第190行的一下的內容
  JAVA_PLATFORM=`CLASSPATH=${CLASSPATH} ${JAVA} -Xmx32m ${HADOOP_JAVA_PLATFORM_OPTS} org.apache.hadoop.util.PlatformName | sed -e "s/ /_/g"`

  改成
  JAVA_PLATFORM=`CLASSPATH=${CLASSPATH} ${JAVA} -Xmx32m -classpath ${HADOOP_COMMON_HOME}/hadoop-common-0.21.0.jar org.apache.hadoop.util.PlatformName | sed -e "s/ /_/g"`

 7. 啟動namenode: ./hadoop namenode
 8. 啟動datanode: ./hadoop datanode
 9. 嘗試上傳檔案:./hadoop fs -put d:/download/test.rar /tt/vm.rar
  然後list一下
  ./hadoop fs -lsr /tt
  結果如下:
  -rw-r--r--   1 Administrator supergroup   20793970 2010-01-18 15:52 /tt/vm.rar
  可以在本地檔案中(記得這個配置吧/Hadoop/datanode?資料檔案存放地)
  D:\Hadoop\datanode\current\finalized中看到拷貝的檔案,但是檔案名稱是blk_6098310948767462040這種,可以看大小啦。。。
 10. 結束,祝大家成功。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.