在学习Hadoop开始,便被告知官网只提供了32位系统的安装文件,如果要在64位系统中运行,那就得自己重新编译安装文件;
前段时间一直在学习怎么样安装使用Hadoop,先把编译64位的安装文件忽略了,等到对Hadoop熟悉之后再学习会更省时间,还不错,跟预想的一样。
下面就介绍一下怎么样编译64位的安装文件
系统环境
OS:RedHat6.5 64bit企业版
JDK:1.8.0_20 64bit
硬件:虚拟机
1、 前期准备
作为一个屌丝开发程序员,看到源码中的pom.xml之后就轻松了下来,这不就是maven构建的项目吗!赶紧的安装maven
#tar -xvzf /usr/apache-maven-3.3.3-bin.tar.gz -C /usr
#vim /etc/profile
export MAVEN_HOME=/usr/maven/apache-maven-3.3.3
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
#source /etc/profile
maven安装完成之后我以为可以了,直接用mvn -install进行编译,这时候才知道我是个菜鸟啊,居然报错了!!! 凭借着屌丝精神在百度找到了正解,还需要安装protobuf, 好吧,在csdn上下载到源码 protobuf-2.5.0.tar.gz
#tar -xvzf /usr/protobuf-2.5.0.tar.gz -C /usr
进入到protobuf-2.5.0根路径下
依次执行
./configure
make
make check
make install
在执行./configure就报错了,为什么呢?一看日志明白了少依赖库啊
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
那我就安装,通过
#yum install glibc-headers
# yum install gcc-c++
安装好依赖库再执行
./configure
make
make check
make install
顺利完成
2-编译源码
# mvn package -Pdist,native -DskipTests -Dtar --不生成文档
# mvn package -Pdist,native,docs,src -DskipTests -Dtar --生成文档,需要安装findbugs,并设置FINDBUGS_HOME环境变量
[ERROR] around Ant part ...<exec dir="/usr/local/hadoop-2.7.1-src/hadoop-common-project/hadoop-common/target/native" executable="cmake" failonerror="true">... @ 4:151 in /usr/local/hadoop-2.7.1-src/hadoop-common-project/hadoop-common/target/antrun/build-main.xml
解决:
yum install cmake
[ERROR] around Ant part ...<exec dir="/usr/local/hadoop-2.7.1-src/hadoop-tools/hadoop-pipes/target/native" executable="cmake" failonerror="true">... @ 5:131 in /usr/local/hadoop-2.7.1-src/hadoop-tools/hadoop-pipes/target/antrun/build-main.xml
解决
yum install openssl-devel
[ERROR] around Ant part ...<exec dir="/usr/local/hadoop-2.7.1-src/hadoop-common-project/hadoop-common/target/native" executable="cmake" failonerror="true">... @ 4:141 in /usr/local/hadoop-2.7.1-src/hadoop-common-project/hadoop-common/target/antrun/build-main.xml
解决:
yum -y install zlib-devel
yum -y install ncurses-devel