Hadoop-2.5.0-cdh5.2.0 获取源码及编译

一、为什么要编译这个版本的?

当遇到以下这种情况:

这里写图片描述

无非要么本地库是32位,那么本地就缺少库!笔者在使用 Hadoop-2.5.0-cdh5.3.2 遇到的则是第二种情况。因为从官网下直接下载的二进制ta包下,压根就木有本地库(在 apache hadoop 相同位置)。所以,需要编译下,产生本地库文件。

因为笔者也刚接触 CDH 版本的 hadoop,所以才会去做这些事,也许将来回头看,只能说笔者愚昧无知,完全没必要。

这个版本依旧可以在 http://archive.cloudera.com/cdh5/cdh/5/ 里下载,显示的时间为 2014-11-23。
我选用 Maven 的国内镜像地址为

<mirror>
    <id>nexus-oscid>
    <mirrorOf>*mirrorOf>
    <name>Nexusoscname>
    <url>http://maven.oschina.net/content/groups/public/url>
mirror>

用浏览器可以打开

http://maven.oschina.net/content/groups/public/org/apache/hadoop/hadoop-common/

可以看到,次新的 cdh 版本的 2.5.0-cdh5.2.0 (2014-12-01——也许是上传时间吧)

Hadoop-2.5.0-cdh5.2.0 获取源码及编译_第1张图片

注:正是因为镜像中木有Hadoop-2.5.0-cdh5.3.2这个版本,所以笔者就曲线救国,编译Hadoop-2.5.0-cdh5.2.0 。打算将编译之后的库文件拷贝到 Hadoop-2.5.0-cdh5.3.2 下(后面证明,这条路貌似OK)。

那为什么不编译 Hadoop-2.5.0-cdh5.2.1 呢?有兴趣请参考另外一篇博客 Hadoop-2.5.0-cdh5.2.1以及Hadoop-2.5.0-cdh5.3.2 获取源码及编译

二、Hadoop 版本编译前的准备

请参考 Hadoop 版本编译前的准备

需要注意的点(在上面的博客里也具体讲到了):

  • Maven 本地仓库要不先删除了?(这个做法比较极端,但有时很有效,避免混乱!)
  • 在 Pom.xml 里添加相应的 仓库地址
  • 原始 hadoop-2.5.0-cdh5.2.0-src.tar.gz 文件为 35.7M,而解压后达到 196M!编译完毕之后,整个目录的大小更是达到了 3.3G!!! 所以确保你编译时,空间够用!
  • 这个编译后的包,虽然是用 CDH 版本的 hadoop 编译出来的,但是里面的目录结构,以及大小(157M)和网上直接下载的二进制包(254M)有出入。笔者编译的目的是借用其中的本地库,而非用之搭建平台的!

三、编译过程

从 http://archive.cloudera.com/cdh5/cdh/5/ 里下载 hadoop-2.3.0-cdh5.0.0-src.tar.gz (2014-3-31)

1. 将压缩包放至 /home/hadoop/software,并解压

cd home/hadoop/software
tar -zxvf hadoop-2.5.0-cdh5.2.0-src.tar.gz

2. 编译源码

  • 进入源码目录下:
cd /home/hadoop/software/hadoop-2.5.0-cdh5.2.0
  • 开始执行
mvn package -Pdist,native -DskipTests -Dtar 

这个要等待很长时间,如果中间出现停掉,可以重新执行该命令,会继续上次下载编译

四、编译结果

1. 编译成功后会生成一个tar包,如下图所示:

Hadoop-2.5.0-cdh5.2.0 获取源码及编译_第2张图片
Hadoop-2.5.0-cdh5.2.0 获取源码及编译_第3张图片

2. 编译后的路径在 hadoop-2.3.0-cdh5.0.0/src/hadoop-dist/target

cd /home/hadoop/software/hadoop-2.5.0-cdh5.2.0/hadoop-dist/target/
ls -al

Hadoop-2.5.0-cdh5.2.0 获取源码及编译_第4张图片

3. 配置环境变量,查看版本

vim ~/.bash_profile
  • 添加如下环境变量
export HADOOP_HOME=/home/hadoop/software/hadoop-2.5.0-cdh5.2.0/hadoop-dist/target/hadoop-2.5.0-cdh5.2.0
export PATH=$PATH:$HADOOP_HOME/bin
  • 使环境变量立即生效
source ~/.bash_profile
  • 查看编译后的 hadoop 版本
    不这么做,直接查看的后果可能是

这里写图片描述

hadoop -version

Hadoop-2.5.0-cdh5.2.0 获取源码及编译_第5张图片

  • 查看本地库
cd /home/hadoop/software/hadoop-2.5.0-cdh5.2.0/hadoop-dist/target/hadoop-2.5.0-cdh5.2.0/lib/native
file libhadoop.so.1.0.0

这里写图片描述

你可能感兴趣的:(Hadoop学习专辑)