官网下载的 hadoop执行运行报警告:

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
put: `./in': No such file or directory

主要是lib下的native-hadoop 是32位的,所以这里我们自己在64位的系统上编译hadoop

环境准备:

1 下载hadoop src源码包

2 所需软件:java, svn, autoconf, automake, libtool, ncurses-devel, openssl-devel, gcc, lzo-devel, zlib-devel, znt, maven, protobuf, cmake

yum -y install autoconf  automake libtool ncurses-devel openssl-devel gcc lzo-devel, zlib-devel cmake

3 安装jdk

下载jdk bin包并解压

添加jdk环境变量

在/etc/profile文件下添加

## JAVA

export JAVA_HOME=/usr/local/java/jdk

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

## PATH 

export PATH=$JAVA_HOME/bin

让重载环境变量  . /etc/profile

4 maven安装

apache官网下载 maven并解压,然后把其 bin路径添加到环境变量

mvn -version  

5 protobuf安装

到网上搜索 protobuf-2.5.0.tar.gz,下载解压,

./configure; make; make install

protoc --version

6 ANT安装

apache官网下载 ANT bin包解压,把其bin路径添加到环境变量中

7 编译hadoop

mvn package -Pdist,native,docs -DskipTests -Dtar

这里需要一个多小时或更久,并需要联网下载依赖包

最后文件在 hadoop-2.7.2-src/hadoop-dist/target 中

可以直接拿 hadoop-2.7.2目录去部署,还有一个hadoop-2.7.2.tar.gz包