hadoop 源码编译

来源:互联网 发布:云计算培训班 编辑:程序博客网 时间:2024/05/16 18:10

编译目的:

Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通过本地库,Hadoop可以更加高效地执行某一些操作。native位于hadoop-2.x.x/lib/native目录下  hadoop中的zlib和gzip模块会加载本地库,如果加载失败,会提示:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable   

通过下载官方源码在本地环境编译,能使hadoop高效运行


编译前系统准备:

centOS要保证联网,要分配足够多的内存以及磁盘空间

内存分配不够中途会突然就失败了,所以一定要先分配足够内存

export MAVEN_OPTS="-Xms256m -Xmx512m"


编译前环境准备:

下载maven jdk findbugs(可选)

本次编译版本:

maven版本 :apache-maven-3.5.2

jdk版本:jdk1.7.0_79

findbugs版本:findbugs-1.3.9


配置环境变量

vi /etc/profile

//配置
export JAVA_HOME=/modules/jdk1.7.0_79
export MAVEN_HOME=/modules/apache-maven-3.5.2/export FINDBUGS_HOME=/modules/findbugs-1.3.9/export PATH=.:$MAVEN_HOME/bin:$JAVA_HOME/bin:$FINDBUGS_HOME/bin:
//配置  


分别运行指令 java -version        mvn -version       findbugs -version验证配置成功


安装protoc

进入官网下载 https://code.google.com/p/protobuf/downloads/list  解压后进入该文件目录运行一下指令完成安装

./configuremakemake installprotoc --version //验证安装


源码下载以及解压

本次源码文件 hadoop-2.6.0-cdh5.11.2-src.tar.gz


依赖包安装

yum -y install  lzo-devel  zlib-devel  gcc gcc-c++ autoconf automake libtool openssl-devel fuse-devel cmakeyum -y install libprotobuf-dev protobuf-compiler# sanppy 压缩支持,没有安装后面编译hadoop支持snappy则不会成功yum -y install snappy libsnappy-dev# bzip2压缩支持yum -y install bzip2 libbz2-dev# 下面两个不知道是干什么的,可以尝试不安装,不行的话再装一下yum -y install libjansson-devyum -y  install fuse libfuse-dev


开始编译:

进入源码解压后的hadoop目录

# -Dmaven.javadoc.skip=true 不生成javadoc,加快速度同时避免生成javadoc出错#增加 snappy 和  openssl 支持mvn package -Dmaven.javadoc.skip=true -Drequire.snappy -Drequire.openssl -Pdist,native -DskipTests -Dtar# 如果失败重新编译可以加上 clean 重新开始编译,否则从失败的地方编译mvn clean package -Dmaven.javadoc.skip=true -Drequire.snappy -Drequire.openssl -Pdist,native -DskipTests -Dtar

编程过程较慢,根据网速不同时间也不同。请耐心等待   编译成功后native文件可共用在相同的配置环境下










原创粉丝点击