Win10-x64编译Hadoop2.7.3

参考资料

https://svn.apache.org/repos/asf/hadoop/common/trunk/BUILDING.txt

http://note.youdao.com/share/?id=4dfbbc5b4048654026f571c04924f437&type=note#/

http://stackoverflow.com/questions/31295963/hadoop-on-windows-building-installation-error

编译需求

先上一段官方的说明节选:

Requirements:

  • Windows System
  • JDK 1.6+
  • Maven 3.0 or later
  • Findbugs 1.3.9 (if running findbugs)
  • ProtocolBuffer 2.5.0
  • CMake 2.6 or newer
  • Windows SDK or Visual Studio 2010 Professional
  • Unix command-line tools from GnuWin32 or Cygwin: sh, mkdir, rm, cp, tar, gzip
  • zlib headers (if building native code bindings for zlib)
  • Internet connection for first build (to fetch all Maven and Hadoop dependencies)

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 is free to
download here:

http://www.microsoft.com/en-us/download/details.aspx?id=8279

前期准备

注意,所有的安装路径、环境变量路径都要尽量简短,不要有中文、空格

注意,所有的安装路径、环境变量路径都要尽量简短,不要有中文、空格

注意,所有的安装路径、环境变量路径都要尽量简短,不要有中文、空格

JDK

我已经配过了,需要的可以参考这里:

http://jingyan.baidu.com/article/02027811629b941bcc9ce521.html

Maven

我已经配过了,需要的可以参考这里:

http://jingyan.baidu.com/article/cb5d61050b8ee7005d2fe04e.html

FindBugs

下载地址:http://findbugs.sourceforge.net/downloads.html

配置环境变量:

变量名
FINDBUGS_HOME C:\bigdata\findbugs-3.0.1

%FINDBUGS_HOME%\bin要配到path里面去。

用下面的命令检查是否安装好:

findbugs -version

ProtocolBuffer

下载地址:http://download.csdn.net/detail/erli11/7408633

配置环境变量:

变量名
PROTOBUF_HOME C:\bigdata\protoc-2.5.0-win32

%PROTOBUF_HOME%\要配到path里面去。

用下面的命令检查是否安装好:

protoc --version

CMake

下载地址:https://cmake.org/files/v3.3/cmake-3.3.0-win32-x86.exe

没有64位的版本,下个32位的将就一下吧。

配置环境变量:

变量名
CMAKE_HOME C:\CMake

%CMAKE_HOME%\bin要配到path里面去。这个可以在安装的时候选择让安装程序配进去就好。

用下面的命令检查是否安装好:

cmake -version

window 10 sdk下载和安装

下载地址:https://developer.microsoft.com/zh-cn/windows/downloads/windows-10-sdk

Visual Studio 2015

下载地址:https://www.visualstudio.com/

安装时注意勾选C++

Cygwin

下载地址:http://cygwin.com/install.html

因为我们是64位的系统,选择setup-x86_64.exe进行下载。

安装的话可以看:http://blog.csdn.net/u013076997/article/details/52636116还有http://blog.csdn.net/pz0605/article/details/52193450

配置环境变量:

变量名
CYGWIN64_HOME C:\cygwin64

%CYGWIN64_HOME%\bin要配到path里面去。

ZLib

下载并解压:http://zlib.net/zlib128-dll.zip

环境变量,直接在Path里面添加:C:\bigdata\zlib128-dll

Hadoop2.7.3源码包

下载地址:http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.3/hadoop-2.7.3-src.tar.gz

新增环境变量整理

变量名 Path路径
FINDBUGS_HOME C:\bigdata\findbugs-3.0.1 %FINDBUGS_HOME%\bin
PROTOBUF_HOME C:\bigdata\protoc-2.5.0-win32 %PROTOBUF_HOME%|
CMAKE_HOME C:\CMake %CMAKE_HOME%\bin
CYGWIN64_HOME C:\cygwin64 %CYGWIN64_HOME%\bin
C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\bigdata\zlib128-dll

编译错误解决

Hadoop-Common项目和HDFS项目如果不在前期进行一些处理的话会编译报错。

Hadoop-Common

1.进入项目目录,打开工程文件

进入E:\hadoopsrc\hadoop-common-project\hadoop-common\src\main\winutils,打开winutils.sln

2.升级解决方案

工程打开后,会出现下图所示的对话框,点击“确认”进行升级。

3.生成

在winutils项目上右键->生成。

会出现下图所示的错误,不用管它。

4.native项目

E:\hadoopsrc\hadoop-common-project\hadoop-common\src\main\native下面重复上面的步骤

现在Hadoop-Common项目应该可以正常编译了。

HDFS项目

1.进入目录

进入 E:\hadoopsrc\hadoop-hdfs-project\hadoop-hdfs

2.修改pom.xml

搜索cmake,把如图所示的位置改为:Visual Studio 14 2015 Win64

这里可以用cmake-gui.exe来测试一下。

如果没有报The C compiler identification is unknown之类的错误,就是visual studio 2015的visual c++环境已经正确安装了。
报其他错误不管他!

设置MSBuild

开始编译

1.管理员身份运行“VS2015 开发人员命令提示”

2.以我的源码存放目录为例,执行如下命令:

E:
cd E:\hadoopsrc
set Platform=x64
set ZLIB_HOME=C:\bigdata\zlib128-dll\include
mvn clean package -Pdist,native-win -DskipTests -Dtar -Dmaven.javadoc.skip=true -e

如果出现客户端长时间停在下载某个pom文件或者某个jar包的时候,是网速问题,可以ctrl+c停止,再按方向上键,重新执行命令
mvn clean package -Pdist,native-win -DskipTests -Dtar -Dmaven.javadoc.skip=true -e
即可,再次执行原来maven下载过的那些pom或者jar包,不会再重新下了。

祝大家编译成功~

总结

我花了大概一天的时间终于编译好了。期间犯了一个大错误,我把VS2015的安装目录装到了一个中文+空格的目录下,导致了很多奇怪的问题。

所以,重说三,No Zuo No Die.

阅读更多
版权声明:本文为博主原创文章,请在转载时注明出处 https://blog.csdn.net/mrbcy/article/details/55806809
个人分类: Hadoop 大数据框架
上一篇【Java并发编程】01.Semaphore的使用
下一篇Hdfs Java API初探
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭