如何编译Apache Hadoop2.6.0源代码
如何编译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 commandyum list | grep libXext
yum install libXext.i686 来安装。
试过之后,不行,朋友过来说了下是不是环境变量有问题
我检查了下jdk 是32位的。
之后安装了64的,等了1个小时,成功!!!
如何编译Apache Hadoop2.6.0源代码的更多相关文章
- 编译Apache Hadoop2.2.0源代码
Hadoop2的学习资料很少,只有官网的少数文档.如果想更深入的研究hadoop2,除了仅看官网的文档外,还要学习如何看源码,通过不断的调试跟踪源码,学习hadoop的运行机制. 1.安装CentOS ...
- 如何编译Apache Hadoop2.2.0源代码
转自(原文图片已丢失,本文修复图片,重新排版,并更正部分原文错误):http://www.superwu.cn/2013/12/26/913 欢迎和大家交流技术相关问题: 邮箱: jiangxinnj ...
- 【甘道夫】Win7x64环境下编译Apache Hadoop2.2.0的Eclipse小工具
目标: 编译Apache Hadoop2.2.0在win7x64环境下的Eclipse插件 环境: win7x64家庭普通版 eclipse-jee-kepler-SR1-win32-x86_64.z ...
- 在Eclipse上建立hadoop2.2.0/hadoop2.4.0源代码阅读环境
1.安装依赖的包: yum install gcc-c++ g++ autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev 2 ...
- CentOs64位编译安装hadoop-2.6.0
官方提供的hadoop-2.x版本貌似都是32位的,在64位机子下使用可能会报错,最好使用官方提供的源码进行本地编译,编译成适合本地硬件环境的64位软件包. Hadoop是使用Java语言开发的,但是 ...
- 在mac中导入hadoop2.6.0源代码至eclipse
一.环境准备 1.安装jdk.maven等 2.下载hadoop源代码,并解压 3.将tools.jar复制到Classes中,具体原因见http://wiki.apache.org/hadoop/H ...
- 在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 ...
- hadoop2.6.0汇总:新增功能最新编译 32位、64位安装、源码包、API下载及部署文档
相关内容: hadoop2.5.2汇总:新增功能最新编译 32位.64位安装.源码包.API.eclipse插件下载Hadoop2.5 Eclipse插件制作.连接集群视频.及hadoop-eclip ...
- 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 ...
随机推荐
- Unity赛车游戏之移动
这个赛车游戏真是让我费劲脑汁啊.尤其是写这种系统化的东西. 目前漂移还没找到更好的算法,不过基本的移动还是可以做到的. 别看就光是个移动,其实也是很费事的. Unity给了个对于赛车系统很好的碰撞组件 ...
- python实现自动输入命令回车操作
苦逼的在sf上等了一天(问题链接),都没人来解答,只好自己想办法,东平西凑还是勉强实现了,记录一下: 安装完python2.7后,在cmd命令行输入python回车,后出现python相关的提示信息, ...
- Beta版本冲刺第五天 12.11
一.站立式会议照片: 二.项目燃尽图: Android端 后台 三.项目进展: 成 员 昨天完成任务 今天完成任务 明天要做任务 问题困难 心得体会 胡泽善 管理员驳回招聘的理由的填写和查看 邮箱验证 ...
- 深度剖析Linux与Windows系统的区别,新手必读!
当我们每个人接触Linux之前,应该先接触的都是windows吧?但我们一般接触Linux后,习惯linux的管理和使用方法后,我们再回过头再来使用windows的时候,内心其实是拒绝的.我们会觉得图 ...
- BZOJ1031: [JSOI2007]字符加密Cipher
传送门 后缀数组模板题 //BZOJ 1031 //by Cydiater //2016.9.21 #include <iostream> #include <cstring> ...
- 如何写出优雅的css代码 ?
如何写出优雅的css代码 ? 对于同样的项目或者是一个网页,尽管最终每个前端开发工程师都可以实现相同的效果,但是他们所写的代码一定是不同的.有的优雅,看起来清晰易懂,代码具有可拓展性,这样的代码有利于 ...
- DNS介绍
DNS出现及演化 网络出现的早期 是使用IP地址通讯的,那时就几台主机通讯.但是随着接入网络主机的增多,这种数字标识的地址非常不便于记忆,UNIX上就出现了建立一个叫做hosts的文件(Linux和w ...
- 什么是linux的ftp
vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序.特点是小巧轻快,安全易用.并且是一个完全免费开放源码的ftp软件ftp的作用: FTP(File Transfer Protocol, ...
- elasticsearch api
count curl -XGET http://21.3.5.121:9200/ipv4geo/service/_count -d '{"query":{"match&q ...
- Linux开放1521端口允许网络连接Oracle Listene
症状:1. TCP/IP连接是通的.可以用ping 命令测试. 2. 服务器上Oracle Listener已经启动. lsnrctl status 查看listener状态 lsnrctl s ...