设为首页 收藏本站
查看: 1182|回复: 0

[经验分享] 使用maven在linux上对hadoop 2.2进行编译

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-9-25 12:49:23 | 显示全部楼层 |阅读模式
使用maven在linux上对hadoop 2.2进行编译
0、环境介绍:
Hadoop信息:
Version: 2.2
下载地址:
源码包:hadoop-2.2.0-src.tar.gz
软件包:hadoop-2.2.0.tar.gz
Os环境:
[iyunv@carefree ~]#  lsb_release -a
LSB Version::base-4.0-amd64:base-4.0-noarch:core-4.0
Distributor ID:CentOS
Description:CentOS release 6.4 (Final)
Release:6.4
Codename:Final
解压源码包:
1
tar -zxvf hadoop-2.2.0-src.tar.gz




其中BUILDING.txt文件对于编译做了一个说明,现在就开始着手准备编译工作。
1、前提条件
* Unix System
* JDK 1.6+
* Maven 3.0 or later
* Findbugs 1.3.9 (if running findbugs)
* ProtocolBuffer 2.5.0
* CMake 2.6 or newer (if compiling native code)
* Internet connection for first build (to fetch all Maven and Hadoop dependencies) (ps:需要有网络连接)

2、配置需要的软件环境
前置条件中提到的os要求我们已经满足,需要连接网络添加好即可。
其他的软件包如下:
1
2
3
4
5
6
    apache-maven-3.0.5-bin.tar.gz            
    cmake-3.0.2.tar.gz
    findbugs-2.0.3.tar.gz
    hadoop-2.2.0-src.tar.gz
    jdk-7u51-linux-x64.tar.gz
    protobuf-2.5.0.tar.gz




使用tar -zxvf packageName 解压上面的软件包。
  
对于maven、jdk、findbugs只需要在环境变量中配置好对应的目录即可。
1
2
3
4
5
     vim /etc/profile   
    export MAVEN_HOME=/u01/app/apache-maven-3.0.5
    export JAVA_HOME=/u01/app/jdk1.7.0_51
    export FINDBUGS_HOME1=/u01/app/findbugs-2.0.3
    export PATH=${FINDBUGS_HOME1}/bin:${JAVA_HOME}/bin:${MAVEN_HOME}/bin:$PATH



Cmake的安装可以参考其中的README.txt文件,使用以下命令即可完成安装:./bootstrap && make && make install
protobuf的安装参考包中的README.txt文件,使用以下命令即可完成安装:
         
1
2
3
4
        $ ./configure   
      $ make
      $ make check
      $ make install





通过以上的步骤我们即可完成前置条件的配置工作。
3、2.2的bug
Hadoop 2.2有一个bug会影响编译,我们这里提前做一个处理,处理方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
在hadoop-common-project/hadoop-auth/pom.xml文件中
    <dependency>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>jetty</artifactId>
      <scope>test</scope>
    </dependency>
后边添加
    <dependency>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>jetty-util</artifactId>
      <scope>test</scope>
    </dependency>
   
在hadoop-hdfs-project/hadoop-hdfs/pom.xml文件中
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-javadoc-plugin</artifactId>
   <configuration>
      <excludePackageNames>org.apache.hadoop.hdfs.protocol.proto</excludePackageNames>
   </configuration>   
后边加上
   <executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
   </executions>




4、编译
Maven的具体编译命令我们在BUILDING.txt中可以找到,如下:
Building distributions:
Create binary distribution without native code and without documentation:
  $ mvn package -Pdist -DskipTests -Dtar
Create binary distribution with native code and with documentation:
  $ mvn package -Pdist,native,docs -DskipTests -Dtar
Create source distribution:
  $ mvn package -Psrc -DskipTests
Create source and binary distributions with native code and documentation:
  $ mvn package -Pdist,native,docs,src -DskipTests -Dtar
Create a local staging version of the website (in /tmp/hadoop-site)
  $mvn clean site;
   mvn site:stage -DstagingDirectory=/tmp/hadoop-site
这里我们使用mvn package -Pdist,native,docs,src -DskipTests -Dtar进行编译,在编译的过程中可能由于网络中断,需要重复运行该命令,在这里我们可以进入子包来进行部门编译(相当于分别下载依赖的包),最后再hadoop-2.2.0-src目录下运行该命令。
5、编译完成
编译完成之后,我们进入hadoop-2.2.0-src/hadoop-dist目录下,可以发现一个target目录,在里面我们即可找到编译好的压缩包。
hadoop-2.2.0.tar.gz


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-25374-1-1.html 上篇帖子: Hadoop-2.5.1 编译安装步骤 下篇帖子: Hadoop 2.2在linux上伪分布安装 linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表