Compile Hadoop [编译Hadoop]
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包。这二进制包可以用于部署。