如何编译Apache Hadoop2.6.0源代码html
我使用的是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。java
我使用的是VMWare虚拟机,分配了2GB内存,20GB磁盘空间。内存过小,会比较慢;磁盘过小,编译时可能会出现空间不足的状况。上述不是最低配置,根据本身的机器配置修改吧。还有,必定要保持linux联网状态。node
如下是按照各类软件,我把软件下载后所有复制到/usr/local目录下,如下命令执行的路径是在/usr/local目录下。请读者在阅读时,必定要注意路径。linux
hadoop是java写的,编译hadoop必须安装jdk。c++
从oracle官网下载jdk,下载地址是http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html,选择 jdk-7u45-linux-x64.tar.gz下载。web
执行如下命令解压缩jdkshell
tar -zxvf jdk-7u45-linux-x64.tar.gzapache
会生成一个文件夹jdk1.7.0_45,而后设置环境变量中。centos
执行命令 vi /etc/profile,增长如下内容到配置文件中,结果显示以下api
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,编辑结果以下图所示
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 install 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,编辑结果以下图所示
顺序执行如下命令
yum -y install cmake yum -y install openssl-devel yum -y install ncurses-devel
安装完毕便可。
从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下面。
这是我整理好的全部资料,在编译过程当中用到的各个包,这里都有。结构以下
若是对linux不熟悉,必定使用咱们推荐的centos6.5 64位操做系统。由于本文介绍的各类操做都是针对该版本的操做系统。
编译过程当中须要的jar依赖,我已经所有下载了,而且打包,你们可使用个人把内容替换。Maven仓库的默认位置在~/.m2/repository中,你们解压个人repository替换本身的就行。
重要提示:必定要保证虚拟机的网络畅通。
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