前言:在Linux 64位系统上安装官网下载预编译好的二进制包【hadoop-2.6.0.tar.gz
】启动起来后,总是出现这种警告:WARN util.NativeCodeLoader: Unable to
load native-hadooplibrary for your platform... using builtin-java classes where
applicable。
官网提供的二进制包,里面的native库,是32位的。
我编译的是hadoop2.6
下载地址: http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.6.0/
打包下载:http://pan.baidu.com/s/1kTKLAr9
我创建了2个目录 (下面的jdk必须换成1.7的,1.8的编译会有问题)
mkdir /opt/modules 放解压后的文件
mkdir /opt/tools 放tar包
下面是编译所需的环境
解压后的目录:
进入hadoop-2.6.0-src的目录下
为什么编译需要上面的那些软件呢?阅读官网的BUILDING.txt,这相当于官网给我们编译手册
[root@gogotown06 hadoop-2.6.0-src]# more BUILDING.txt
1、搭建java环境
[root@gogotown06 jdk1.8.0_31]# pwd
/opt/modules/jdk1.8.0_31
[root@gogotown06 jdk1.8.0_31]#vim /etc/profile
在最后面添加(按住大写G可以跳到最后面,o 往下插入一行,相当于回车):
export JAVA_HOME=/opt/modules/jdk1.8.0_3
export PATH=$PATH:$JAVA_HOME/bin
按住ESC,然后:q 保存
source /etc/profile (必须刷新配置)
[root@gogotown06 jdk1.8.0_31]# java -version
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)
[root@gogotown06 jdk1.8.0_31]#
java环境搭建好了!
2、搭建maven环境
[root@gogotown06 jdk1.8.0_31]# cd ../apache-maven-3.0.5/
[root@gogotown06 apache-maven-3.0.5]# pwd
/opt/modules/apache-maven-3.0.5
[root@gogotown06 apache-maven-3.0.5]#
[root@gogotown06 apache-maven-3.0.5]# vim /etc/profile
在最后面添加(按住大写G可以跳到最后面,o往下插入一行,相当于回车):
export MAVEN_HOME=/opt/modules/apache-maven-3.0.5
export PATH=$PATH:$MAVEN_HOME/bin
保存然后
source /etc/profile (必须刷新配置)
运行mvn -v检测
[root@gogotown06 apache-maven-3.0.5]# mvn -v
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 21:51:28+0800)
Maven home: /opt/modules/apache-maven-3.0.5
Java version: 1.8.0_31, vendor: Oracle Corporation
Java home: /root/windows/jdk1.8.0_31/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-71.el6.x86_64", arch: "amd64", family: "unix"
[root@gogotown06 apache-maven-3.0.5]#
3、安装protobuf-2.5.0.tar.gz
进入安装目录,进行配置,执行命令:
./configure
安装命令:
make
这是因为make需要一些系统的依赖,而系统没安装这些 执行以下命令(需要使用yum):
先检测yum是否可用
ping www.baidu.com
如果出现 ping: unknown host www.baidu.com
echo 'nameserver 8.8.8.8' > /etc/resolv.conf
然后就可以ping通了
yum install autoconf automake libtool cmake
yum install ncurses-devel
yum install openssl-devel
yum install lzo-devel zlib-devel gcc gcc-c++
安装完成后重新执行命令
./configure
make check(这是检查命令 推荐不检查 会消耗很多时间)
make install
4、安装findbugs
设置环境变量(/etc/profile):
export FINDBUGS_HOME=/opt/modules/findbugs-1.3.9
export PATH=$PATH:$ FINDBUGS_HOME /bin
执行命令:source /etc/profile 或者. /etc/profile
验证:
[root@gogotown06 findbugs-1.3.9]# findbugs -version
1.3.9
[root@gogotown06 findbugs-1.3.9]#
环境配置完成
下面进行编译
阅读hadoop源码下的 BUILDING.txt
在hadoop源码目录下执行
mvn package -Pdist,native -DskipTests -Dtar (去掉docs,因为我们只需要编译出来native文件就行了不需要doc)
..............编译需要较长时间
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 27:19.044s
[INFO] Finished at: Thu Apr 23 11:51:51 CST 2015
[INFO] Final Memory: 198M/760M
[INFO] ------------------------------------------------------------------------
cd hadoop-dist/target/
里面的 hadoop-2.6.0.tar.gz 就是我们编译后的,解压就可以用了