Hadoop-2.9.0 编译 (CentOS6.7 64位)

Hadoop-2.9.0 编译 (CentOS6.7 64位)

  • 0. 环境
  • 1. 一些废话
  • 2. 环境解析
  • 3. 安装环境
  • 4. 编译过程
  • 5. 出错处理

0. 环境

  • CentOS-6.7 64位 Minimal版
  • hadoop-2.9.0-src.tar.gz (2.X中目前最新的稳定版)
    https://mirrors.aliyun.com/apache/hadoop/common/stable/hadoop-2.9.0-src.tar.gz
  • jdk-1.8.0_65 64位 jdk-8u65-linux-x64.tar.gz
  • Maven3.3.9 apache-maven-3.3.9-bin.tar.gz
  • ProtocolBuffer2.5.0 protobuf-2.5.0.tar.gz
  • ANT apache-ant-1.9.7-bin.tar.gz
  • 其他环境另行补充

1. 一些废话

  • 为什么需要编译?

    • 官方提供的编译好的版本为32位, 绝大部分的运行环境是64位,故需要对源码包进行编译
  • 搭建环境的版本要求在哪看?

    • 在源码包下有一个叫BUILDING.txt的文件, 里面详细说明了编译过程中所需要的环境和版本要求, 还有环境安装的命令,十分贴心
  • 声明 本文只是记录向的文章, 着重引导思路, 不适合速食性阅读

    2. 环境解析(可跳过)

    查看BUILDING.txt文件, 确定编译前的准备工作


  • Unix System
  • JDK 1.8+
  • Maven 3.0 or later
  • Findbugs 1.3.9 (if running findbugs)
  • ProtocolBuffer 2.5.0
  • CMake 2.6 or newer (if compiling native code), must be 3.0 or newer on Mac
  • Zlib devel (if compiling native code)
  • openssl devel (if compiling native hadoop-pipes and to get the best HDFS encryption performance)
  • Linux FUSE (Filesystem in Userspace) version 2.6 or above (if compiling fuse_dfs)
  • Internet connection for first build (to fetch all Maven and Hadoop dependencies)
  • python (for releasedocs)
  • bats (for shell code testing)
  • Node.js / bower / Ember-cli (for YARN UI v2 building)

首先是Unix系统, windows排除(当然我也没试过, 如果可以的话, 算是打脸?)
- JDK1.8+
- MVN3.0+
- ProtocolBuffer 2.5.0
- CMake2.6 + (Mac系统3.0+)(穷,没有Mac)

以上是必要的环境内容, 安装过程中会涉及到诸多软件的依赖, 安装之前, 会做提醒
安装过程中需要网络连接,需要下载MVN和Hadoop的依赖(第一次编译需要,亲测不同版本由于需要的依赖不同,编译其他版本时仍然需要联网)(请务必保证网络的通畅)
此外, 在之前看的教程中, 发现有些安装了ANT, 我也安装了(因为懒,要是报错,还得排查环境和配置,很麻烦,宁可多装,也不要漏掉)

  • ANT apache-ant-1.9.7-bin.tar.gz
 Installing required packages for clean install of Ubuntu 14.04 LTS Desktop:

 * Oracle JDK 1.8 (preferred)
   $ sudo apt-get purge openjdk*
   $ sudo apt-get install software-properties-common
   $ sudo add-apt-repository ppa:webupd8team/java
   $ sudo apt-get update
   $ sudo apt-get install oracle-java8-installer
 * Maven
   $ sudo apt-get -y install maven
 * Native libraries
   $ sudo apt-get -y install build-essential autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev
 * ProtocolBuffer 2.5.0 (required)
   $ sudo apt-get -y install protobuf-compiler

 Optional packages:

 * Snappy compression
   $ sudo apt-get install snappy libsnappy-dev
 * Intel ISA-L library for erasure coding
   Please refer to https://01.org/intel%C2%AE-storage-acceleration-library-open-source-version
   (OR https://github.com/01org/isa-l)
 * Bzip2
   $ sudo apt-get install bzip2 libbz2-dev
 * Jansson (C Library for JSON)
   $ sudo apt-get install libjansson-dev
 * Linux FUSE
   $ sudo apt-get install fuse libfuse-dev

这里讲了必要安装的环境的安装方法,和可选环境的安装方法(平台是Ubuntu,把apt-get换成yum就也可以了)
jdk,maven,ProtocalBuffer,ANT稍大一点的软件我都是本地上传安装包的,

大致就这些

3. 安装环境

配置环境的一些个人习惯(经供参考,欢迎指正):
1. 习惯上将自己安装的软件放在/export目录内(其他文件夹或者自建一个也完全没有问题)
2. 在export下会新建以下几个文件夹
- packages 放置上传的安装包
- env 类似于java maven等类型的软件
- data 软件数据的存放位置
- server 类似于tomcat和nginx等类型的软件
- software 位置要求不多的软件的安装位置
3. 安装过程:
- 注: 配置环境变量的格式
vi /etc/profile 在最下边添加一下内容

export JAVA_HOME=/export/env/jdk1.8.0_65
export PATH=.:$PATH:$JAVA_HOME/bin

格式是这样, 把名字和路径改一下就可以了, 之后需要 source /etc/profile

  • jdk
    • 解压到env文件夹内, 配置环境变量, source一下, java -version测试环境变量是否生效
  • maven
    • 解压到env文件夹内, 配置环境变量, source一下, mvn -version测试环境变量是否生效
    • 修改apache-maven-3.3.9/conf下的setting.xml,配置国内的maven源,能稍微快一点
  • 安装ProtocolBuffer2.5.0
    • 需要安装一些依赖

      yum install gcc gcc-c++ make
    • 安装gcc gcc-c++ make, 过程中,y yes什么的需要输入, 也可以在yum后加-y解决
    • 解压, 配置, 编译, 安装, protobuf默认安装在 /usr/local 目录, 此处没有改动, 也可以在./ configure 处更改安装位置

      cd /protobuf-2.5.0
      ./ configure
      make
      make install
    • protoc –version 测试一下是否安装成功(verion前是–)
    • 安装ANT
    • 解压到env文件夹内, 配置环境变量, source一下, ant -version测试环境变量是否生效
  • 安装CMake和其他依赖
yum install cmake
yum install openssl-devel
yum install ncurses-devel

4. 编译过程

  • 解压hadoop-2.9.0-src.tar.gz到software文件夹下, 切换到hadoop-2.9.0-src下

  • 执行编译命令

mvn package -Pdist,native -DskipTests -Dtar
  • 几乎全程需要联网,网速很重要, 大约需要一个小时
  • 编译好的文件是 hadoop-dist/target/ 下的hadoop-2.9.0-tar.gz

5. 出错处理

我编译的过程还算是顺利, 只有一两个问题,
出错后会有提示如何在处理完问题后继续中断的编译, 一般是在上面的编译命令后加上-rf :出错的模块

例如:

mvn package -Pdist,native -DskipTests -Dtar -rf :hadoop-aws

我出的问题是编译hadoop-aws的过程中,需要下载com.amazonaws的DynamoDBLocal包, 在ali和maven的中央仓库中都没有,好在,这个依赖只是在test时需要, 不编译不影响使用, 索性将这个模块的pom.xml中的依赖和源码中的test代码一并删掉就解决了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值