如何编译Apache Hadoop2.6.0源代码

1.安装CentOS

我使用的是CentOS6.5,下载地址是http://mirror.neu.edu.cn/centos/6.5/isos/x86_64/,选择CentOS-6.5-x86_64-bin-DVD1.iso 下载,注意是64位的,大小是4GB,需要下载一段时间的。其实6.x的版本都可以,不一定是6.5。

我使用的是VMWare虚拟机,分配了2GB内存,20GB磁盘空间。内存太小,会比较慢;磁盘太小,编译时可能会出现空间不足的情况。上述不是最低配置,根据自己的机器配置修改吧。还有,一定要保持linux联网状态。

以下是按照各种软件,我把软件下载后全部复制到/usr/local目录下,以下命令执行的路径是在/usr/local目录下。请读者在阅读时,一定要注意路径。

2.安装JDK

hadoop是java写的,编译hadoop必须安装jdk。

从oracle官网下载jdk,下载地址是http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html,选择 jdk-7u45-linux-x64.tar.gz下载。

执行以下命令解压缩jdk

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

会生成一个文件夹jdk1.7.0_45,然后设置环境变量中。

执行命令 vi /etc/profile,增加以下内容到配置文件中,结果显示如下

3.安装maven

hadoop源码是使用maven组织管理的,必须下载maven。从maven官网下载,下载地址是http://maven.apache.org/download.cgi,选择 apache-maven-3.3.3-bin.tar.gz 下载。

执行以下命令解压缩jdk

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

会生成一个文件夹apache-maven-3.3.3,然后设置环境变量中。

执行命令vi  /etc/profile,编辑结果如下图所示

4.安装protoc

hadoop使用protocol buffer通信,从protoc官网下载protoc,下载地址是https://code.google.com/p/protobuf/downloads/list,选择protobuf-2.5.0.tar.gz 下载。

为了编译安装protoc,需要下载几个工具,顺序执行以下命令

    yum -y install gcc  
    yum -y intall gcc-c++  
    yum -y install make

如果操作系统是CentOS6.5那么gcc和make已经安装了。其他版本不一定。

然后执行以下命令解压缩protobuf

    tar -zxvf  protobuf-2.5.0.tar.gz

会生成一个文件夹protobuf-2.5.0,执行以下命令编译protobuf。

    cd protobuf-2.5.0  
    ./configure --prefix=/usr/local/protoc/  
    make && make install

只要不出错就可以了。

执行完毕后,编译后的文件位于/usr/local/protoc/目录下,我们设置一下环境变量

执行命令vi  /etc/profile,编辑结果如下图所示

5.安装其他依赖

顺序执行以下命令

    yum -y install cmake  
    yum -y install openssl-devel  
    yum -y install ncurses-devel

安装完毕即可。

6.编译hadoop2.6源码

从hadoop官网下载2.6稳定版,下载地址是http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.6.0/hadoop-2.6.0-src.tar.gz。

执行以下命令解压缩jdk

    tar -zxvf hadoop-2.6.0-src.tar.gz

会生成一个文件夹 hadoop-2.6.0-src。

好了,现在进入到目录/usr/local/hadoop-2.6.0-src中,执行命令

cd /usr/local/hadoop-2.6.0-src

mvn package -DskipTests -Pdist,native

该命令会从外网下载依赖的jar,编译hadoop源码,需要花费很长时间,你可以吃饭了。

在等待N久之后,可以看到如下的结果:

[INFO] ------------------------------------------------------------------------

[INFO] Reactor Summary:

[INFO]

[INFO] Apache Hadoop Main ................................. SUCCESS [ 4.414 s]

[INFO] Apache Hadoop Project POM .......................... SUCCESS [ 3.132 s]

[INFO] Apache Hadoop Annotations .......................... SUCCESS [ 5.377 s]

[INFO] Apache Hadoop Assemblies ........................... SUCCESS [ 0.623 s]

[INFO] Apache Hadoop Project Dist POM ..................... SUCCESS [ 3.624 s]

[INFO] Apache Hadoop Maven Plugins ........................ SUCCESS [ 7.253 s]

[INFO] Apache Hadoop MiniKDC .............................. SUCCESS [ 5.040 s]

[INFO] Apache Hadoop Auth ................................. SUCCESS [ 9.449 s]

[INFO] Apache Hadoop Auth Examples ........................ SUCCESS [ 5.894 s]

[INFO] Apache Hadoop Common ............................... SUCCESS [02:35 min]

[INFO] Apache Hadoop NFS .................................. SUCCESS [ 9.395 s]

[INFO] Apache Hadoop KMS .................................. SUCCESS [ 12.661 s]

[INFO] Apache Hadoop Common Project ....................... SUCCESS [ 0.064 s]

[INFO] Apache Hadoop HDFS ................................. SUCCESS [02:58 min]

[INFO] Apache Hadoop HttpFS ............................... SUCCESS [ 20.099 s]

[INFO] Apache Hadoop HDFS BookKeeper Journal .............. SUCCESS [ 8.216 s]

[INFO] Apache Hadoop HDFS-NFS ............................. SUCCESS [ 5.086 s]

[INFO] Apache Hadoop HDFS Project ......................... SUCCESS [ 0.061 s]

[INFO] hadoop-yarn ........................................ SUCCESS [ 0.091 s]

[INFO] hadoop-yarn-api .................................... SUCCESS [01:45 min]

[INFO] hadoop-yarn-common ................................. SUCCESS [ 38.766 s]

[INFO] hadoop-yarn-server ................................. SUCCESS [ 0.131 s]

[INFO] hadoop-yarn-server-common .......................... SUCCESS [ 14.831 s]

[INFO] hadoop-yarn-server-nodemanager ..................... SUCCESS [ 25.612 s]

[INFO] hadoop-yarn-server-web-proxy ....................... SUCCESS [ 6.043 s]

[INFO] hadoop-yarn-server-applicationhistoryservice ....... SUCCESS [ 8.443 s]

[INFO] hadoop-yarn-server-resourcemanager ................. SUCCESS [ 29.911 s]

[INFO] hadoop-yarn-server-tests ........................... SUCCESS [ 8.606 s]

[INFO] hadoop-yarn-client ................................. SUCCESS [ 10.038 s]

[INFO] hadoop-yarn-applications ........................... SUCCESS [ 0.118 s]

[INFO] hadoop-yarn-applications-distributedshell .......... SUCCESS [ 3.389 s]

[INFO] hadoop-yarn-applications-unmanaged-am-launcher ..... SUCCESS [ 2.003 s]

[INFO] hadoop-yarn-site ................................... SUCCESS [ 0.056 s]

[INFO] hadoop-yarn-registry ............................... SUCCESS [ 6.715 s]

[INFO] hadoop-yarn-project ................................ SUCCESS [ 3.798 s]

[INFO] hadoop-mapreduce-client ............................ SUCCESS [ 0.218 s]

[INFO] hadoop-mapreduce-client-core ....................... SUCCESS [ 40.412 s]

[INFO] hadoop-mapreduce-client-common ..................... SUCCESS [ 24.370 s]

[INFO] hadoop-mapreduce-client-shuffle .................... SUCCESS [ 10.642 s]

[INFO] hadoop-mapreduce-client-app ........................ SUCCESS [ 12.325 s]

[INFO] hadoop-mapreduce-client-hs ......................... SUCCESS [ 13.119 s]

[INFO] hadoop-mapreduce-client-jobclient .................. SUCCESS [ 6.762 s]

[INFO] hadoop-mapreduce-client-hs-plugins ................. SUCCESS [ 1.958 s]

[INFO] Apache Hadoop MapReduce Examples ................... SUCCESS [ 8.129 s]

[INFO] hadoop-mapreduce ................................... SUCCESS [ 3.937 s]

[INFO] Apache Hadoop MapReduce Streaming .................. SUCCESS [ 5.881 s]

[INFO] Apache Hadoop Distributed Copy ..................... SUCCESS [ 10.755 s]

[INFO] Apache Hadoop Archives ............................. SUCCESS [ 2.511 s]

[INFO] Apache Hadoop Rumen ................................ SUCCESS [ 8.135 s]

[INFO] Apache Hadoop Gridmix .............................. SUCCESS [ 5.524 s]

[INFO] Apache Hadoop Data Join ............................ SUCCESS [ 3.702 s]

[INFO] Apache Hadoop Ant Tasks ............................ SUCCESS [ 2.582 s]

[INFO] Apache Hadoop Extras ............................... SUCCESS [ 3.400 s]

[INFO] Apache Hadoop Pipes ................................ SUCCESS [ 7.537 s]

[INFO] Apache Hadoop OpenStack support .................... SUCCESS [ 7.347 s]

[INFO] Apache Hadoop Amazon Web Services support .......... SUCCESS [ 8.864 s]

[INFO] Apache Hadoop Client ............................... SUCCESS [ 5.480 s]

[INFO] Apache Hadoop Mini-Cluster ......................... SUCCESS [ 0.084 s]

[INFO] Apache Hadoop Scheduler Load Simulator ............. SUCCESS [ 5.272 s]

[INFO] Apache Hadoop Tools Dist ........................... SUCCESS [ 6.860 s]

[INFO] Apache Hadoop Tools ................................ SUCCESS [ 0.026 s]

[INFO] Apache Hadoop Distribution ......................... SUCCESS [ 31.834 s]

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 15:44 min

[INFO] Finished at: 2015-07-13T00:23:42-07:00

[INFO] Final Memory: 101M/326M

[INFO] ------------------------------------------------------------------------

[root@crxy96 hadoop-2.6.0-src]#

好了,编译完成了。

编译后的代码在/usr/local/hadoop-2.6.0-src/hadoop-dist/target下面,如下图。

生产source .jar

  mvn source:jar  在 /hadoop-dist/target/hadoop-2.6.0/share/hadoop/hdfs/sources  目录下

7.动手时的注意事项

这是我整理好的所有资料,在编译过程中用到的各个包,这里都有。结构如下

如果对linux不熟悉,一定使用我们推荐的centos6.5 64位操作系统。因为本文介绍的各种操作都是针对该版本的操作系统。

编译过程中需要的jar依赖,我已经全部下载了,并且打包,大家可以使用我的把内容替换。Maven仓库的默认位置在~/.m2/repository中,大家解压我的repository替换自己的就行。

重要提示:一定要保证虚拟机的网络畅通

a) 伪分布配置

1.把从文件夹“编译成功的hadoop2.6.0的64位版本”中解压hadoop-dist-2.6.0-binary-64.tar.gz 得到的hadoop-2.6.0放到/usr/local目录下。放好后,完整的目录结构是/usr/local/hadoop-2.6.0

如果是源代码编译的话,这里的路径指的是

2.文件夹“hadoop2.6.0伪分布配置文件”中的配置内容是伪分布设置。把这个目录中的所有内容复制到/usr/local/hadoop-2.6.0/etc/hadoop目录下,覆盖原有文件。

3.修改core-site.xml中的hdfs://crxy213.crxy:9000的值,改成自己的ip或者主机名

4.格式化,执行命令/usr/local/hadoop-2.6.0/sbin/hdfs namenode -format

5.启动,执行脚本/usr/local/hadoop-2.6.0/sbin/start-hadoop.sh

----------------------------bug

ERROR] Failed to execute goal org.apache.maven.plugins:maven-plugin-plugin:3.0:descriptor (default-descriptor) on project hadoop-maven-plugins: The API of the mojo scanner is not compatible with this plugin version. Please check the plugin dependencies configured in the POM and ensure the versions match. /usr/java/jdk1.7.0_79/jre/lib/i386/xawt/libmawt.so: libXext.so.6: cannot open shared object file: No such file or directory -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command

yum list | grep libXext
yum  install   libXext.i686  来安装。
试过之后,不行,朋友过来说了下是不是环境变量有问题
我检查了下jdk 是32位的。
之后安装了64的,等了1个小时,成功!!!

如何编译Apache Hadoop2.6.0源代码的更多相关文章

  1. 编译Apache Hadoop2.2.0源代码

    Hadoop2的学习资料很少,只有官网的少数文档.如果想更深入的研究hadoop2,除了仅看官网的文档外,还要学习如何看源码,通过不断的调试跟踪源码,学习hadoop的运行机制. 1.安装CentOS ...

  2. 如何编译Apache Hadoop2.2.0源代码

    转自(原文图片已丢失,本文修复图片,重新排版,并更正部分原文错误):http://www.superwu.cn/2013/12/26/913 欢迎和大家交流技术相关问题: 邮箱: jiangxinnj ...

  3. 【甘道夫】Win7x64环境下编译Apache Hadoop2.2.0的Eclipse小工具

    目标: 编译Apache Hadoop2.2.0在win7x64环境下的Eclipse插件 环境: win7x64家庭普通版 eclipse-jee-kepler-SR1-win32-x86_64.z ...

  4. 在Eclipse上建立hadoop2.2.0/hadoop2.4.0源代码阅读环境

    1.安装依赖的包: yum install gcc-c++ g++ autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev 2 ...

  5. CentOs64位编译安装hadoop-2.6.0

    官方提供的hadoop-2.x版本貌似都是32位的,在64位机子下使用可能会报错,最好使用官方提供的源码进行本地编译,编译成适合本地硬件环境的64位软件包. Hadoop是使用Java语言开发的,但是 ...

  6. 在mac中导入hadoop2.6.0源代码至eclipse

    一.环境准备 1.安装jdk.maven等 2.下载hadoop源代码,并解压 3.将tools.jar复制到Classes中,具体原因见http://wiki.apache.org/hadoop/H ...

  7. 在mac中导入hadoop2.6.0源代码至eclipse 分类: A1_HADOOP 2015-04-12 09:27 342人阅读 评论(0) 收藏

    一.环境准备 1.安装jdk.maven等 2.下载hadoop源代码,并解压 3.将tools.jar复制到Classes中,具体原因见http://wiki.apache.org/hadoop/H ...

  8. hadoop2.6.0汇总:新增功能最新编译 32位、64位安装、源码包、API下载及部署文档

    相关内容: hadoop2.5.2汇总:新增功能最新编译 32位.64位安装.源码包.API.eclipse插件下载Hadoop2.5 Eclipse插件制作.连接集群视频.及hadoop-eclip ...

  9. ubuntu12.04+hadoop2.2.0+zookeeper3.4.5+hbase0.96.2+hive0.13.1伪分布式环境部署

    目录: 一.hadoop2.2.0.zookeeper3.4.5.hbase0.96.2.hive0.13.1都是什么? 二.这些软件在哪里下载? 三.如何安装 1.安装JDK 2.用parallel ...

随机推荐

  1. Cookie对象

    Cookie对象用于保存客户端浏览器请求的服务器页面,也可用于存放非敏感性的用户信息,信息保存的时间可以根据用户的需要进行设置.并非所有的浏览器都支持Cookie,并且数据信息是以文本的形式保存在客户 ...

  2. [Android]关于Activity的InstanceState

    Activity有两个方法onSaveInstanceState() 和 onRestoreInstanceState(). onSaveInstanceState()方法只适合用于保存一些临时性的状 ...

  3. 屠蛟之路_蛟灵岛战役(上)_SixthDay

    乘风破浪,屠蛟少年们终于到达beta怪蛟大boss的老巢--蛟灵岛. 这是一座孤立在东海深处的荒岛,岛上黑烟缭绕.瘴气重重,屠蛟少年们一登岛,就感受到浓浓的腥味和妖气. 果然,再小心翼翼,走两步居然陷 ...

  4. windows系统下安装MySQL

    可以运行在本地windows版本的MySQL数据库程 序自从3.21版以后已经可以从MySQL AB公司获得,而且 MYSQL每日的下载百分比非常大.这部分描述在windows上安装MySQL的过程. ...

  5. 运算符++,--的使用及 while循环测试的用处

    前++与后++的区别: b=3+(++a);//a=a+1;b=3+a; b=3+(a++);//b=3+a;a=a+1; while (true)( 循环语句,可以实现程序的多次测试) { Cons ...

  6. JavaScript学习笔记——对象基础

    javascript对象基础 一.名词解释: 1.基于对象 一切皆对象,以对象的概念来编程. 2.面向对象编程(oop Object oriented programming) A.对象 就是人们要研 ...

  7. 第六章 jQuery和ajax应用

    ajax是异步JavaScript和xml的简称. 一. ajax补白 优势 不足(不一定是不足) 不需要任何插件(但需要浏览器支持js) XMLHttpRequest对象在不同浏览器下有差异 优秀的 ...

  8. Podfile升级后的影响

    之前项目里用的Podfile都是版本 0.39 后面有一天电脑格盘重装以后cocoapods装的版本是 1.0.0.beta.6 那么问题来了,在下载或者clone一下项目后,经常是需要自己安装第三方 ...

  9. 简单CSS布局留用

    1.导航栏固定显示代码,文字居中,z-index header{ position: fixed; top: 0px; left: 10%; width: 80%; height: 80px; bor ...

  10. GPRS/3G

    像GPRS/3G模块之类的应用,需要连接,登陆,初始化等步骤完成后才能传输数据,而这些步骤又比较耗时. 所以用 状态机 + 超时 的机制来实现比较合理. 如下代码片段来描述数据透传 : 状态机 + 超 ...