Windows 10 x64 下編譯 Hadoop 源碼


Windows 10 x64 下編譯 Hadoop 源碼


環境准備

Hadoop並沒有提供官方的 Windows 10 下的安裝包,所以需要自己手動來編譯,官方文檔中 BUILDING.txt 文件中說明了編譯源碼需要的軟件環境:

1. 具體如下:

  • [x] Hadoop源碼
  • [x] Windows 系統
  • [x] JDK 1.8+
  • [x] Maven 3.0 or later
  • [x] Findbugs 1.3.9 (可省略)
  • [x] ProtocolBuffer 2.5.0
  • [x] CMake 2.6 or newer
  • [x] Windows SDK or Visual Studio 2010 Professional
  • [x] Cygwin: 為了使用 sh, mkdir, rm, cp, tar, gzip 等命令
  • [x] zlib
  • [x] 電腦需要聯網

2. Hadoop源碼下載可以

地址 @https://archive.apache.org/dist/hadoop/common
選擇具體版本即可

3. JDK

JAVA_HOME=JDK目錄
CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\jre\lib;
PATH=%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

注意:Hadoop2.7.0 及之后最好使用JDK1.7及1.8以上版本進行編譯,我使用的版本如下

C:\Users\ZhaoBo>java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

4. Maven

下載地址:@http://maven.apache.org/download.cgi,配置如下:

M2_HOME=maven目錄
PATH=%M2_HOME%\bin;

我使用的版本是3.6.0:

C:\Users\ZhaoBo>mvn -version
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
Maven home: D:\apache-maven-3.6.0\bin\..
Java version: 1.8.0_181, vendor: Oracle Corporation, runtime: C:\jdk\jdk1.8.0_181\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

5. ProtocolBuffer

下載地址:@https://github.com/google/protobuf/releases/tag/v2.5.0,選擇 protoc-2.5.0-win32.zip 版本, 解壓到安裝目錄,並添加到PAHT,如下:

PATH=C:\java\protoc-2.5.0-win32;

測試:

C:\Users\ZhaoBo>protoc --version
libprotoc 2.5.0

6. CMake

要求 CMake 2.6+ 的版本,下載地址:@https://cmake.org/download/, 下載並解壓到安裝目錄,並添加bin目錄到PATH,由於cygwin中也帶了個cmake, 所以在Path中,cmake 的bin目錄得加在cygwin的bin 目錄之前:

CMAKE_HOME=cmake目錄
PATH=%CMAKE_HOME%\bin;

測試:

C:\Users\ZhaoBo>cmake --version
cmake version 3.14.3

CMake suite maintained and supported by Kitware (kitware.com/cmake).

7. Visual Studio

VS的版本選擇有兩種,第一使用推薦的VS2010企業版,使用這個版本比較簡單方便,或者使用最新的VS2015版,需要升級一些文件。 我選擇的是 Visual Studio Community 2015 with Update 3 – Free 的 IOS 版本, 地址:@https://www.visualstudio.com/downloads/。 安裝完畢之后,如果使用的是VS2015版本需要升級相關的文件:

hadoop-common-project\hadoop-common\src\main\winutils\winutils.sln

hadoop-common-project\hadoop-common\src\main\native\native.sln

使用VS2015分別打開上述文件,提示升級的時候進行確認即可。升級成功的提示信息如下:

正在升級項目“native”...
	配置“Release|x64”: 將平台工具集更改為“v140”(之前為“v100”)。
重定目標結束: 1 個已完成,0 個未通過,0 個已跳過

正在升級項目“winutils”...
	配置“Debug|x64”: 將平台工具集更改為“v140”(之前為“v100”)。 
	配置“Release|x64”: 將平台工具集更改為“v140”(之前為“v100”)。
正在升級項目“libwinutils”...
	配置“Debug|x64”: 將平台工具集更改為“v140”(之前為“v100”)。 
	配置“Release|x64”: 將平台工具集更改為“v140”(之前為“v100”)。
重定目標結束: 2 個已完成,0 個未通過,0 個已跳過

另外需要修改下面的文件:

hadoop-hdfs-project\hadoop-hdfs\pom.xml
將 “Visual Studio 10” 改成 “Visual Studio 14”,保存后退出。

8. Cygwin

下載地址:@https://cygwin.com/install.html,安裝並添加bin目錄到PATH:

CYGWIN_HOME=cygwin安裝目錄
PATH=%CYGWIN_HOME%\bin;

9. Zlib

ZLIB_HOME=zlib目錄
PATH=%ZLIB_HOME%\bin;

10.其他

Platform=x64
VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140
MSBUILD_HOME=C:\Program Files (x86)\MSBuild\14.0\Bin
PATH=%MSBUILD_HOME%;

編譯

一般指令如下所示:
mvn clean package -Pdist,native-win -DskipTests -Dtar

指令中加入 -Dmaven.javadoc.skip=true 參數,可以剔除指令文檔的編譯,如果使用的是JDK1.8,那么必須加入此參數才能編譯通過:

mvn clean package -Pdist,native-win -DskipTests -Dtar -Dmaven.javadoc.skip=true


編譯成功大概需要半小時,機器好的話可能更快,如果省略說明文檔的編譯也會提高速度, 編譯成功之后的目錄為 C:\dfs265\hadoop-dist\target


異常參考鏈接

@http://www.07net01.com/linux/2016/10/1688359.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM