Win10x64编译Hadoop2.7.4源码包
目录编译需求环境准备JDK安装(1.8)Maven安装(3.5.2)Findbugs(3.0.1)CMake安装(3.7.0)Protobuf安装(2.5.0)ZLIB安装GIT安装(2.17)window 10 sdk下载和安装VS2015安装(社区版)源码编译编译错误解决编译问题编译需求-------------------...
目录
编译需求
----------------------------------------------------------------------------------
Building on Windows
----------------------------------------------------------------------------------
Requirements:
* Windows System
* JDK 1.7+
* Maven 3.0 or later
* Findbugs 1.3.9 (if running findbugs)
* ProtocolBuffer 2.5.0
* CMake 2.6 or newer
* Windows SDK 7.1 or Visual Studio 2010 Professional
* Windows SDK 8.1 (if building CPU rate control for the container executor)
* zlib headers (if building native code bindings for zlib)
* Internet connection for first build (to fetch all Maven and Hadoop dependencies)
* Unix command-line tools from GnuWin32: sh, mkdir, rm, cp, tar, gzip. These
tools must be present on your PATH.
Unix command-line tools are also included with the Windows Git package which
can be downloaded from http://git-scm.com/download/win.
If using Visual Studio, it must be Visual Studio 2010 Professional (not 2012).
Do not use Visual Studio Express. It does not support compiling for 64-bit,
which is problematic if running a 64-bit system. The Windows SDK 7.1 is free to
download here:
http://www.microsoft.com/en-us/download/details.aspx?id=8279
The Windows SDK 8.1 is available to download at:
http://msdn.microsoft.com/en-us/windows/bg162891.aspx
Cygwin is neither required nor supported.
上面是从Hadoop2.7.4源码包BUILDING.txt文件中截取的对在Windows系统下编译的要求说明
环境准备
JDK安装(1.8)
Maven安装(3.5.2)
Findbugs(3.0.1)
下载地址:http://findbugs.sourceforge.net/downloads.html
环境变量设置
FINDBUGS_HOME=F:\devTools\BigData\findbugs-3.0.1
%FINDBUGS_HOME%\bin配到path中
C:\Users\caimh>findbugs -version --检查findbugs是否安装成功
3.0.1
CMake安装(3.7.0)
下载地址:https://cmake.org/files/ (各个版本都有)
环境变量设置
CMAKE_HOME=F:\devTools\BigData\cmake-3.7.0
%CMAKE_HOME%\bin追加大path变量
C:\Users\caimh>cmake -version --检查CMake是否安装成功
cmake version 3.7.0
CMake suite maintained and supported by Kitware (kitware.com/cmake).
Protobuf安装(2.5.0)
- protobuf-2.5.0.tar.gz
- protoc-2.5.0-win32.zip
下载地址:https://github.com/protocolbuffers/protobuf/releases/tag/v2.5.0 ,不同的版本点击tag进行选择
安装参考:https://blog.csdn.net/weixin_38023225/article/details/100577281
ZLIB安装
下载地址:http://zlib.net/zlib128-dll.zip
解压到指定目录:F:\devTools\BigData\zlib128-dll
配置环境变量:在path后面添加ZLIB路径:F:\devTools\BigData\zlib128-dll
GIT安装(2.17)
window 10 sdk下载和安装
下载地址:https://developer.microsoft.com/zh-cn/windows/downloads/windows-10-sdk
VS2015安装(社区版)
VS2015 专业版下载链接
http://download.microsoft.com/download/B/8/9/B898E46E-CBAE-4045-A8E2-2D33DD36F3C4/vs2015.pro_chs.iso
VS2015 社区版下载链接
http://download.microsoft.com/download/B/4/8/B4870509-05CB-447C-878F-2F80E4CB464C/vs2015.com_chs.iso
VS2015 企业版下载链
http://download.microsoft.com/download/B/8/F/B8F1470D-2396-4E7A-83F5-AC09154EB925/vs2015.ent_chs.iso
安装参考:https://blog.csdn.net/childbor/article/details/81286534
安装时注意勾选C++
源码编译
编译错误解决
1.由于VS版本原因,官方默认使用Visual Studio 2010 Professional(前面要求文档已经有说明),我们使用的是VS2015版本,因此对于生成失败的项目,需要用Visual Studio 2015重新打开,升级项目至Visual Studio 2015版本即可:
F:\devTools\BigData\Hadoop\hadoop-2.7.4-src\hadoop-common-project\hadoop-common\src\main\winutils\winutils.sln
F:\devTools\BigData\Hadoop\hadoop-2.7.4-src\hadoop-common-project\hadoop-common\src\main\native\native.sln
1)打开F:\devTools\BigData\Hadoop\hadoop-2.7.4-src\hadoop-common-project\hadoop-common\src\main\winutils\winutils.sln
工程打开后,会出现下图所示的对话框,点击“确认”进行升级。
2)在winutils项目上右键->生成
会出现下图所示的错误,不用管它。
3)打开F:\devTools\BigData\Hadoop\hadoop-2.7.4-src\hadoop-common-project\hadoop-common\src\main\native\native.sln
重复上面1)2)步骤
2. 打开文件F:\devTools\BigData\Hadoop\hadoop-2.7.4-src\hadoop-hdfs-project\hadoop-hdfs\pom.xml`,
将 'Visual Studio 10 Win64’ 修改为 'Visual Studio 14 2015 Win64'
编译
1.首先以管理员身份打开VS2015的MSBuild命令提示符
2.进入源码目录下F:\devTools\BigData\Hadoop\hadoop-2.7.4-src,执行命令
mvn clean package -Pdist,native-win -DskipTests -Dtar -Dmaven.javadoc.skip=true -e
F:\devTools\BigData\Hadoop\hadoop-2.7.4-src>set Platform=x64
F:\devTools\BigData\Hadoop\hadoop-2.7.4-src>set ZLIB_HOME=F:\devTools\BigData\zlib128-dll\include
F:\devTools\BigData\Hadoop\hadoop-2.7.4-src>mvn clean package -Pdist,native-win -DskipTests -Dtar -Dmaven.javadoc.skip=true -e
3.编译成功
编译成功的基于Windows平台的文件将会存放在根目录下的hadoop-dist\target
目录
问题
编译过程中出现过以下问题
1.Cannot run program "msbuild" (in directory "D:\hadoop-3.0.2-src\hadoop-common-project\hadoop-common"): CreateProcess error=2, 系统找不到指定的文件
解决方法:把msbuild可执行文件的绝对路径添加到path里(C:\Program Files (x86)\MSBuild\14.0\Bin)
2.Caused by: org.apache.tools.ant.BuildException: exec returned: 1
查看报错文件 F:\devTools\BigData\Hadoop\hadoop-2.7.4-src\hadoop-hdfs-project\hadoop-hdfs\target\antrun\build-main.xml
发现里面是一个cmake命令,在命令窗口执行了这个命令
查看报错信息,查看资料
引起这个错误的原因是 CMake 找不到 C++ 的编译器,检查 VS 的安装目录是否有 cl.exe 以及 rc.exe 和 rcdll.dll。
如果没有 cl.exe,那么可能是只安装了VS,没有安装 VC 编译器,打开VS,选择 VC 安装即可。
如果没有 rc.exe 和 rcdll.dll,这是编译资源用的,可能安装在 Windows SDK(win10 sdk) 中,直接复制这两个文件到 VC/bin 目录下即可。
再次执行Cmake命令,OK
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)