分享

Hadoop-2.3.0-cdh5.0.0获取源码及编译

nettman 发表于 2014-7-1 17:37:17 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 0 48536
问题导读:
1.获取cdh5.0.0源码,你认为需要做哪些准备,需要安装哪些软件?
2.如何通过maven获取源码?

3.如何编译源码?




1、安装Maven
首先下载Maven软件包,
下载地址为:
http://apache.fayea.com/apache-m ... en-3.1.1-bin.tar.gz
百度网盘:
apache-maven-3.2.1.zip
链接:http://pan.baidu.com/s/1jG9QhWa 密码:vmee

下载后解压,设置MAVEN_HOME和PATH变量。设置好后,可以使用mvn -version检查是否安装成功。
解压命令:
  1. tar -zvxf apache-maven-3.1.1-bin.tar.gz
复制代码


移至/usr/local下:
#mvapache-maven-3.1.1 /usr/local/maven
maven装在/usr/local目录下。
#vi /etc/profile
在最后一行加入:
export MAVEN_HOME=/usr/local/ maven
export PATH=$PATH:$MAVEN_HOME/bin
保存后退出,执行:
source /etc/profile
查看是否安装成功。
#mvn –version

2、安装autotool,CMake等依赖包

如果已经安装,可忽略相应的包。
sudo yum install autoconf automake libtool ant gcc gcc-c++  make cmake openssl-devel,ncurses-devel

若安装遇到问题,推荐另外一篇
从零教你在Linux环境下(ubuntu)如何编译hadoop2.4

3、安装protobuf2.5

下载地址http://protobuf.googlecode.com/files/protobuf-2.5.0.tar.gz
解压: tar jxvf protobuf-2.5.0.tar.gz
次执行:./configure,   make, makeinstall,这三个命令安装ProtoBuffer

使用protoc --version检查ProtoBuffer是否安装成功

如果出现:
protoc: error while loading sharedlibraries: libprotobuf.so.7: cannot open shared object file: No such file ordirectory错误

这是因为系统找不到lib库
编辑/etc/ld.so.conf 文件
#Vim /etc/ld.so.conf
修改如下: include /etc/ld.so.conf.d/*.conf /usr/local/lib
然后ldconfig
再次执行protoc –version
libprotoc 2.4.1
标明protobuf安装成功。

上面软件的安装,如果遇到问题,推荐查看另外一篇:从零教你在Linux环境下(ubuntu)如何编译hadoop2.4


4、先获取源码
先通过mvn获取源码
   cd hadoop-2.3.0-cdh5.0.1/src/hadoop-maven-plugins
    mvn install
    完成后,
    cd hadoop-2.3.0-cdh5.0.1/src
    mvn eclipse:eclipse –DskipTests
    获取源码过程中如果出现如下错误:
    Failed to execute goalorg.apache.maven.plugins:maven-antrun-plugin:1.6:run (make) on projecthadoop-common:
   解决方法如下:
   使用这个命令:mvn org.apache.maven.plugins:maven-eclipse-plugin:2.6:eclipse –DskipTests
   或者:通过yum安装 zlib1g-dev

  5、编译源码
然后开始编译源码:
在src 目录下执行
mvn clean install –DskipTests
或者
mvn package -Pdist,native -DskipTests -Dtar

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

由于maven国外服务器可能连不上,先给maven配置一下国内镜像,在maven目录下,conf/settings.xml,在<mirrors></mirros>里添加,原本的不要动

  1.   <mirror>  
  2.        <id>nexus-osc</id>  
  3.         <mirrorOf>*</mirrorOf>  
  4.     <name>Nexusosc</name>  
  5.     <url>http://maven.oschina.net/content/groups/public/</url>  
  6. </mirror>  
复制代码



同样,在<profiles></profiles>内新添加
  1. <profile>  
  2.         <id>jdk-1.7</id>  
  3.        <activation>  
  4.            <jdk>1.4</jdk>  
  5.          </activation>  
  6.         <repositories>  
  7.            <repository>  
  8.              <id>nexus</id>  
  9.              <name>local private nexus</name>  
  10.           <url>http://maven.oschina.net/content/groups/public/</url>  
  11.            <releases>  
  12.               <enabled>true</enabled>  
  13.            </releases>  
  14.             <snapshots>  
  15.              <enabled>false</enabled>  
  16.            </snapshots>  
  17.           </repository>  
  18.         </repositories>  
  19.        <pluginRepositories>  
  20.           <pluginRepository>  
  21.             <id>nexus</id>  
  22.            <name>local private nexus</name>  
  23.             <url>http://maven.oschina.net/content/groups/public/</url>  
  24.            <releases>  
  25.               <enabled>true</enabled>  
  26.             </releases>  
  27.            <snapshots>  
  28.               <enabled>false</enabled>  
  29.            </snapshots>  
  30.           </pluginRepository>  
  31.         </pluginRepositories>  
  32.       </profile>  
复制代码




编译过程会下载所需文件,并且持续很长时间。
编译成功后会生成一个tar包,如下图所示:

1.jpg




2.jpg


3.jpg


编译后的路径在
hadoop-2.3.0-cdh5.0.0/src/hadoop-dist/target
目录下。
内容如下:

4.jpg




进入编译后的hadoop-2.3.0-cdh5.0.0/bin目录。可以查看Hadoop版本
#./Hadoop version


5.jpg








加微信w3aboutyun,可拉入技术爱好者群

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条