|
Project Information
|
hadoop4winHadoop for Windows using Cygwin 本軟體專案由 國家高速網路與計算中心(NCHC) 贊助 軟體簡介hadoop4win,顧名思義為『Hadoop for Windows』,主要是提供 Windows 平台上簡易安裝 Hadoop 的批次安裝檔。此批次安裝檔內容,主要參考自國網中心企鵝龍與再生龍團隊成員孫振凱先生之 drbl-winroll 作品,抽取安裝部分程式改寫成 hadoop4win 所需的步驟。 hadoop4win 目前包含四大軟體組成: 適用平台- Windows 2000, Windows XP
- 目前已知 Windows 7 無法正常執行。
檔案下載- 0.1.3 alpha
- 0.1.2 alpha
- 0.1.0 alpha
改版紀錄- 0.1.3 alpha - 2010/05/26 :
- 感謝 NKZ (ccliangnn) 於 hadoop forum 回報 URL 下載連結失效,逼懶惰的作者更新程式。
- 更新網路安裝版,安裝批次檔中的檔案下載網址:HADOOP_MIRROR、HADOOP_FILE、JDK_MIRROR
- 不用再打 hbase-init 來安裝 HBase,這一版是預設 HBase 直接安裝了。
- 新增一些判斷在 start-, stop- 的 script,例如:start-hbase會根據 hadoop 是否啟動,判斷是否幫忙執行 start-hadoop。
- 0.1.2 alpha - 2010/02/06 :
- 改回 Cygwin 1.5.25 版本的套件庫 - 感謝 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 - 感謝 Yi-Kai Tsai 建議
- 新增 /opt/hadoop/bin 與 $JAVA_HOME/bin 到 /etc/profile 的 PATH 環境變數,讓每個使用者可以簡單輸入 hadoop 指令 - 感謝 Yi-Kai Tsai 建議
- 修改 start-hadoop 並加入 start-hadoop-daemon 命令,另行開一視窗啟動 HDFS Name Node、Data Node 與 MapReduce Job Tracker、Task Tracker 子程序。如此一來可以避免 CTRL+C 觸發 SIGINT 而強制停止所有 java 程序。 - 感謝 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
臭蟲回報安裝方法- STEP 1 : 首先下載 hadoop4win 任一版本,並存至硬碟(如 D:)。使用 Windows XP 以上版本內建的解壓縮工具將 zip 壓縮檔解開。
- STEP 2 : 在 hadoop4win-setup 目錄中,執行 hadoop4win-setup.bat 批次檔。
- 註:預設將安裝到 C:/hadoop4win 中,若因硬碟存取權限較嚴格,需修改安裝路徑,請自行修改 hadoop4win-setup.bat。
- STEP 3 : 一開始會出現 Cygwin 的安裝畫面,按『下一步(N)』開始安裝。
- 接著批次程式將會把 Hadoop 單機版所需之 Java 開發環境 (JDK 1.6.0 update 18)、 Hadoop 0.20.2 與 HBase 0.20.4 壓縮檔拷貝至安裝目錄。若您下載的是網路安裝版本,會看到批次檔先從網路上下載三個壓縮檔,才開始安裝。
- 程式會自動執行 JDK 與 Hadoop 的安裝。
- 並且幫您自動執行 Hadoop Namenode 的格式化
- 隨即依序啟動 Hadoop Name Node, Data Node, Job Tracker, Task Tracker
- 最後會解壓縮 HBase,並進行單機版 HBase 的設定,當完成 HBase 安裝後,您會看到以下的畫面。
測試方法測試 Hadoop 的步驟- STEP 4 : 此時系統已完成 Hadoop 0.20.2 的 tar ball 安裝,可以參考 國網中心雲端運算課程(一) 之教學進行相關測試。目前將 Hadoop 0.20.2 安裝於 /opt/hadoop 路徑下,故使用者必須先切換至該目錄才能進行相關指令操作。
$ cd /opt/hadoop - STEP 5 : 練習 HDFS 指令: 『bin/hadoop fs -put <local file/dir> <HDFS file/dir>』
$ bin/hadoop fs -put conf-org input - STEP 6 : 練習 HDFS 指令: 『bin/hadoop fs -lsr <HDFS file/dir>』
$ bin/hadoop fs -lsr - STEP 7 : 練習 MapReduce 丟 Job 指令:
- 『 bin/hadoop jar <local jar file> <class name> <parameters> 』
$ bin/hadoop jar hadoop-*-examples.jar wordcount input output - STEP 9 : 練習 HDFS 指令: 『bin/hadoop fs -get <HDFS file/dir> <local file/dir>』
- 輸出檔案檔名均為 part-r-*****,
- 執行參數會紀錄於 <HOSTNAME>_<TIME>_job_<JOBID>_0001_conf.xml,不妨可以觀察 xml 內容與 hadoop config 檔的參數關聯。
$ bin/hadoop fs -get output my_output
$ ls -alR my_output - 欲離開 Cygwin 環境前或者要暫時關閉 Hadoop 系統時,請輸入指令『 stop-hadoop 』。註:目前下 exit 指令登出時會執行 stop-hbase 與 stop-hadoop 的動作。
$ stop-hadoop 欲重新啟動 Hadoop 系統時,請輸入指令『 start-hadoop 』。 $ start-hadoop 測試 HBase 的步驟- STEP 10 : 安裝完畢後,預設已先開啟 HBase 與 Hadoop 的 Daemon,因此可以直接執行 HBase 的測試。請回到家目錄,並輸入指令『 hbase shell hbase-test 』。
- 註一:這個 hbase-test 存放在安裝帳號身分的家目錄中,倘若用其他帳號登入,可能會找不到。註二:如果剛剛有下 stop-hadoop 的話,一定要記得 start-hadoop,因為 HBase 的資料表格是存在 HDFS 之上。
$ cd ~
$ hbase shell hbase-test - STEP 11: 您也可以輸入指令『 hbase shell 』進入互動式的 HBase 指令列。您可以嘗試用底下列舉的指令,重現 hbase-test 的過程。
$ hbase shell create 'test','data'
put 'test','row1','data:1','v1'
put 'test','row2','data:2','v2'
put 'test','row3','data:3','v3'
scan 'test'
disable 'test'
drop 'test'
list
exit - 欲離開 Cygwin 環境前或者要暫時關閉 HBase 系統時,請輸入指令『 stop-hbase 』。需提醒您的是 HBase 因採用 ZooKeeper,有時關閉 master 的速度會比較慢,請耐心等候。註:目前下 exit 指令登出時會執行 stop-hbase 與 stop-hadoop 的動作。
$ stop-hbase - 倘若是已經關閉 Cygwin 視窗,第二次重新執行 C:\hadoop4win\Cygwin.bat,請輸入指令『 start-hbase 』,目前 start-hbase 會視目前 java process 判斷 hadoop 是否存在而執行『 start-hadoop 』。
$ start-hbase 已知問題- [備註] 由於 Hadoop 0.20.2 的 HDFS 檢查比較嚴謹,因此單機狀態下,您會看到 http://localhost:50070 顯示『 Safe Mode is ON 』等字樣,代表 HDFS 目前是被封鎖住寫入權限,需等待至少 30 秒以後才會恢復正常。亦因此,http://localhost:50030 若剛開始沒有 Task Tracker 連上來,也是因為 HDFS 處於安全模式(Safe Mode)造成,須等 30 秒後切回正常模式才會連上。
- 由於 Cygwin 的路徑並無法正常被 Hadoop 解析,亦即 Hadoop 經過 Windows OS 告知路徑為 C:\hadoop4win\opt\hadoop\ 但在 Cygwin 中卻為 \opt\hadoop。因此倘若您看到 File XXXX does not exist 的問題,可用 cygpath -w 指令把路徑轉變成 Windows 絕對路徑,就可以解決。例如:
hadoop@JAZZ ~
$ cd /opt/hadoop
hadoop@JAZZ /opt/hadoop
$ bin/hadoop fs -put conf input2
put: File conf does not exist.
hadoop@JAZZ /opt/hadoop
$ cygpath -w /opt/hadoop/conf
C:\hadoop4win\opt\hadoop-0.20.2\conf-examples\
hadoop@JAZZ /opt/hadoop
$ bin/hadoop fs -put $(cygpath -w conf) input2 - [備註] 若需要重新啟動 Cygwin 環境,請至 C:\hadoop4win 目錄執行 cygwin.bat 批次檔
|