分享

不同Linux(Centos,RedHat ,SUSE )操作系统下Hadoop2.2.0 64位源码编译

本帖最后由 sstutu 于 2014-1-22 01:00 编辑

Hadoop2.2.0只有32位,64位只有手工编译。这里给大家提供一些思路和帮助。

一、Centos操作系统下Hadoop2.2.0 64位源码编译

1、依赖环境准备:


这部分看起来容易,但是收集这些依赖才是真正让人崩溃事。

下面的服务器环境都基于Centos的,其它发行版Linux可能会有不同。
1.GCC、CMake、openssl、JDK,
2.hadoop-2.2.0-src.tar.gz(http://hadoop.apache.org/releases.html#Download
3.apache-ant-1.9.2-bin.tar.gz(http://ant.apache.org/bindownload.cgi
4.apache-maven-3.0.5-bin.tar.gz(http://maven.apache.org/download.cgi
注意:此处最新的3.1.1版有Bug,缺少依赖包。详细说明如下所示:
https://cwiki.apache.org/conflue ... AetherClassNotFound
5.findbugs-2.0.2.tar.gz(http://sourceforge.jp/projects/sfnet_findbugs/releases/
注意:sourceforge.com被墙,只能进sourceforge.jp,这TMD什么世道?
6.protobuf-2.5.0.tar.gz(https://code.google.com/p/protobuf/downloads/list
7.zlib-devel-1.2.3-3.x86_64.rpm
http://rpm.pbone.net/index.php3/ ... 3-3.x86_64.rpm.html
2、依赖环境配置
安装没啥好说的了,大部分都是tar包,解开就能用。只有protobuf需要make一下。
配置好环境后不要忘了source /etc/profile一下,否则不会生效。
下面的图是环境变量配置明细:


config.png



3、·编译
安装好了上面的依赖后就可以编译了。
  1. mvn package -Pdist,native,docs -DskipTests -Dtar
复制代码
时间比较长(用小时来做单位的)。当你看到一串SUCCESS的时候,那么恭喜你成功了。



compile.png


4、生成打包文件
到这一步就简单了,在/data/java/tools/hadoop-2.2.0-src/hadoop-dist/target/目录下,可以看到编译好的hadoop-2.2.0.tar.gz包静静的趴在那里,现在你可以进行安装了。。


二、RedHat el5操作系统下Hadoop2.2.0 64位源码编译





Hadoop官网提供的编译版本是32位系统下的,但大多数服务器都是64位的操作系统版本,所以需要重新编译。



1、准备工作:


JDK环境


protobuf-2.5.0.tar


apache-maven-3.1.1-bin.tar


cmake(通过yum安装)



2、下载Hadoop源码


http://mirror.esocc.com/apache/hadoop/common/stable/


下载hadoop-2.2.0-src.tar.gz


解压到任意目录



3、进入目录中,修改pom.xml文件中的plugin版本,否则会提示AetherClassNotFound错误


找到maven-site-plugin,将版本号从3.0改为3.3,一共有两处!



4、运行mvn package –Pdist,native –DskipTests –Dtar


然后就是漫长的等待



5、等待编译完成后,在hadoop-dist中的target文件夹中就可以看到编译好的hadoop-2.2.0.tar.gz文件了




                                                        三、SUSE Linux操作系统下Hadoop2.2.0 64位源码编译



OS环境:SUSE Linux Enterpriser Server 11 SP2  (64位)

Mission:由于apache官网所提供的编译好的Hadoop-2.2.0-tar.gz 只兼容32位系统,安装在64位系统下会出现各种兼容性错误。故,需要在64位系统下,对hadoop-2.2.0源码进行重新编译。

START:

准备工作:

步骤 :

1、安装JDK

     在oracle官网下载 最新的jdk包,eg:jdk-7u45-linux-x64.tar.gz

     解压,安装,添加环境变量。

测试:java -version

2、安装maven

     在apache官网上下载最新maven包,eg:apache-maven-3.1.1-bin.tar.gz

      解压,安装,添加环境变量。

     测试:mvn -version

3、为suse 添加软件源(方便用zypper命令安装各种包)

      打开:yast  -> Software Repositories ->Add->next->填写“源“的URL,以及给Repository命名-〉next

     具体参照网页:

4、安装protobuf

     首先用zypper命令安装protobuf所需要的依赖包:gcc*

     sudo zypper install gcc*

    然后下载最新的 protobuf包,解压,安装,设置环境变量

    测试:protoc --version

5、检查与安装必要的依赖包(hadoop编译需要)

     cmake,openssl-devel,ncurses-devel、autoconf、automake、libtool

6、下载hadoop-2.2.0源码:hadoop-2.2.0-src.tar.gz

      解压

      由于hadoop-2.2.0源码包解压出来的code有个bug 需要patch后才能编译:


       按照上述官方patch,修改文件:hadoop-2.2.0-src/hadoop-common-project/hadoop-auth/pom.xml

7、在开始编译hadoop-2.2.0源码之前,建议先测试以上各种包是否安装成功

      如果之前修改过/etc/profile ,最好在编译hadoop的终端上 source /etc/profile

      然后cd进入hadoop-2.2.0源码解压目录中,开始编译(建议换到root权限下编译)

       mvn package -Pdist,native -DskipTests -Dtar

       等待大约30分钟,编译成功。

       编译后的包在:hadoop-2.2.0-src/hadoop-dist/target/hadoop-2.2.0.tar.gz






欢迎加入about云群425860289432264021 ,云计算爱好者群,关注about云腾讯认证空间

已有(2)人评论

跳转到指定楼层
mavs41 发表于 2014-2-14 22:57:46
果断顶起啊!
回复

使用道具 举报

℡.小天 发表于 2015-1-6 09:52:29
楼主这用的是什么工具啊
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条