[[PageOutline]] = hadoop4win = -- '''Hadoop for Windows using Cygwin''' == 軟體簡介 == hadoop4win,顧名思義為『Hadoop for Windows』,主要是提供 Windows 平台上簡易安裝 Hadoop 的批次安裝檔。此批次安裝檔內容,主要參考自國網中心企鵝龍與再生龍團隊成員孫振凱先生之 [http://drbl.nchc.org.tw/drbl-winroll drbl-winroll] 作品,抽取安裝部分程式改寫成 hadoop4win 所需的步驟。 hadoop4win 目前包含四大軟體組成: * [http://cygwin.com Cygwin] - 提供精簡版,類似 Linux 的環境 * [http://java.sun.com JDK 1.6.0 update 18] - 運行 Hadoop 必須的 JRE(Java Runtime Environment) 與編譯程式所需之 javac 編譯器 * [http://hadoop.apache.org Hadoop 0.20.1] - 包含 Hadoop 0.20.1 原始程式與中英文說明文件檔 * [http://hbase.org HBase 0.20.3] - 包含 HBase 0.20.3 原始程式碼 == 適用平台 == * Windows 2000, Windows XP * 目前已知 Windows 7 無法正常執行。 == 檔案下載 == * 0.1.2 alpha * [http://www.classcloud.org/hadoop4win-setup-full_0.1.2.zip 0.1.2 alpha 完整版 (已內含 Hadoop 0.20.1 , HBase 0.20.3 與 JDK 1.6.0u18 壓縮檔)] (165 MB) * [http://www.classcloud.org/hadoop4win-setup-net_0.1.2.zip 0.1.2 alpha 網路安裝版 (執行階段才下載)] - [http://hadoop4win.googlecode.com/files/hadoop4win-setup-net_0.1.2.zip 鏡像站(google code)] (33 MB) * 0.1.0 alpha * [http://www.classcloud.org/hadoop4win-setup-full_0.1.0.zip 0.1.0 alpha 完整版 (已內含 Hadoop 0.20.1 與 JDK 1.6.0u18 壓縮檔)] (134 MB) * [http://www.classcloud.org/hadoop4win-setup-net_0.1.0.zip 0.1.0 alpha 網路安裝版 (執行階段才下載)] - [http://hadoop4win.googlecode.com/files/hadoop4win-setup-net_0.1.0.zip 鏡像站(google code)] (33 MB) == 改版紀錄 == * 0.1.2 alpha - 2010/02/06 : * 改回 Cygwin 1.5.25 版本的套件庫 - 感謝 [http://www.hadoop.tw Yi-Kai Tsai] 回報 0.1.1 版無法正確執行 wordcount 範例的 BUG * 0.1.1 alpha - 2010/02/04 : * 改用 Cygwin 1.7.1 版本的套件庫 - 並且改用 "-P" 參數指定欲額外安裝套件 * 修改 hadoop4win-setup.bat 批次檔,以因應 Cygwin 1.7 版本的 setup.exe 差異。 * 新增 HADOOP_HOME、HADOOP_CLASSPATH、HADOOP_CONF_DIR 環境變數至 hadoop-env.sh - 感謝 [http://www.hadoop.tw Yi-Kai Tsai] 建議 * 新增 /opt/hadoop/bin 與 $JAVA_HOME/bin 到 /etc/profile 的 PATH 環境變數,讓每個使用者可以簡單輸入 hadoop 指令 - 感謝 [http://www.hadoop.tw Yi-Kai Tsai] 建議 * 修改 start-hadoop 並加入 start-hadoop-daemon 命令,另行開一視窗啟動 HDFS Name Node、Data Node 與 MapReduce Job Tracker、Task Tracker 子程序。如此一來可以避免 CTRL+C 觸發 SIGINT 而強制停止所有 java 程序。 - 感謝 [http://www.hadoop.tw Yi-Kai Tsai] 找出重現 BUG 的主因(Ctrl+C) * 新增 stop_hadoop 指令至 ~/.bash_logout 與 /etc/skel/.bash_logout,以確保離開 Cygwin 時關閉 HDFS 與 MapReduce -- 若要保留 java 程序,可手動移除 * 新增 hbase-init、start-hbase、start-hbase-daemon、stop-hbase 來初始化 hbase 下載、安裝、設定、啟動 !ZooKeeper、Master、!RegionServer 的程序。 * 0.1.0 alpha - 2010/01/22 * 基於 [http://drbl.nchc.org.tw/drbl-winroll drbl-winroll] 修改為 hadoop4win 嚐鮮版 == 臭蟲回報 == * 請至 http://forum.hadoop.tw 的 [http://forum.hadoop.tw/viewforum.php?f=4 "hadoop 安裝與設定"討論區] * 最新訊息請參閱: http://trac.nchc.org.tw/cloud/wiki/Hadoop4Win * 其他專案網站 - http://code.google.com/p/hadoop4win/ * 建議新功能或臭蟲回報 - http://code.google.com/p/hadoop4win/issues/list == 安裝方法 == * STEP 1 : 首先下載 hadoop4win 任一版本,並存至硬碟(如 D:)。使用 Windows XP 以上版本內建的解壓縮工具將 zip 壓縮檔解開。 * [[BR]][[Image(hadoop4win_01.jpg,width=600)]] * STEP 2 : 在 hadoop4win-setup 目錄中,執行 hadoop4win-setup.bat 批次檔。 * 註:預設將安裝到 C:/hadoop4win 中,若因硬碟存取權限較嚴格,需修改安裝路徑,請自行修改 hadoop4win-setup.bat。 * [[Image(hadoop4win_02.jpg,width=600)]] * STEP 3 : 一開始會出現 Cygwin 的安裝畫面,按『下一步(N)』開始安裝。 * [[BR]][[Image(hadoop4win_03.jpg,width=600)]] * 接著批次程式將會把 Hadoop 單機版所需之 Java 開發環境 (JDK 1.6.0 update 18)與 Hadoop 0.20.1 壓縮檔拷貝至安裝目錄。若您下載的是網路安裝版本,會看到批次檔先從網路上下載兩個壓縮檔,才開始安裝。 * [[BR]][[Image(hadoop4win_04.jpg,width=600)]] * STEP 4 : 當拷貝完成後會進入 Cygwin 視窗。此時,請輸入指令『__'''hadoop4win-init'''__』。 {{{ $ hadoop4win-init }}} * [[Image(hadoop4win_05.jpg,width=600)]] * 此初始化指令將會進行 JDK 與 Hadoop 解壓縮動作 * [[BR]][[Image(hadoop4win_06.jpg,width=600)]] * [[BR]][[Image(hadoop4win_07.jpg,width=600)]] * 最後將會執行 Hadoop Namenode 的格式化 * [[BR]][[Image(hadoop4win_08.jpg,width=600)]] * STEP 5 : 按下__'''任意鍵'''__會依序啟動 Hadoop Name Node, Data Node, Job Tracker, Task Tracker * [[BR]][[Image(hadoop4win_09.jpg,width=600)]] * 並使用預設瀏覽器依序開啟 http://localhost:50030 與 http://localhost:50070 (若使用 IE 可能會只看到一個畫面) * [[BR]][[Image(hadoop4win_10.jpg,width=600)]] * [[BR]][[Image(hadoop4win_11.jpg,width=600)]] == 測試方法 == * STEP 6 : 此時系統已完成 Hadoop 0.20.1 的 tar ball 安裝,可以參考 [http://www.classcloud.org/media 國網中心雲端運算課程(一)] 之教學進行相關測試。目前將 Hadoop 0.20.1 安裝於 /opt/hadoop 路徑下,故使用者必須先切換至該目錄才能進行相關指令操作。 {{{ $ cd /opt/hadoop }}} * STEP 7 : 練習 HDFS 指令: 『__'''bin/hadoop fs -put '''__』 {{{ $ bin/hadoop fs -put conf-org input }}} * [[Image(hadoop4win_12.jpg,width=600)]] * STEP 8 : 練習 HDFS 指令: 『__'''bin/hadoop fs -lsr '''__』 {{{ $ bin/hadoop fs -lsr }}} * [[Image(hadoop4win_13.jpg,width=600)]] * STEP 9 : 練習 MapReduce 丟 Job 指令: 『__'''bin/hadoop jar '''__』 {{{ $ bin/hadoop jar hadoop-0.20.1-examples.jar wordcount input output }}} * [[Image(hadoop4win_14.jpg,width=600)]] * STEP 10 : 練習從 http://localhost:50030 查看目前 MapReduce Job 的運作情形 * [[BR]][[Image(hadoop4win_15.jpg,width=600)]] * STEP 11 : 欲離開 Cygwin 環境前或者要暫時關閉 Hadoop 系統時,請輸入指令『__'''stop-hadoop'''__』。 {{{ $ stop-hadoop }}} * [[Image(hadoop4win_16.jpg,width=600)]] * STEP 12 : 欲重新啟動 Hadoop 系統時,請輸入指令『__'''start-hadoop'''__』。 {{{ $ start-hadoop }}} * [[Image(hadoop4win_17.jpg,width=600)]] == 已知問題 == * [備註] 由於 Hadoop 0.20.1 的 HDFS 檢查比較嚴謹,因此單機狀態下,您會看到 http://localhost:50070 顯示『'''Safe Mode is ON'''』等字樣,代表 HDFS 目前是被封鎖住寫入權限,需等待至少 30 秒以後才會恢復正常。亦因此,http://localhost:50030 若剛開始沒有 Task Tracker 連上來,也是因為 HDFS 處於安全模式(Safe Mode)造成,須等 30 秒後切回正常模式才會連上。 * [[BR]][[Image(hadoop4win_18.jpg,width=600)]] * [備註] 若需要重新啟動 Cygwin 環境,請至 C:\hadoop4win 目錄執行 cygwin.bat 批次檔