Hadoop 源码编译(CDH版)

本文使用的hadoop版本为 hadoop-2.6.0-cdh5.7.0

为什么要源码编译?

      直接使用的hadoop-2.6.0-cdh5.7.0.tar.gz包部署的hadoop集群对于许多的压缩格式都是不支持的(如下图),生产上是不可接受的,故需要重新编译hadoop使之支持压缩。

Hadoop 源码编译(CDH版)_第1张图片

源码包下载地址 : http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.7.0-src.tar.gz

前置需求

源码包中的BUILDING.txt文件中说明了编译的一些需求:

Hadoop 源码编译(CDH版)_第2张图片

Unix系统: 这里使用的是centos7.6

JDK :必须用1.7 ,用1.8会出错。下载地址:

https://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html

Maven:这里使用的是maven 3.3.1

 

开始编译

1、 安装必要的依赖库:

[root@hadoop001 ~]# yum install -y svn ncurses-devel
[root@hadoop001 ~]# yum install -y gcc gcc-c++ make cmake
[root@hadoop001 ~]# yum install -y openssl openssl-devel svn ncurses-devel zlib-devel libtool
[root@hadoop001 ~]# yum install -y snappy snappy-devel bzip2 bzip2-devel lzo lzo-devel lzop autoconf automake cmake

2、安装JDK,安装maven,配置环境变量。

注: 若因内存太小导致编译失败, 可适当提高maven的运行内存:

export MAVEN_OPTS="-Xms1024m -Xmx1024m"

配置Maven :

#配置maven的本地仓库位置
/home/hadoop/maven_repo/repo

添加阿里云中央仓库(注: 此配置应配置在     中, 不可配错):


     nexus-aliyun
     central
     Nexus aliyun
     http://maven.aliyun.com/nexus/content/groups/public

若网络慢导致依赖下载时间过长,可以自己载Jar包添加到本地仓库。

3、安装protobuf

    protobuf它是一种轻便高效的数据格式,类似于Json,平台无关、语言无关、可扩展,可用于通讯协议和数据存储等领域。
解析速度快,比对应的XML快约20-100倍,序列化数据非常简洁、紧凑,与XML相比,其序列化之后的数据量约为1/3到1/10。

①下载protobuf安装包

[hadoop@hadoop001 ~]# wget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz


②解压安装包

[hadoop@hadoop001 ~]# tar -zxvf protobuf-2.5.0.tar.gz -C ~/app


③安装protubuf

[hadoop@hadoop001 app]# cd protobuf-2.5.0
[hadoop@hadoop001 protobuf-2.5.0]# ./configure --prefix=/home/hadoop/app/protobuf-2.5.0
[hadoop@hadoop001 protobuf-2.5.0]# make && make install


④配置环境变量

export PROTOBUF_HOME=/home/hadoop/app/protobuf-2.5.0 

export PATH=$PROTOBUF_HOME/bin:$PATH


⑤验证

[hadoop@hadoop bin]# protoc --version
libprotoc 2.5.0

4、编译hadoop

解压源码包: 

[hadoop@hadoop001 software]$ tar -zxvf hadoop-2.6.0-cdh5.7.0-src.tar.gz -C ~/source/

在解压后的源码包目录下,执行编译命令:

[hadoop@hadoop001 hadoop-2.6.0-cdh5.7.0]$ mvn clean package -Pdist,native -DskipTests -Dtar

编译过程十分漫长,耐心等待。

注: 编译过程报错原则 : 报错缺什么补什么, 无法下载的包自己复制链接下载完放到指定目录下。 

无法下载的Jar包可以到下面的网站自行下载: 

https://repository.cloudera.com/cloudera/cdh-releases-rcs/

自己下载的Jar包(无需解压)放在指定目录下之后,需要注意权限 。(我是统一改成755)

 

经过一阵等待之后, 编译成功(BUILD SUCCESS):

Hadoop 源码编译(CDH版)_第3张图片

 

hadoop-dist/target 下:

Hadoop 源码编译(CDH版)_第4张图片

hadoop-2.6.0-cdh5.7.0.tar.gz 就是我们编译好的包了。

解压后查看:

Hadoop 源码编译(CDH版)_第5张图片

 

 

 

你可能感兴趣的:(Hadoop)