Hadoop发展到今天拥有众多发行版本,除了Hortonworks,Cloudera发行的开源修改版,其自身就有多个版本号,这里采用当前的stable版本2.9.1。对应的二进制包源代码。从源代码编译Hadoop需要就下载这个对应的src包。

安装Hadoop的要求在源代码解压后的BUILDING.txt文件中找到。2.9.1版本的是

* Unix System
* JDK 1.7 or 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)
* Node.js / bower / Ember-cli (for YARN UI v2 building)

Install Requirements

Install Java

通过下面的命令安装Java 8, 安装之后通过java -version命令检查是否正确安装,应该是java 8

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

如果java -version无法显示正确版本号,可以将link tools.jar到另外一个位置,首先tools.jar应该在如下位置${java.home}/../lib/tools.jar,然后通过下面命令建立一个link

ln -s /usr/lib/jvm/java-8-oracle/lib/tools.jar /usr/lib/tools.jar
ls -ltr /usr/lib/tools.jar

同时修改环境变量,加入JAVA

Install Maven

通过下面命令安装Maven

sudo apt-get install maven

同时修改环境变量,加入Maven。通过下面命令检查maven的安装情况mvn --version,应该是Apache Maven 3.3.9

Install Protocol Buffers

虽然通过apt-get命令可以安装Protocol Buffers,但是版本应该是libprotoc 2.6.1。Hadoop的版本要求是2.5.0

所以下载Protocol Buffers的源代码,使用cmake安装。

下载protobuf-2.5.0.tar.gz,解压编译安装[需要gcc和g++]。

./configure
make
make install
sudo ldconfig

之后输入命令protoc --version,显示为libprotoc 2.5.0

Install Others

安装其他依赖库

sudo apt-get install autoconf libtool zlib1g-dev pkg-config libssl-dev

Build from Source Code

$ cd hadoop-2.9.1-src
$ mvn clean install -DskipTests
$ mvn clean package -Pdist -DskipTests -Dtar

编译成功,生成的二进制包会放在hadoop-2.9.1-src/hadoop-dist/target/hadoop-2.9.1.tar.gz。另外每个模块也会有对于的生成的jar包。这二进制包可以用于部署。