原文:http://www.cnblogs.com/qigang/p/4194728.html

一、准备的资料

  • 64位linux系统。我使用的是 CentOS
  • JDK 1.7+。注:使用1.7即可,如果是1.8则会编译失败,1.6没有试过,看网上大牛的帖子说也能过
  • maven-3.2.5。 这是apache的一个产品,hadoop的编译要就是3.0以上
  • protobuf 注:谷歌的产品,最好是提前百度准备一下这个文件
  • hadoop-2.5.2-src 这个可以到Apache的官网上去下载
  • ant-1.9.4 这个也是Apache的,在文章最后附的参考链接中有关于下载的百度网盘地址

这些文件,需要上传到linux系统中,我使用的是SSH来进行上传的,直接上传到了 /root 目录下。同时由于安装过程中需要在线下载东西,古需要保持linux系统的网络畅通。

二、安装JDK

JDK的安装百度一下有很多文章,我使用的是 jdk-7u71-linux-x64.tar.gz。在oracle的官网上也能够下载。jdk的安装在linux下就是一个加压缩的过程。

 1      cd  /root
2 tar -zxvf jdk-7u71-linux-x64.tar.gz
3 配置环境变量:vim /etc/profile
4 输入命令进入编辑模式:i
5 在文件最后添加:export JAVA_HOME=/root/jdk1.7.0_71
6 export PATH=.:$PATH:$JAVA_HOME/bin
7 保存退出(按下Esc,输入冒号,输入wq回车)
8 使环境变量生效:source /etc/profile
9 检测安装是否成功:
10 java -version
11 javac -version

三、安装maven

这个和安装jdk是一样的,安装成后同样需要配置环境变量

export MAVEN_HOME=/usr/mvn/apache-maven-3.2.5
export PATH=.:$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin

同样,输入命令使配置文件生效

source /etc/profile

检测是否安装成功:

mvn  -version

能够看到关于maven的一些信息,包括所使用的jdk

四、安装protobuf

这一步比较关键,protobuf最好是提前下载然后上传上去。安装protobuf前,需要安装一些其他的东西

  yum  install  gcc    安装c++
yum install gcc-c++ 然后会两次提示输入 y(yes/no)
yum install make 可能会提示因为make已经是最新版本,而不会安装,这个无所谓,反正是最新版本,就不安装了

接下来便是安装protobuf,同样是一个解压缩的过程

cd  /root
tar -zxvf protobuf-2.5.0.tar.gz

然后进入到安装目录中,以此输入一下命令:

1  cd  /protobuf-2.5.0
2 ./configrue
3 make
4 make install

我在进行上面第二个命令,对configure进行预编译时报错,查看异常后,是c++没有安装成功,便再一次执行了:yum install  gcc-c++ 命令,OK

make  命令执行的时间比较长,最后一个命令的执行安装,如果出现错误,重新来过即可

测试

 protoc  --version

五、安装CMake

CMake 需要2.6以上的版本,在安装的时候会提示输入 y/N,同时由于安装这个组件是需要联网的,故根据网速不同,安装的进度也不一样

1     yum  install  cmake
2 yum install openssl-devel
3 yum install ncurses-devel

六、ant 安装

  tar zxvf  apache-ant-1.9.4-bin.tar.gz

配置环境变量

 export ANT_HOME=/root/apache-ant-1.9.4
export PATH=.:$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:$ANT_HOME/bin

生效以及测试

1  source /etc/profile
2 ant -version

七、编译hadoop

1、解压hadoop源码包

 tar -zxvf hadoop-2.5.2-src.tar.gz

进入文件夹里面,里面有一个文件BUILDINT.txt,打开即可看见里面关于编译hadoop的一些环境要求

1   cd /root/hadoop-2.5.2-src/
2 cd hadoop-2.5.2-src
3
4 vim BUILDINT.txt
5

2、编译hadoop

进入解压后的原文件中,即上面查看BUILDING.txt文件目录,然后输入一下命令即可

mvn package -Pdist,native -DskipTests -Dtar

或者是下面的命令

mvn  package -DeskipTests -Pdist,native

3、等带编译结果

编译完成后会有提示,SUCCESS / FAILURE。如下

如果编译失败,向上滚动,变能够查看什么地方出错了。

4、查看编译结果

同样在刚刚进行编译的那个目录下,有一个 hadoop-dist文件夹,进入里面的target文件夹,然后就可以看到编译成功64位的hadoop文件,解压后的在 hadoop-2.5.2 这个文件夹中,同时还生成了一个压缩包:hadoop-2.5.2-tar.gz 这个压缩包可以拷贝到别的机器上进行安装

八、问题

1、jdk 不能够用1.8的,在编译的第二个步骤中就失败,查看原因是: 意外的字符 </ul>  这个在百度上查看了很多人都遇到,都说是因为1.8和hadoop的兼容性不好,反正最后换成1.7的就安装成功了

2、换了 jdk 后,在编译过程中,还是出现很多问题,mdkir plug(名字记不清了)。这个文件安装失败时,也没有管他,再一次执行了最后的安装命令,这一次通过了

3、什么插件什么没有安装成功,也没有管,再一次执行安装,也过了

4、common 文件安装失败,这一次就没有那么好的运气了,无论怎么重新执行,都没有安装成功,运行时没有安装 ant ,然后把后上面第六步中的 ant 安装后,就成功编译通过了,费时比较长

5、安装过程中,网络一定要非常畅通,如果网速不好,同样可能会安装失败,同时也会影响安装速度。由于我电脑性能不好,安装的时候也不敢做其他的事情,就等着

上面基本上是在编译 hadoop 中的步奏和问题。

参考文章: http://www.aboutyun.com/thread-8130-1-1.html

编译hadoop-2.5.2总结的更多相关文章

  1. 在Ubuntu X64上编译Hadoop

    在之前的文章中介绍了如何直接在Ubuntu中安装Hadoop.但是对于64位的Ubuntu来说,官方给出的Hadoop包是32位的,运行时会得到警告: WARN util.NativeCodeLoad ...

  2. 编译Hadoop

    Apache Hadoop 生态圈软件下载地址:http://archive.apache.org/dist/hadoop/hadoop下载地址 http://archive.apache.org/d ...

  3. mac OS X Yosemite 上编译hadoop 2.6.0/2.7.0及TEZ 0.5.2/0.7.0 注意事项

    1.jdk 1.7问题 hadoop 2.7.0必须要求jdk 1.7.0,而oracle官网已经声明,jdk 1.7 以后不准备再提供更新了,所以趁现在还能下载,赶紧去down一个mac版吧 htt ...

  4. 64位centos 下编译 hadoop 2.6.0 源码

    64位os下为啥要编译hadoop就不解释了,百度一下就能知道原因,下面是步骤: 前提:编译源码所在的机器,必须能上网,否则建议不要尝试了 一. 下载必要的组件 a) 下载hadoop源码 (当前最新 ...

  5. 编译hadoop遇到maven timeout

      在编译hadoop的过程中,使用ant jar进行编译时,提示maven版本库连接超时的问题,通过搜索发现,在如下文件的位置中有repo2的版本库地址,这个地址在国内,目前不能正常的访问:   将 ...

  6. 在Ubuntu 64位OS上运行hadoop2.2.0[重新编译hadoop]

    最近在学习搭建Hadoop, 我们从Apache官方网站直接下载最新版本Hadoop2.2.官方目前是提供了linux32位系统可执行文件,结果运行时发现提示 “libhadoop.so.1.0.0 ...

  7. 编译Hadoop源码

    背景: 在阅读hadoop源代码过程中会发现部分类或者函数无法找到,这是由于Hadoop2.0使用了Protocol Buffers定义了RPC协议, 而这些Protocol Buffers文件在Ma ...

  8. CentOS 6.4 编译 Hadoop 2.5.1

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/4058956.html ...

  9. CentOS 6.4 64位 源码编译hadoop 2.2.0

    搭建环境:Centos 6.4 64bit 1.安装JDK 参考这里2.安装mavenmaven官方下载地址,可以选择源码编码安装,这里就直接下载编译好的wget http://mirror.bit. ...

  10. 64位CentOS上编译 Hadoop 2.2.0

    下载了Hadoop预编译好的二进制包,hadoop-2.2.0.tar.gz,启动起来后.总是出现这样的警告: WARN util.NativeCodeLoader: Unable to load n ...

随机推荐

  1. 学习CSS的瓶颈

    何为学习瓶颈 学习到了一定的阶段,就很难继续提高水平的一种现象 这是很多人都正面对的,但同时自己并未意识到. 既然是瓶颈,那么一旦突破了,就是广阔天空! 你是否经常面对这样的情景: 遇到一个奇葩问题, ...

  2. C#实现php的hash_hmac函数

    from:http://blog.csdn.net/ciaos/article/details/12618487 PHP代码示例如下 <?php         $res1 = hash_hma ...

  3. flask表单提交的两种方式

    一.通用方式 通用方式就是使用ajax或者$.post来提交. 前端html <form method="post" action="/mockservice&qu ...

  4. Android平台的一些常用命令

    一.Android常见目录结构 1.  apk文件在/data/app目录下 2.  /data/data/[package.name]目录,存放程序数据缓存等等 3.SD卡安装方式的,则在/mnt/ ...

  5. Java核心技术点之集合框架

    1. 概述     Java集合框架由Java类库的一系列接口.抽象类以及具体实现类组成.我们这里所说的集合就是把一组对象组织到一起,然后再根据不同的需求操纵这些数据.集合类型就是容纳这些对象的一个容 ...

  6. PHP中$_SERVER的详细参数与说明

    $_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document root相关. $_SERVER['argv'] #传递给该脚本的参数. $_SERVER['argc'] ...

  7. 本地的html怎么直接通过路径就读取本地文件。

    我要做的事情是已知一个目录的相对路径,获得这个路径下面所有的txt文件,然后读到一个JS Script里面做下一步处理. 网上的例子都是使用input的,既然我是local的html文件,也知道路径了 ...

  8. SignalR与ActiveMQ结合构建实时通信

    一.概述 本教程主要阐释了如何利用SignalR与消息队列的结合,实现不同客户端的交互 SignalR如何和消息队列交互(暂使用ActiveMQ消息队列) SignalR寄宿在web中和其他Signa ...

  9. ionic —— 开发环境搭建并编译运行第一个APP

    其实类似的环境已经玩了很多次了,最开始玩还是微信刚刚出来,那会儿没有智能机.只好安装一个模拟器,却只是为了注册一个微信.想想也就是够了~ 前前后后折腾了很多次,可是每一次都给人不一样的感觉,也许是这个 ...

  10. 沃罗诺伊图(Voronoi Diagram,也称作Dirichlet tessellation,狄利克雷镶嵌)

    沃罗诺伊图(Voronoi Diagram,也称作Dirichlet tessellation,狄利克雷镶嵌)是由俄国数学家格奥尔吉·沃罗诺伊建立的空间分割算法.灵感来源于笛卡尔用凸域分割空间的思想. ...