第一天我先在window環境裏搭建的這個本人當時什麼都不懂 就感受方便就在這裏搞了 不過通過這個我也知道了什麼是hadoop 環境了 受益不淺 。 java
在Windows下部署hadoop前,都須要安裝cygwin軟件,如何安裝和配置cygwin node
1、cygwin的安裝與配置 linux
一、什麼是cygwin
cygwin是一個在windows平臺上運行的unix模擬環境,是cygnus solutions公司開發的自由軟件(該公司開發了不少好東西,著名的還有eCos,不過現已被Redhat收購)。它對於學習unix/linux操做環境,或者從unix到windows的應用程序移植,或者進行某些特殊的開發工做,尤爲是使用gnu工具集在windows上進行嵌入式系統開發,很是有用。隨着嵌入式系統開發在國內日漸流行,愈來愈多的開發者對cygwin產生了興趣。
二、cygwin的安裝
(1)下載安裝程序,下載地址爲: http://www.cygwin.com/setup.exe
(2)選擇必須安裝的包,根據實踐有以下包必須選擇安 裝,不然極可能cygwin安裝失敗!
Net Category下的OpenSSL,OpenSSH;
Base Category下的sed;
Editors Category下的vim,Emacs;
Devel Category下的subversion,binutils,gcc,gcc-mingw,gdb vim
(3)點擊下一步。一直到完成
說明:雖然cygwin提供在線安裝,我的建議先 徹底下載到本地,再進行安裝,由於在線安裝會出現許多莫名奇妙的問題。 windows
二、cygwin的配置
(1)配置環境變量
CLASSPATH= .;C:\Java\jdk1.6.0_11\lib\dt.jar;C:\Java\jdk1.6.0_11\lib\tools.jar
CYGWIN=ntsec;
JAVA_HOME=C:\Java\JDK1.6.0_11;C:\Java\jre6;
在PATH環境變量中加入以下路徑C:\cygwin\bin;C:\cygwin\usr\i686-pc-cygwin\bin;C:\Java\jdk1.6.0_11\bin; 服務器
(2)安裝sshd服務
啓動cygwin輸入命令:ssh-host-config;
根據提示進行相應的操做直至安裝完成,安裝成功後當即啓動名稱爲「CYGWIN sshd」的服務。 eclipse
(3)配置ssh登陸
執行ssh-keygen命令,而後根據提示按三次回車鍵,最後輸入以下命令:
cd ~/.ssh/;
cp id_rsa.pub authorized_keys ssh
至此,cygwin的安裝與配置成功,你能夠享受cygwin帶來的樂趣。 分佈式
2、hadoop多節點的安裝與部署 工具
一、下載hadoop;
本實驗用的版本是:hadoop-0.20.1;
二、外部配置
選中一臺機子作爲jobTracker,namenode, datanode這個機子爲master,這個機器的ip設置爲192.168.1.102。另外兩臺作datanode,TaskTracker爲slave,這個機器的ip爲192.168.1.101,192.168.1.103
三、爲了實現無密碼登陸ssh服務器,在master機器cygwin的控制檯中輸入以下命令:
cd ~/.ssh;
chmod 600 authorized_keys;
scp authorized_keys Administrator@192.168.1.102:~/.ssh/ authorized_keys;
scp authorized_keys Administrator@192.168.1.103:~/.ssh/ authorized_keys;
假如是所用的客戶端計算機是第一次登錄SSH服務器,命令行中會提示「Are you sure you want to continue connecting (yes/no) ?」,只要輸入yes便可,SSH服務器會自動將此次的登錄信息存儲在/.ssh/known_host文件中。當顯示「Fanfare!!! You are successfully logged in to this server!!!」時,說明已經成功登錄到ssh服務器計算機內了,須要注重的是,此時在當前控制檯內輸入的命令都將在ssh服務器計算機裏運行。
四、master機器Hadoop機器環境部署:
(1)將安裝包解壓到F:\hadoop\run中;
(2)修改conf目錄下的hadoop-env.sh
export JAVA_HOME="/cygdrive/c/Java/jdk1.6.0_11"
(3)修改conf目錄下的core-site.xml;
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.1.101:9000<value>
......................................
(4)修改conf目錄下的hdfs-site.xml;
<property>
<name>dfs.datanode.handler.count</name>
<value>1<value>
......................................
<property>
<name>dfs.replication</name>
<value>1<value>
......................................
(5)修改conf目錄下的mapred-site.xml
<property>
<name>mapred.job.tracker</name>
<value>192.168.1.101:9001<value>
......................................
(6)修改conf目錄下的masters文件
輸入192.168.1.101
(7)修改conf目錄下的slaves文件
輸入:192.168.1.101
192.168.1.102
192.168.1.103
(7)配置hadoop在cygwin中的環境
用vi打開/etc/profile文件,在文件的末尾追加以下代碼:
export HADOOP_HOME=/cygdrive/f/hadoop/run
export PATH=$PATH:$HADOOP_HOME/bin
(8)格式化一個新的分佈式文件系統
cd $HADOOP_HOME
bin/hadoop namenode -format
五、slave機器Hadoop機器環境部署
把master機器上的F:\hadoop拷貝到slave機器上的F盤的根目錄下便可。
六、關閉master,slave機器上的Cygwin,而後重啓Cygwin。
七、啓動master上的hadoop,執行以下命令:
ssh localhost
cd $HADOOP_HOME
bin/start-dfs.sh
bin/start-mapred.sh
jps
八、運行wordcount程序
$ bin/hadoop dfs -put ./test-in input
$ bin/hadoop jar hadoop-0.16.0-examples.jar wordcount input output
$ bin/hadoop dfs -cat output/*
九、中止hadoop進行
$ bin/stop-all.sh
十、配置hadoop的開發環境
(1)下載hadoop-0.20.1-eclipse-plugin.jar
(2)將其複製到Eclipse安裝目錄下的 plugins子目錄下。
(3)刪除org.eclipse.update目錄,重啓 Eclipse.
(4) 配置一個Map/Reduce對象,即DFS location ,將Map/Reduce Master一欄中的host設置爲192.168.101,port設置爲9001;將DFS Master 一欄中的host設置爲192.168.101,port設置爲9000;
(5)運行wordcout程序
建立一個Map/Reduce Project,將wordcount.java拷貝到該工程的src目錄下,運行程序。
至此,若是以上沒有問題的話,hadoop多節點的運行環境與開發環境配置完畢了,你能夠開發Map/Reduce程序了。