Hadoop 在 XP 上的编译过程说实话不太轻松,但对老设备还有需求的人来说,还是蛮有用的。你得先搞定一堆工具:像是 Visual Studio 2010、Cygwin、Maven、JDK、protoc 和 zlib 这些少不了。环境变量也要一个一个设,JAVA_HOME
、MAVEN_HOME
这些记得配好。
编译的时候用的是 Maven 命令:
mvn package -Pdist -Dtar -Dmaven.javadoc.skip=true -DskipTests -fail-at-end -Pnative-win
命令本身没啥神秘的,主要难在后面。因为 Hadoop 2.6 默认是给 64 位搞的,所以你得手动把项目里的 x64
和 Win64
换成 Win32
,不然编译根本过不去。
比较折腾的是那些兼容性问题。像 CompareStringEx
、CreateSymbolicLinkW
、SetProcessWorkingSetSizeEx
这些 API 在 XP 下用不了,得一个个换成老版本,比如 CompareStringW
、SetProcessWorkingSetSize
。文件里的 .sln
和 .vcxproj
也都要动手改。
虽然步骤有点绕,但其实每一步都还能搞清楚。你真要在 XP 上跑 Hadoop,也不是不行。只是说白了,不推荐长期这么玩。要是能换个更现代的系统,或者试试像 Hadoop 的 Eclipse 插件编译 这种更轻量的方式,开发体验会好不少。
哦对了,有兴趣继续挖的话,可以看看这几个文章:
如果你正在折腾旧机器,又想跑一套 Hadoop 环境,不妨照这个思路试试看。不过要真跑业务,建议还是升级系统更靠谱。