Windows10x64下编译Hadoop源码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Windows10x64下编译Hadoop源码
Windows 10 x64 下编译 Hadoop 源码
环境准备
Hadoop并没有提供官⽅的 Windows 10 下的安装包,所以需要⾃⼰⼿动来编译,官⽅⽂档中 BUILDING.txt ⽂件中说明了编译源码需要的软件环境:
# 1. 具体如下:
Hadoop源码
Windows 系统
JDK 1.8+
Maven 3.0 or later
Findbugs 1.3.9 (可省略)
ProtocolBuffer 2.5.0
CMake 2.6 or newer
Windows SDK or Visual Studio 2010 Professional
Cygwin: 为了使⽤ sh, mkdir, rm, cp, tar, gzip 等命令
zlib
电脑需要联⽹
# 2. Hadoop源码下载可以
地址 @
选择具体版本即可
# 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
下载地址:@
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
下载地址:@ 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+ 的版本,下载地址:@ 下载并解压到安装⽬录,并添加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 (/cmake).
# 7. Visual Studio
VS的版本选择有两种,第⼀使⽤推荐的VS2010企业版,使⽤这个版本⽐较简单⽅便,或者使⽤最新的VS2015版,需要升级⼀些⽂件。
我选择的是 Visual Studio Community 2015 with Update 3 – Free 的 IOS 版本,地址:@ 安装完毕之后,如果使⽤的是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
下载地址:@
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
异常参考链接
@。