主要参照BUILDING.txt的操作来
* 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. 如cygwin、mingw
*从cygwin安装包安装openssl包
Net 下的:openssh,openssl
Base 下的:sed (若需要Eclipse,必须sed)
Devel 下的:subversion(建议安装)
* svn command
* git command
* vs2010 professional
1、下载hadoop-2.7.1-src.tar.gz并解压到D根目录,建议文件名越短越好,太长windows报错
2、修改源文件hadoop-2.7.1-src\hadoop-common-project\hadoop-common\src\main\java\org\apache\hadoop\fs\FileUtil.java,防止出现权限错误
private static void checkReturnValue(boolean rv, File p,
FsPermission permission
) throws IOException {
//if (!rv) {
// throw new IOException("Failed to set permissions of path: " + p +
// " to " +
// String.format("%04o", permission.toShort()));
//}
}
3、可能会碰到hadoop-common-project\hadoop-common\src\main\native\native.sln编译不过去,主要是找不到zlib.h,手动打开sln,添加include路径即可
4、
* Maven 3.0 or later
* Findbugs 1.3.9 (if running findbugs)
* ProtocolBuffer 2.5.0
* CMake 2.6 or newer
这几个命令一定要加载PATH路径下面.
5、源文件根目录执行mvn package -Pdist,native-win,docs -DskipTests -Dtar等待build sucess
6、cd hadoop-maven-plugins,执行mvn install
7、嫌默认maven源下载慢的可以修改conf/settings.xml
<mirrors>
<mirror>
<id>nexus-osc</id>
<mirrorOf>*</mirrorOf>
<name>Nexusosc</name>
<url>http://maven.oschina.net/content/groups/public/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>jdk-1.8</id>
<activation>
<jdk>1.8</jdk>
</activation>
<repositories>
<repository>
<id>nexus</id>
<name>local private nexus</name>
<url>http://maven.oschina.net/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>local private nexus</name>
<url>http://maven.oschina.net/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>