windows下利用cygwin安裝hadoop圖文詳解

原文地址http://blog.csdn.net/ruby97/article/details/7423088html

通過兩天半的不懈努力,走了N次彎路,終於在本機上將hadoop安裝成功,忽然在網上發現如下文章,深有體會,早發現這篇文章就不會那麼坎坷了,如今轉載過來,供你們參考,謝謝原博主的辛苦工做!java

注意:本文的配置環境是:node


  • CygWin最新版本2.769下載地址linux

  • Window7-64bitapache

  • JDK1.6.0_31-win64 (JRE6)下載地址ruby

  • Eclipse-Indigo..網絡

  • Hadoop 0.20.2 (注意:0.20.203版本不可用,會致使tasktracker沒法啓動)下載地址oracle

-----------------------------------------華麗分割------------------------------------
環境安裝&配置:
1.JDK,個人安裝目錄:C/Java,安裝後視圖
1333419832_9322.png

安裝好了JDK,而後配置JAVA_HOME環境變量:
1333421413_6592.png
而後,把JDK下面的BIN目錄追加到環境變量PATH後面。

2.CygWin,安裝過程當中記得選擇所需的包,這裏須要的是:
Net Category下的:openssh,openssl
BaseCategory下的:sed (若須要Eclipse,必須sed)
Devel Category下的:subversion(建議安裝)。具體請參考下面的圖示:
1333420096_3522.png
1333420107_1304.png
1333420116_6575.jpg

安裝完成後,把CygWin的bin目錄以及usr/sbin 追加到系統環境變量PATH中。

3.Hadoop
把下載的hadoop-0.20.2.tar.gz解壓到指定目錄。我把解壓後的Hadoop程序放到了Cygwin根目錄下的hadoop文件夾中。具體以下圖示:
(不要使用0.20.203版本的Hadoop!!!)
1333420346_3033.png

下面開始配置Hadoop。須要配置的文件:(hadoop/conf目錄下)
  1. hadoop-env.shssh

  2. core-site.xmlide

  3. hdfs-site.xml

  4. mapred-site.xml

第一個文件 hadoop-env.sh
1333420666_6333.png
把裏面的JAVA_HOME改掉,注意export前面的#號要去掉。
並且必需要使用linux的路徑表達方式。個人jdk路徑是 C:\JAVA\jdk1.6.0_31,在CygWin中對應的路徑爲: /cygdrive/c/java/jdk1.6.0_31

第二個文件:core-site.xml
首先刪除它,而後把hadoop/src/core目錄下的core-default.xml文件複製到conf目錄下,並命名爲core-site.xml。而後修改其中的fs.default.name變量,以下所示。
(確保端口號(個人是9100)未被佔用)
1333420929_4112.png

第三個文件:hdfs-site.xml
首先把它刪除,而後複製src/hdfs目錄下的hdfs-default.xml到conf目錄下,並更名爲hdfs-site.xml
而後修改dfs.replication變量,以下圖示:
該變量意思是文件系統中文件的複本數量。在單獨的一個數據節點上運行時,HDFS沒法將塊複製到三個數據節點上。
1333421046_7812.png

第四個文件:mapred-site.xml
首先刪除它,而後複製src/mapred目錄下的mapred-default.xml到conf目錄下,並更名爲mapred-site.xml,而後修改其mapred.job.tracker變量:
(一樣確保端口號未被佔用)
1333421241_1480.png


----------------------------------華麗分割-------------------------------------
配置SSH服務 (首先確認安裝了OpenSSH,OpenSSL兩個包)
1.打開CygWin輸入SSH-HOST-CONFIG
2.系統提示:should privilege separation be used ? 回答:no
3.系統提示:if sshd should be installed as service?回答:yes
4.系統提示:the value of CYGWIN environment variable 輸入: ntsec
5.成功
下面是圖示(我本身當時沒記錄,因此參考的是網絡上的圖片)
1333422065_3209.png

下一步,進入Window系統的服務菜單,打開Cygwin的SSHD服務:以下圖所示:
1333422225_9307.png
下面繼續回到CygWin環境:執行以下命令:
1.ssh-keygen而後一直回車
2.cd ~/.ssh
3. cp id_rsa_pub anthorized_keys
4.exit 退出cygwin,若不退出,可能出錯
再次登陸時查看一下:
1333422494_2377.png
5運行 ssh localhost 如有提示,則回車。
6執行 ps 若看到 有/usr/bin/ssh 進程,說明成功

------------------------------------華麗分割----------------------------------
啓動Hadoop
第0步:爲了不jobtracker,info could only be replicated to 0 node,instead of 1錯誤,最好把 hadoop/conf目錄下面的 masters和slaves文件所有改成127.0.0.1(原內容爲:localhost)
第一步,在hadoop目錄下建立目錄logs,用於保存日誌

第二步,格式化管理者,即namenode,建立HDFS
執行命令: bin/hadoop namenode -format,下面示表明成功
1333422914_6919.png
此時,執行ps,應該能看到ssh進程,且看不到java虛擬機進程。

第三步,啓動Hadoop,執行命令: bin/start-all.sh
而後執行jps命令,你可能會看到以下圖:
1333423481_9340.png
會發現Datanode ,Secondarynamenode以及TaskTracker都沒有啓動。網上有人說是JPS的問題,具體不是很清楚,但本文後面的文件系統可使用。Datanode能夠保存數據,繼續看吧。

不過此時執行PS命令,能看到5個JVM進程。
1333423578_2216.png
不知道這算不算成功,但個人Logs日誌文件夾裏面沒有報錯。

------------------------------華麗分割---------------------------------------
文件系統操做
爲了驗證HDFS可以正常工做咱們能夠進行文件的上傳操做。
執行命令:
bin/hadoop fs -mkdir In
bin/hadoop fs -put *.txt In
以上命令會在HDFS中創建In文件夾,而後把本地Hadoop目錄下的全部文本文件上傳到HDFS中,Hadoop目錄下共用四個txt文件:
1333423855_2695.png
OK,上傳的太少,不爽,再上傳一部電影。好比,我要把一個視頻文件movie.mpg上傳到HDFS中,首先,在Hadoop根目錄下創建文件夾local,而後把movie.mpg拷貝到其中
1333424020_9106.png
下面執行命令:
1333424075_6532.png
而後,查看文件系統是否有上述文件:
1333424121_5836.png
能夠看到Movie.mpg在HDFS中。

一樣在Eclipse中也能看到哇:
1333424182_6672.png

OK,忽然不能貼圖了,我再接着寫一篇吧。介紹一下常見的錯誤處理。
相關文章
相關標籤/搜索