为什么要编译hadoop?
在apache官网上下载的二进制hadoop包是32位的,如果是64位的操作系统,必须下载hadoop的源码,在64位操作系统上编译。我所用的Linux系统是CentOS6.5_64,所以必须自己在系统下编译一下。
操作系统:CentOS6.5_x64
编译hadoop所必要的环境:JDK、Maven、g++、protobuf、openssl、CMake、ant
在这些环境里,手动配置的有JDK、Maven、protobuf、ant;使用yum安装:g++、openssl、CMake
1、配置安装JDK,jdk-8u65-linux-x64.gz
解压jdk到software路径下,配置环境变量
# tar -zxvf jdk-8u65-linux-x64.gz -C /software
# vi /etc/profile
设置环境变量,如下图:(JAVA_HOME)
保存退出,使用命令刷新这个文件
# source /etc/profile
# java -version ,出现下图表示配置成功
2、配置安装Maven,apache-maven-3.2.3-bin.tar.gz
解压maven到software路径下,配置环境变量(MAVEN_HOME)
# tar -zxvf apache-maven-3.2.3-bin.tar.gz -C /software
# vi /etc/profile
# source /etc/profile
# mvn -version ,出现下图表示配置成功
3、在线安装g++(使用yum安装,需要连接网络)
# yum install gcc gcc-c++
4、配置安装protobuf,protobuf-2.5.0.tar.gz
解压protobuf到software路径下,配置环境变量
# tar -zxvf protobuf-2.5.0.tar.gz -C /software
protobuf安装过程,过程如下:
进入/software/protobuf-2.5.0目录
# ./configure --prefix=/software/protobuf 如下图:
--prefix为指定编译后的目录,然后一次键入一下代码:
# make
# make check
# make install (需要超级用户root权限)
配置环境变量,如下图(PROTOBUF_HOME):
刷新配置文件
# source /etc/profile
查看是否配置成功
# protoc --version ,出现下图表示成功
5、在线安装openssl
# yum install openssl
6、在线安装CMake
# yum install cmake
7、配置安装Ant,apache-ant-1.9.4-bin.tar.gz
解压ant到software路径下,配置环境变量(ANT_HOME)
# tar -zxvf jdk-8u65-linux-x64.gz -C /software
# vi /etc/profile
# source /etc/profile
# ant -version ,出现下图表示配置成功
8、安装完成以上步骤后,就可以编译hadoop了,将hadoop解压打/software目录下,进入改目录,键入
mvn package -Pdist,native -DskipTests -Dtar
接下来就是等待了,等最终出现下面的图片,就表示你的hadoop已经编译好了
编译好的文件在/software/hadoop-2.7.1-src/hadoop-dist/target目录下
/software/hadoop-2.7.1-src/hadoop-dist/target
hadoop-2.7.1.tar.gz即为编译好的64位hadoop文件。
我的安装过程中没有出现问题,我是根据http://www.aboutyun.com/thread-8130-1-1.html这个博客一步一步安装的,我记录的大致跟这篇文章相同,他在安装的时候出现的问题都有记录(都已解决),大家可以参考一下他的安装过程。