Hadoop 在 XP 上的编译过程说实话不太轻松,但对老设备还有需求的人来说,还是蛮有用的。你得先搞定一堆工具:像是 Visual Studio 2010CygwinMavenJDKprotoczlib 这些少不了。环境变量也要一个一个设,JAVA_HOMEMAVEN_HOME这些记得配好。

编译的时候用的是 Maven 命令:

mvn package -Pdist -Dtar -Dmaven.javadoc.skip=true -DskipTests -fail-at-end -Pnative-win

命令本身没啥神秘的,主要难在后面。因为 Hadoop 2.6 默认是给 64 位搞的,所以你得手动把项目里的 x64Win64 换成 Win32,不然编译根本过不去。

比较折腾的是那些兼容性问题。像 CompareStringExCreateSymbolicLinkWSetProcessWorkingSetSizeEx 这些 API 在 XP 下用不了,得一个个换成老版本,比如 CompareStringWSetProcessWorkingSetSize。文件里的 .sln.vcxproj 也都要动手改。

虽然步骤有点绕,但其实每一步都还能搞清楚。你真要在 XP 上跑 Hadoop,也不是不行。只是说白了,不推荐长期这么玩。要是能换个更现代的系统,或者试试像 Hadoop 的 Eclipse 插件编译 这种更轻量的方式,开发体验会好不少。

哦对了,有兴趣继续挖的话,可以看看这几个文章:

如果你正在折腾旧机器,又想跑一套 Hadoop 环境,不妨照这个思路试试看。不过要真跑业务,建议还是升级系统更靠谱。