当前位置:首页 > 服务端 > Hadoop源码的编译过程详细解读(各版本)

Hadoop源码的编译过程详细解读(各版本)

 

 

说在前面的话

   重新试多几次。编译过程中会出现下载某个包的时间太久,这是由于连接网站的过程中会出现假死,按ctrl+c,重新运行编译命令。 
如果出现缺少了某个文件的情况,则要先清理maven(使用命令 mvn clean) 再重新编译。 
 
 
 
 

前言

   Spark可以通过SBT和Maven两种方式进行编译,再通过make-distribution.sh脚本生成部署包。  

   SBT编译需要安装git工具,而Maven安装则需要maven工具,两种方式均需要在联网 下进行。

    尽管maven是Spark官网推荐的编译方式,但是sbt的编译速度更胜一筹。因此,对于spark的开发者来说,sbt编译可能是更好的选择。由于sbt编译也是基于maven的POM文件,因此sbt的编译参数与maven的编译参数是一致的。

 

 

 

 

心得

   有时间,自己一定要动手编译源码,想要成为高手和大数据领域大牛,前面的苦,是必定要吃的。

   无论是编译spark源码,还是hadoop源码。新手初次编译,一路会碰到很多问题,也许会花上个一天甚至几天,这个是正常。把心态端正就是!有错误,更好,解决错误,是最好锻炼和提升能力的。

       更不要小看它们,能碰到是幸运,能弄懂和深入研究,之所以然,是福气。

 

 

 

 

各大版本简介

  1、Apache版------可自己编译,也可采用预编译的版本

 2、CDH版---------无需自己编译

 

Cloudera Manager安装之利用parcels方式安装3节点集群(包含最新稳定版本或指定版本的安装)(添加服务)

 

 3、HDP版----------无需自己编译

 

Ambari安装部署搭建hdp集群(图文分五大步详解)(博主强烈推荐)

 

主流是这3大版本,其实,是有9大版本。CDH的CM是要花钱的,当然它的预编译包,是免费的。

 

 

 

hadoop/spark源码的下载方式:

  1、官网下载

  2、Github下载(仅source code)

    

以下是从官网下载:

Hadoop源码的编译过程详细解读(各版本) _ JavaClub全栈架构师技术笔记

 

以下是Github下载(仅source code)

Hadoop源码的编译过程详细解读(各版本) _ JavaClub全栈架构师技术笔记

 

 

CDH的下载

 http://archive-primary.cloudera.com/cdh5/cdh/5/

Hadoop源码的编译过程详细解读(各版本) _ JavaClub全栈架构师技术笔记

 

 

HDP的下载

http://zh.hortonworks.com/products/

 

 

好的,那我这里就以,官网为例。

         准备Linux系统环境(如CentOS6.5)

 

  • 为什么要源码安装? 
    是因为之前下的binary版,解压后直接用,发现每次执行命令都会报个WARN,如: 
    hd_admin@master:/usr/local/hadoop$ hadoop fs -ls 
    14/10/27 19:59:51 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 

  看了下解压后的目录,lib/naive下完全是空的,另外网上查也有说此文件夹下如果是32位环境下编译出来的.so文件,在64位系统上也会有此问题,因此直接从cloudera上下了src版手工编译一遍

  因此如非必要,完全可以选择Apache Hadoop发行版,并且非源码安装编译的话可以跳过。

前言,这编译是一个复杂和长知识的过程。

版本和位置得要有自己的习惯。

 

 

1  首先检查并安装gcc-c++

在root用户下在线下载:

yum -y install gcc-c++

 

2 首先检查并安装lrzsz

在root用户下在线下载:

yum -y install lrzsz

3.图形界面安装,会自带有Centos6.5自带的JDK

 一般将获得如下信息:
    java version "1.7.0_45"

OpenJDK Runtime Environment (rhel-2.4.3.3.el6-x86_64 u45-b15)

OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)


 第一步:查看Centos6.5自带的JDK是否已安装 

<1> 检测原OPENJDK版本  

# java -version    

一般将获得如下信息:      

tzdata-java-2013g-1.el6.noarch

java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64

java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64


 <2>进一步查看JDK信息

# rpm -qa|grep java   

 rpm -e --nodeps tzdata-java-2013g-1.el6.noarch

 rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64

rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64


 <3>卸载OPENJDK

自带的jdk已经没了。

在root用户下安装jdk-7u79-linux-x64.tar.gz

在/usr/local上传

解压,

tar -zxvf jdk-7u79-linux-x64.tar.gz

删去压缩包

rm -rf jdk-7u79-linux-x64.tar.gz

配置环境变量

vim /etc/profile

#java

export JAVA_HOME=/usr/local/jdk1.7.0_79

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/jre/lib/dt.jar:$JAVA_HOME/jre/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

文件生效

source /etc/profile

查看是否安装成功

java -version

  4、 安装maven

下载apache-maven-3.3.3-bin.tar.gz

/usr/local/

上传apache-maven-3.3.3-bin.tar.gz


解压

tar -zxvf apache-maven-3.3.3-bin.tar.gz

删除压缩包

rm -rf apache-maven-3.3.3-bin.tar.gz


  5、 安装ant

下载apache-ant-1.9.7-bin.tar.gz

/usr/local

上传

解压

tar -zxvf apache-ant-1.9.7-bin.tar.gz

删除压缩包

rm -rf apache-ant-1.9.7-bin.tar.gz

 

Maven和ant配置环境变量

vim /etc/profile
#maven
export MAVEN_HOME=/usr/local/apache-maven-3.3.3
export PATH=$PATH:$MAVEN_HOME/bin
 (这里错误啦!!)

PATH=$MAVEN_HOME/bin: $PATH
Export MAVEN_HOME   (对的)



#ant
export ANT_HOME=/usr/local/apache-ant-1.9.7
export PATH=$PATH:$ANT_HOME/bin

文件生效

source /etc/profile

查看是否安装成功

mvn -v
ant -v

如果出现如下内容,说明安装成功:

Buildfile: build.xml does not exist!

Build failed

说明ant安装成功!因为ant默认运行build.xml文件,这个文件需要我们建立。

 

6. 安装ProtocolBuffer   

下载protobuf-2.5.0.tar.gz

在/usr/local/

上传protobuf-2.5.0.tar.gz

解压

tar -zxvf protobuf-2.5.0.tar.gz

删除压缩包

rm -rf protobuf-2.5.0.tar.gz
cd protobuf-2.5.0
./configure --prefix=/usr/local/protobuf-2.5.0
make
make check

make install

配置环境变量

vim /etc/profile
# protobuf
export PROTOBUF_HOME=/usr/local/protobuf-2.5.0
export PATH=$PATH:$PROTOBUF_HOME/bin

文件生效

source /etc/profile

查看是否安装成功

protoc --version

 

6、安装cmake

yum -y install cmake


7 zlib安装

yum -y install zlib
 
                         

8 openssl-devel

yum -y install openssl-devel
 

9 安装snappy

下载snappy-1.1.3.tar.gz

上传/usr/local/

解压

tar -zxvf snappy-1.1.3.tar.gz

删除压缩包

rm -rf snappy-1.1.3.tar.gz
cd snappy-1.1.3
./configure
make

make install

如果安装成功的话进入【/usr/local/lib】目录下(默认位置),可以看到已经生成了snappy的库文件

此刻,已经是该装好的,装好了,准备执行!

 

10. 在编译hadoop源码之前,替换掉MAVEN_HOME/conf目录下的setting.xml

 

 

 
11 下载对应的Hadoop源码

 

 
                              

其实啊,这之后也是hadoop-2.6.0-cdh5.4.5-src.tar.gz

 
                              

编译,生成hadoop-2.6.0-cdh5.4.5.tar.gz,然后进行集群安装!

 
                              
 
                              

hadoop-2.6.0-cdh5.4.5-src.tar.gz

 
                              

源码编译正在开始!

 
                              

http://archive.cloudera.com/cdh5/cdh/5/

 
                              

下载hadoop-2.6.0-cdh5.4.5-src.tar.gz


解压hadoop-2.6.0-cdh5.4.5-src.tar.gz源代码包


删除hadoop-2.6.0-cdh5.4.5-src.tar.gz源代码包

然后进入hadoop-2.6.0-cdh5.4.5目录,

mvn package -Pdist,native -DskipTests -Dtar

mvn编译时间很长,虚拟机里面编译了11分钟。

mvn package -Pdist,native -DskipTests -Dtar -Dbundle.snappy -Dsnappy.lib=/usr/local/lib(也可以尝试)

mvn package [-Pdist] [-Pdocs] [-Psrc] [-Pnative] [Dtar] 这是构建发布版

 

进入

mvn package -Pdist,native -DskipTests -Dtar

来源链接:https://www.cnblogs.com/zlslch/p/5869738.html

版权声明:
1、Java侠(https://www.javaxia.com)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaxia.com/server/124554.html

分享给朋友: