win10下编译Apache版本hadoop2.10.0,附资源

8 篇文章 0 订阅
4 篇文章 0 订阅

今天是三月尾巴了,然后博文还没打卡,今天临时编译了一下hadoop在window上的环境包,至于版本就不要纠结了,比如问为啥不用hadoop2.6或者hadoop3版本而用2.10.0版本。集群都搭好了,总不能改集群吧,而且3版本貌似是支持Windows滴,之所以Windows环境也改成对应版本也是为了调试,出错也好查些,废话少说,进入正题。

事先说明
这里部分是从这位可爱的网友Zeus借鉴来的,先行者的肩膀。

https://www.cnblogs.com/hit-zb/p/10763367.html

从这位网友借鉴了一下,内容些许滞后,但经验还不错,虽然后面没用上(直接改了visual studio版本),但是说不定什么时候得升级呢,对吧,留个记号。

https://blog.csdn.net/feinifi/article/details/82905701

至于为啥还是原创,天啊撸,发表时选其他还要写写写,实在是懒,而且2.10.0也没看见有前人分享,那么我就蹭一蹭!不进去?

1.环境准备。
Hadoop并没有提供官方的 Windows 10 下的安装包,所以需要自己手动来编译,官方文档中 BUILDING.txt 文件中说明了编译源码需要的软件环境:
Hadoop源码,我下载的包是hadoop-2.10.0-src.tar.gz。
Windows 系统,我的是Windows10 64位。
JDK 1.8+,我的是java version “1.8.0_171”。
Maven 3.0 or later,我的是Apache Maven 3.5.4。
Protocol,我的是protoc-2.5.0-win32.zip,至于为啥是32而不是64,我有空再写上来,凑时间。。
CMake 2.6 or newer,我的是cmake-3.17.0-win64-x64.zip。
Visual Studio 2010 Professional,我的是2010的,这里有个遗憾的地方,就是2019版本上去会报些错,大致意思是版本不匹配,今天查了半天的代码也只发现native.sln和winutils.sln文件有涉及vs版本的,而不是和其它版本一样写在hdfs的pom.xml文件里,这个去查官方文档应该有更新说明,凑时间。。
Cygwin 这个下载下来是个setup-x86_64.exe执行文件,执行就好了。
Ant 这个不装后面会报个错,有这个环节。我的是apache-ant-1.10.7-bin.tar.gz。
VSCode 下载下来是个VSCodeUserSetup-x64-1.43.2.exe文件,执行即可。
电脑需要联网,我网络不行,加上大半天都在解决报错,以至于现在还在编译。
Building Apache Hadoop Amazon Web Services support 2.10.0 [72/84]
卡在了一个资源上,国外资源动不动这样,平常心呐。都这步了,先凑时间,72了后面都还好,错误出现几率不是特别大了。
环境需求大致截图
在这里插入图片描述

2.编译环境搭建
这个凑时间先不写,内容不少,并且很多可借鉴的,基本操作。

3.编译开始
编译开始也有个小坑!好吧,也不小。
visual studio安装后,开始菜单有很多visual studio小入口,得从这儿进去编译。
你以为这就完了吗?不不,还得以管理员身份进入,至于为啥,你试试普通身份进入,到哪步报错忘了,反正报错信息干扰了我很久,灵机一动想到权限才跑过去哪步。
在这里插入图片描述
这里看到了Git,忘了要不要,管它了,先忽略了。
编译命令:
mvn package -Pdist,native-win -DskipTests -Dtar -Dmaven.javadoc.skip=true -e

4.编译干扰
重点来了,编译干扰项。

1.Cannot run program “msbuild” (in directory “D:\JAVA\Hadoop2.10.0\hadoop-2.10.0-src\hadoop-common-project\hadoop-common”): CreateProcess error=2, 系统找不到指定的文件。 -> [Help 1]

C:\Windows\Microsoft.NET\Framework\v4.0.30319 安装VSCode后将此目录加入环境变量。

2.Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.3.1:exec (compile-ms-winutils) on project hadoop-common: Command execution failed.: Process exited with an error: 1 (Exit value: 1) -> [Help 1]
已完成生成项目“D:\JAVA\Hadoop2.10.0\hadoop-2.10.0-src\hadoop-common-project\hadoop-common\src\main\winutils\winutils.sln”(默认目标)的操作 - 失败。

winutils.sln用 Visual studio打开进行操作(2010版本不用,后面版本需要重新构建一下,而且Visual studio版本也要改,原谅我没找到在哪改,只能使用2010版本先编译着了)。

3.An Ant BuildException has occured: exec returned: 1

当时没装ant报错了,然后装上了重启了一下电脑,重进了一下管理员cmd再编译就没问题了。

4.严重性 代码 说明 项目 文件 行 禁止显示状态 错误 MSB8020 无法找到 v142 的生成

这个是使用Visual studio2019进行重新构建的时候报的错,使用经验不够丰富导致的吧,也调的差不多了,最终换成Visual studio2010就没报错了。

5.还有一些无法写入,无法读取的问题,在打开Visual studio入口时使用管理员身份进入即可。

6.(待定,不确定是否有效)在此解决方案中一次生成一个项目。若要启用并行生成,请添加“/m”开关。
指定的解决方案配置“Release|Itanium”无效。

下载node.js npm install --global --production windows-build-tools

7.hadoop-hdfs-native-client\target\antrun\build-main.xml会报错

hadoop-hdfs-native-client下pom.xml文件cmake和msbuild值改成false

8.卡资源,出现在72 74左右,总共出现三个。

mockito-core-1.10.19.jar 72/84这里容易卡,想了想还是自己去阿里云仓库下了份放在本地仓库,至于优先级问题,尚待解决。

https://archiva-maven-storage-prod.oss-cn-beijing.aliyuncs.com/repository/central/org/mockito/mockito-core/1.10.19/mockito-core-1.10.19.jar?Expires=1585713128&OSSAccessKeyId=LTAIfU51SusnnfCC&Signature=WwECkcoaEELKCGSZWzGCaIXk0t8%3D

放在C:\Users\Machenike.m2\repository\org\mockito\mockito-core\1.10.19 这个版本很低了,难怪中央仓库下不到

aliyun-java-sdk-core-3.4.0.jar

https://archiva-maven-storage-prod.oss-cn-beijing.aliyuncs.com/repository/central/com/aliyun/aliyun-java-sdk-green/3.4.1/aliyun-java-sdk-green-3.4.1.jar?Expires=1585713238&OSSAccessKeyId=LTAIfU51SusnnfCC&Signature=DYeAZppurhQcMn1LTvD1GAZ%2Bbpk%3D

放在C:\Users\Machenike.m2\repository\com\aliyun\aliyun-java-sdk-core\3.4.0

ojalgo-43.0.jar

https://archiva-maven-storage-prod.oss-cn-beijing.aliyuncs.com/repository/central/org/ojalgo/ojalgo/43.0/ojalgo-43.0.jar?Expires=1585713633&OSSAccessKeyId=LTAIfU51SusnnfCC&Signature=btuj7u1jKtQKMmKmXV7anEpFvNk%3D

放在C:\Users\Machenike.m2\repository\org\ojalgo\ojalgo\43.0

下面是编译成功截图
在这里插入图片描述

5.部署测试
部署
编译出的成果在hadoop-2.10.0-src\hadoop-dist\target此目录下,有jar包,有目录。
在这里插入图片描述
将hadoop-2.10.0目录单独粘贴出来,放在你想要的的目录下,我的在这里。
在这里插入图片描述
将插件bin目录下的hadoop.dll复制到C:\Windows\System32下。
增加环境变量HADOOP_HOME,指向Hadoop安装根目录;
在Path变量中添加%HADOOP_HOME%\bin;

验证是否生效,cmd输入hadoop -version出现java版本即可。

测试本地环境是否有效,打开hadoop集群,往hdfs根目录创建一个文件夹。
测试代码:
在这里插入图片描述
测试结果:
在这里插入图片描述

6.资源
地址:https://pan.baidu.com/s/17CvIUdCtoyWBS1jsBgiN9A
提取码:12lo

感谢您的收看。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值