1、安裝JDK1.6或更高版本
官網下載JDK,安裝時注意,最好不要安裝到帶有空格的路徑名下,例如:Programe Files,否則在配置Hadoop的配置文件時會找不到JDK(按相關說法,配置文件中的路徑加引號即可解決,但我沒測試成功)。
2、安裝Cygwin
Cygwin是Windows平台下模擬Unix環境的工具,需要在安裝Cygwin的基礎上安裝Hadoop,下載地址:http://www.cygwin.com/
根據操作系統的需要下載32位或64的安裝文件。
1)、雙擊下載好的安裝文件,點擊下一步,選擇install from internet
2)、選擇安裝路徑
3)、選擇local Package Directory
4)、選擇您的Internet連接方式
5)、選擇合適的安裝源,點擊下一步
6)、在Select Packages界面里,Category展開net,選擇如下openssh和openssl兩項
如果要在Eclipe上編譯Hadoop,需要安裝Category為Base下的sed
如果想在Cygwin上直接修改hadoop的配置文件,可以安裝Editors下的vim
7)、點擊“下一步”,等待安裝完成。
3、配置環境變量
在“我的電腦”上點擊右鍵,選擇菜單中的“屬性",點擊屬性對話框上的高級頁簽,點擊”環境變量"按鈕,在系統變量列表里雙擊“Path”變量,在變量值后輸入安裝的Cygwin的bin目錄,例如:D:\hadoop\cygwin64\bin
4、安裝sshd服務
雙擊桌面上的Cygwin圖標,啟動Cygwin,執行ssh-host-config -y命令
執行后,會提示輸入密碼,否則會退出該配置,此時輸入密碼和確認密碼,回車。最后出現Host configuration finished.Have fun!表示安裝成功。
輸入net start sshd,啟動服務。或者在系統的服務里找到並啟動Cygwin sshd服務。
可能會遇到無法安裝和啟動sshd服務的問題,可參考此連接http://www.cnblogs.com/kinglau/p/3261886.html。
另外如果是Win8操作系統,啟動Cygwin時,需要以管理員身份運行(右鍵圖標,選擇以管理員身份運行),否則會因為權限問題,提示“發生系統錯誤5”。
5、配置SSH免密碼登錄
執行ssh-keygen命令生成密鑰文件
如下圖所示,輸入:ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa,注意-t -P -f參數區分大小寫。
ssh-keygen是生成密鑰命令
-t 表示指定生成的密鑰類型(dsa,rsa)
-P表示提供的密語
-f指定生成的密鑰文件。
注意:~代表當前用戶的文件夾,/home/用戶名
執行此命令后,在你的Cygwin\home\用戶名 路徑下面會生成.ssh文件夾,可以通過命令ls -a /home/用戶名 查看,ssh -version命令查看版本。
執行完ssh-keygen命令后,再執行下面命令,就可以生成authorized_keys文件了。
cd ~/.ssh/
cp id_dsa.pub authorized_keys
如下圖所示:
然后執行exit命令,退出Cygwin窗口
6、再次在桌面上雙擊Cygwin圖標,打開Cygwin窗口,執行ssh localhost命令,第一次執行該命令會有提示,輸入yes后,回車即可。如下圖所示
7、安裝Hadoop
hadoop官網下載http://hadoop.apache.org/releases.html。
把hadoop壓縮包解壓到/home/用戶名 目錄下,文件夾名稱更改為hadoop,可以不修改,但后邊在執行命令時稍顯麻煩。
(1)單機模式配置方式
單機模式不需要配置,這種方式下,Hadoop被認為是一個單獨的Java進程,這種方式經常用來調試。
(2)偽分布模式
可以把偽分布模式看作是只有一個節點的集群,在這個集群中,這個節點既是Master,也是Slave,既是NameNode,也是DataNode,既是JobTracker,也是TaskTracker。
這種模式下修改幾個配置文件即可。
配置hadoop-env.sh,記事本打開改文件,設置JAVA_HOME的值為你的JDK安裝路徑,例如:
JAVA_HOME="D:\hadoop\Java\jdk1.7.0_25"
配置core-site.xml
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> <property> <name>mapred.child.tmp</name> <value>/home/u/hadoop/tmp</value> </property> </configuration>
配置hdfs-site.xml
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
配置mapred-site.xml
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> <property> <name>mapred.child.tmp</name> <value>/home/u/hadoop/tmp</value> </property> </configuration>
8、啟動Hadoop
打開Cgywin窗口,執行cd ~/hadoop命令,進入hadoop文件夾,如下圖:
啟動Hadoop前,需要先格式化Hadoop的文件系統HDFS,執行命令:bin/hadoop namenode -format
注意namenode要小些,否則如果輸入NameNode,會提示錯誤,找不到或無法加載主類NameNode。執行正確命令后如下圖所示:
輸入命令 bin/start-all.sh,啟動所有進程,如下圖:
接下來,驗證是否安裝成功
打開瀏覽器,分別輸入下列網址,如果能夠正常瀏覽,說明安裝成功。
http://localhost:50030,回車打開MapReduce的web頁面,如下圖(頁面部分截圖):
http://localhost:50070,回車打開HDFS的web頁面,如下圖(頁面部分截圖):
第一次啟動后,如果都不能瀏覽,或不能瀏覽某一個,退出Cygwin,重新打開Cygwin,執行bin/start-all.sh命令。
如果只想啟動MapReduce,可執行bin/start-mapred.sh命令。
如果只想啟動HDFS,可執行bin/start-dfs.sh命令。
參考文獻:
本文參考和引用了《Hadoop實戰》(作者:陸嘉恆)中的章節“2.3在Windows上安裝與配置Hadoop”。
特此聲明,如果涉及到版權問題,請告知。