1. 程式人生 > >在Windows作業系統上編譯Hadoop原始碼

在Windows作業系統上編譯Hadoop原始碼

在上篇部落格中,筆者提到曾經在Windows上編譯Hadoop原始碼。這裡將具體流程列出。

一、作業系統和Hadoop版本

Windows 10專業版(64位),Hadoop 2.7.2。

二、安裝軟體依賴

1、jdk 1.8 安裝後設置環境變數(Path中加入java路徑;JAVA_HOME,指向jdk目錄)。 2、Ant 1.9.7 將檔案解壓到C:\ant目錄下,設定環境變數(Path中加入ant路徑)。 3、Maven 3.3.9 將檔案解壓到C:\maven目錄下,設定環境變數(Path中加入mvn路徑)。 4、Protocol Buffers 2.5.0 5、CMake 3.2.1
下載(https://cmake.org/files/v3.2/)後,安裝到C:\CMake目錄下,設定環境變數(Path中加入cmake路徑)。 6、Visual Studio 2015

三、編譯

1、將Hadoop原始碼放在C:\build\目錄下 2、更改VC++編譯設定 用Visual Studio 2015分別開啟C:\build\hadoop-common-project\hadoop-common\src\main\native\winutils.sln和C:\build\hadoop-common-project\hadoop-common\src\main\native\native.sln,升級VC++編譯器和庫。 更改C:\build\hadoop-hdfs-project\hadoop-hdfs\pom.xml檔案中第446行內容,將兩個“Visual Studio 10”改成“Visual Studio 14”。 3、Maven編譯
開啟cmd(不需以管理員身份),進入C:\build\目錄,使用如下命令進行編譯
mvn clean package -Pdist,native-win -DskipTests -Dtar -Dmaven.javadoc.skip=true -e
編譯的結果在C:\build\hadoop-dist\target\hadoop-2.7.2目錄下。

四、啟動叢集

使用上面的編譯結果可以在Windows作業系統上啟動一個偽分散式叢集,從而可以測試MapReduce程式。但需要安裝Cygwin,並設定環境變數(Path中加入cygwin64\bin的全路徑)。 編譯後,將C:\build\hadoop-dist\target\hadoop-2.7.2目錄下的內容複製到目標工作目錄下,修改相關配置(具體修改方式可在網上查詢),然後用如下命令啟動叢集
hdfs namenode -format
start-dfs.cmd
start-yarn.cmd

【注】首次編譯請嚴格遵守上面所提各依賴軟體的版本。