CDH版本hadoop的源码编译

在安装CDH版本的hadoop的时候, 我们下载下来的CDH的hadoop安装包中, 并没有native包, 所以我们在使用本地库 (本地库可以用来做压缩, 以及支持C程序等等) 的时候就会出问题, 好了废话不多说, 接下来看如何编译.

首先我们打开src目录下的BUILDING.txt文件
CDH版本hadoop的源码编译_第1张图片

能够看到, 在官方说明中已经写明了编译所需要的准备工作

准备工作:

  • linux系统 (准备一台干净的linux系统, 这里使用的的是centOS 6.9)
  • jdk1.7 (这里使用jdk1.7, 使用1.8会出问题)
  • maven (这里使用的是maven3.0.5, 一样不要使用高版本)
  • findbugs
  • protocolbuf
  • 安装依赖包 (cmake, zlib, openssl)
  • 安装snappy
  • CDH hadoop的源码包

1. 准备一台干净的linux系统

这里使用的的是centOS 6.9 64位

保证可以联网, 关闭防火墙, 关闭selinux

service iptables stop    关闭防火墙
chkconfig iptables off   关闭防火墙开机自启动

关闭selinux

vim /etc/selinux/config

修改SELINUX=disabled
CDH版本hadoop的源码编译_第2张图片

2. 安装jdk1.7

卸载系统自带的jdk

rpm -qa | grep java

rpm -e --nodeps 要卸载的

将我们的jdk1.7的安装包上传并解压, 然后修改/etc/profile, 添加java环境变量

export JAVA_HOME=/export/servers/jdk1.7.0_71
export PATH=:$JAVA_HOME/bin:$PATH

source /etc/profile 让配置生效

3. 安装maven

这里使用maven3.x以上的版本应该都可以, 不建议使用太高的版本, 这里使用3.0.5的版本.

上传安装包, 解压, 配置环境变量

vim /etc/profile

export MAVEN_HOME=/export/servers/apache-maven-3.0.5
export MAVEN_OPTS="-Xms4096m -Xmx4096m"
export PATH=:$MAVEN_HOME/bin:$PATH

source /etc/profile 让配置生效

4. 安装findbugs

下载findbugs

wget --no-check-certificate https://sourceforge.net/projects/findbugs/files/findbugs/1.3.9/findbugs-1.3.9.tar.gz/download -O findbugs-1.3.9.tar.gz

解压缩, 然后配置环境变量

vim /etc/profile

export FINDBUGS_HOME=/export/servers/findbugs-1.3.9
export PATH=:$FINDBUGS_HOME/bin:$PATH

source /etc/profile 让配置生效
CDH版本hadoop的源码编译_第3张图片

5. 安装依赖包 (cmake, openssl, zlib 等)

yum install autoconf automake libtool cmake
yum install ncurses-devel
yum install openssl-devel
yum install lzo-devel zlib-devel gcc gcc-c++

bzip2压缩需要的依赖包

yum install -y bzip2-devel

6. 安装protobuf

protobuf下载百度网盘地址 https://pan.baidu.com/s/1pJlZubT

下载后, 解压缩

然后编译

cd /export/servers/protobuf-2.5.0
./configure
make && make install

7. 安装snappy

snappy下载地址: http://code.google.com/p/snappy/

下载后, 解压缩

然后编译

cd /export/servers/snappy-1.1.1/
./configure
make && make install

8. 上传CDH hadoop的源码包并编译

下载CDH hadoop 5.14.0-src源码包, 解压缩

http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.14.0-src.tar.gz

以支持snappy压缩的方式编译:

cd /export/servers/hadoop-2.6.0-cdh5.14.0
mvn package -DskipTests -Pdist,native -Dtar -Drequire.snappy -e -X

CDH版本hadoop的源码编译_第4张图片

最后出现BUILD SUCCESS就是编译成功了, 那编译完成的文件在哪里呢?

cd /export/servers/hadoop-2.6.0-cdh5.14.0/hadoop-dist/target
CDH版本hadoop的源码编译_第5张图片

检查native

cd hadoop-2.6.0-cdh5.14.0
bin/hadoop checknative

CDH版本hadoop的源码编译_第6张图片

完成 !!!

最后, 网速慢的同学就不要编译了, 会慢死的.

还有, 内存小的同学就不要编译了, 会慢死的.

因为途中要下载大量大量大量的maven依赖包, 还有Tomcat等, 网速慢的话是真的要等好久呦~

如果真的要安装的话, 可以先整理一套本地maven仓库, 上传上去, 修改maven的配置文件conf/setting.xml 指定一下本地仓库. 如此在编译过程中就不用下载大量的maven依赖了.

你可能感兴趣的:(大数据)