在 win7 64 上编译 hadoop 2.7.3的经历
---bySpring Pu
主要参考链接:https://wiki.apache.org/hadoop/Hadoop2OnWindows ;
http://hadoop.apache.org/docs/stable/ ;
想在本机上编译使用下 hadoop 2.7.3,本来想装个虚拟机的,但是我机子的配置是 Thinkpad E420 cpu i3 2330M , 8G 内存 ,发现也可以直接在 windows 上弄,那我就干脆优先用 windows 环境,这样使用可能会比较方便,不用分内存和硬盘给额外的虚拟机。
开始听说 CDH 的影响比较大,想去CDH下载下,CDH 上还要提交个人信息,目的啥的。就犹豫了下,去Apache 官网,用 Apache 的还有个好处,估计遇到问题,网上找到的答案也会比较多。而且后来做到一半,同时去CDH 去下个 VMvare 版本的虚拟机,结果下载速度很慢,老是断,断断续续下了几天,才下好,而那时候,我已经在 Windows 7 64上编译完 apache hadoop了。
在编译 Apache Hadoop 的过程中,遇到了好几个问题,折腾了几天,不大顺利,才弄好,因此记录下。
去 Apache 官网 http://hadoop.apache.org/ 找到下载页面,怕出错什么的,找了个稳定版本的链接,于是选择了较新的稳定版本2.7.3。然后查看官方文档,由于是本机单机使用,所以看了 http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html 这个链接。
然后发现在 windows 上也可以直接部署使用,于是我点开了 https://wiki.apache.org/hadoop/Hadoop2OnWindows 里面提到 Windows 7 are also likely to work. 所以就一步步往下走了。
1. 安装 JDK, 设置 JAVA_HOME
-- 本机上本来就安装了oracle jdk 1.8. 于是加上了环境变量,我本地设置是 C:\Program Files\Java\jdk1.8.0_121 ,中间有空格,虽然文档上说路径不要有空格,有空格的要用Windows 8.3 Pathname 替代,但是我百度后,参照别人的改成类似 Progra^1 反而说找不到,点开那个文档后发现,空格的也可以用引号把路径引起来,所以加引号,当时好像是可以,但是编译到一半时,代码用有引用到这个环境变量的地方,报错了,查了一下,是引号的问题,JAVA_HOME 环境变量有空格的话,如果直接在路径首尾加上引号,会导致在某些引用了环境变量后再次加引号的字符串报错。比如 "${JAVA_HOME}\bin\xxx" 如果在 JAVA_HOME字串上本身加引号会有问题。我想后面空格没有问题,也许是因为后来装了类 Unix 命令行。
所以这里有空格也是可以编译过的,至少在这个 2.7.3 版本上。但是建议jdk安装路径不要有空格,因为后来发现,install的时候会报错,说 JAVA_HOME设置得不正确。。
2. 下载完代码后,在代码主目录下有个 BUILDING.txt
可以看到文档的前面部分都是讲的怎么在linux 环境下编译。可以一直拉到文件末尾看到 Building on Windows 部分的说明。
这