编译hadoop-2.5.2总结

前两天废了很大的劲来对hadoop-2.5.2进行64位系统的手动编译,由于对linux系统环境以及hadoop本身的不熟悉,编译过程中也出现了很多的问题,在此记录一下,对自己以后再次编译和看到此文章的你有一个参考和帮助。

一、准备的资料

  • 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

  

  

时间: 2024-10-19 07:35:36

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

编译Hadoop

Apache Hadoop 生态圈软件下载地址:http://archive.apache.org/dist/hadoop/hadoop下载地址 http://archive.apache.org/dist/hadoop/common 安装环境 虚拟机中的 CentOS 64位 需要安装软件: jdk: jdk-7u45-linux-x64.rpm hadoop:hadoop-2.7.2-src.tar.gz maven:apache-maven-3.0.5-bin.tar.gz protobu

编译Hadoop源码

背景: 在阅读hadoop源代码过程中会发现部分类或者函数无法找到,这是由于Hadoop2.0使用了Protocol Buffers定义了RPC协议, 而这些Protocol Buffers文件在Maven编译源代码才会生成对应的java类,因此若其他类在源代码中引用这些类则暂时无法找到. 解决办法就是先对hadoop源码进行编译,再导入eclipse工程. 一.基础软件: 软件 下载地址 推荐版本 JDK http://www.oracle.com/technetwork/java/javas

自己动手一步一步安装hadoop(含编译hadoop的native本地包)

最近项目需要用到hadoop,边学习边应用,第一步无疑是安装hadoop,我安装的是hadoop-2.4.1,下面是详细步骤,做备忘以后查看 一.下载依赖软件 1.java hadoop官网说明只支持java 6和7 ,下载最新的java7 http://download.oracle.com/otn-pub/java/jdk/7u65-b17/jdk-7u65-linux-x64.tar.gz 2.maven 从maven官网下载http://maven.apache.org/download

编译hadoop版的hello,world

cd ~/src mkdir classes javac -classpath ~/hadoop-0.20.2/hadoop-0.20.2-core.jar WordCount.java -d classes jar -cvf WordCount.jar -C classes/ . hadoop jar WordCount.jar com.codestyle.hadoop.WordCount input output hadoop fs -ls output hadoop fs -cat out

CentOS 6.4 64位 源码编译hadoop 2.2.0

CentOS 6.4 64位 源码编译hadoop 2.2.0 搭建环境:Centos 6.4 64bit 1.安装JDK 参考这里2.安装mavenmaven官方下载地址,可以选择源码编码安装,这里就直接下载编译好的wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.zip解压文件后,同样在/etc/profie里配置环境变量vim /etc/profieexport

mac OS X Yosemite 上编译hadoop 2.6/2.7及TEZ 0.5.2/0.7 注意事项

1.jdk 1.7问题 hadoop 2.7.0必须要求jdk 1.7.0,而oracle官网已经声明,jdk 1.7 以后不准备再提供更新了,所以趁现在还能下载,赶紧去down一个mac版吧 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 应该选择mac ox 64位的版本 http://download.oracle.com/otn-pub/java/jdk/7u79-b1

64位centos 下编译 hadoop 2.6.0 源码

64位os下为啥要编译hadoop就不解释了,百度一下就能知道原因,下面是步骤: 前提:编译源码所在的机器,必须能上网,否则建议不要尝试了 一. 下载必要的组件 a) 下载hadoop源码 (当前最新的稳定版是2.6.0)地址  http://mirrors.hust.edu.cn/apache/hadoop/common/stable/hadoop-2.6.0-src.tar.gz b) 下载apache-ant (centos自带的ant版本太低,编译过程中会报错)地址: http://mi

64位CentOS上编译 Hadoop 2.2.0

1. 下载Hadoop 2.2.0 源码包,并解压 $ wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.2.0/hadoop-2.2.0-src.tar.gz $ tar zxf hadoop-2.2.0-src.tar.gz 2. 安装下面的软件 $ sudo yum install cmake lzo-devel zlib-devel gcc autoconf automake libtool ncurses-dev

64位Ubuntu 编译 hadoop源码

本人下载了最新版的ubuntu64(14.04)位桌面版系统,在安装hadoop2.6.0时,由于官方的hadoop是在32位机子上编译的,故需下载hadoop源码进行编译. 准备:hadoop-2.6.0-src jdk1.7.0_75(由于最新版的jdk是1.8.0_31版本的,而我在用这个版本编译hadoop时出现了问题,后来发现1.8.0是在hadoop出来之后出来的,所以可能有些不支持,故建议用1.7.0版本的) 1.安装JDK 安装jdk的方式大家可以网上搜一下,或者通过这个链接ht

CentOS上编译hadoop 2.7

官网下载的 hadoop执行运行报警告: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicableput: `./in': No such file or directory 主要是lib下的native-hadoop 是32位的,所以这里我们自己在64位的系统上编译hadoop 环境准备: 1