由於Apache hadoop 只提供了32位的包,因此須要本身編譯64位的包,下面是編譯步驟html
所須要的包java
1:apache-ant-1.9.7-bin.tar.gz(http://mirrors.tuna.tsinghua.edu.cn/apache//ant/binaries/apache-ant-1.9.7-bin.tar.gz)linux
2:apache-maven-3.3.9-bin.tar.gz(必需是maven3,http://apache.fayea.com/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz)c++
3:findbugs-1.3.9.tar.gz(https://sourceforge.net/projects/findbugs/files/findbugs/1.3.9/)git
4:protobuf-2.5.0.tar.gz(必需是這個版本https://github.com/google/protobuf/releases?after=v2.6.1)github
5:hadoop-2.7.1-src.tar.gz(http://apache.fayea.com/hadoop/common/hadoop-2.7.1/hadoop-2.7.1-src.tar.gz)apache
6:java 1.7+tomcat
下面是具體安裝:oracle
1:Java安裝app
安裝以前請卸載系統自帶的jdk,openjdk
export M3_HOME=/home/data/app/apache-maven-3.3.9
export FINDBUGS_HOME=/home/data/app/findbugs-1.3.9
export ANT_HOME=/home/data/app/apache-ant-1.9.7
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$M3_HOME/bin:$FINDBUGS_HOME/bin:$ANT_HOME/bin(這個是我已經安裝好的,能夠自行刪減)
5. java -version 查看java是否安裝成功
2:apache-ant-1.9.7-bin.tar.gz 安裝
1.tar -zxvf apache-ant-1.9.7-bin.tar.gz 解壓
2.vi /etc/profile 添加ant環境變量(由於上一步我已經添加了因此這裏就不用加了)
3.ant -version
3:apache-maven-3.3.9-bin.tar.gz 安裝
1.tar -zxvf apache-maven-3.3.9-bin.tar.gz 解壓
2.vi /etc/profile 添加ant環境變量(由於上一步我已經添加了因此這裏就不用加了)
3.mvn -version
4:findbugs-1.3.9.tar.gz 安裝
1.tar -zxvf findbugs-1.3.9.tar.gz
2.vi /etc/profile 添加ant環境變量(由於上一步我已經添加了因此這裏就不用加了)
3.findbugs -version
5:protobuf-2.5.0.tar.gz 安裝
1.tar -zxvf protobuf-2.5.0.tar.gz 解壓
2.cd protobuf-2.5.0
3. ./configure
4. make install(若是make 沒有安裝,請執行yum -y install autoconf automake libtool cmake ncurses-devel openssl-devel lzo-devel zlib-devel gcc gcc-c++)
5.vi /etc/profile 添加ant環境變量(由於上一步我已經添加了因此這裏就不用加了)
6:hadoop-2.7.1-src.tar.gz 編譯
1.tar -zxvf hadoop-2.7.1-src.tar.gz 解壓
2.mvn package -Pdist,native -DskipTests -Dtar
編譯完成後的bin版本在目錄 hadoop-dist下
編譯過程當中可能出現的錯誤
[ERROR] Failed to execute goal on project hadoop-common: Could not resolve dependencies for project org.apache.hadoop:hadoop-common:jar:2.7.1: Could not transfer artifact org.apache.commons:commons-math3:jar:3.1.1 from/to nexus-osc (http://maven.oschina.net/content/groups/public/): GET request of: org/apache/commons/commons-math3/3.1.1/commons-math3-3.1.1.jar from nexus-osc failed: Premature end of Content-Length delimited message body (expected: 1599627; received: 866169 -> [Help 1]
[ERROR] Failed to execute goal org.apache.hadoop:hadoop-maven-plugins:2.7.1:protoc (compile-protoc) on project hadoop-common: org.apache.maven.plugin.MojoExecutionException: ‘protoc –version’ did not return a version -> [Help 1]
缺這缺那的,用thrift編譯說明提到的一個把開發工具全裝上。
yum -y groupinstall 「Development Tools」
須要安裝ant, yum install ant
Caused by: org.apache.maven.plugin.MojoExecutionException: An Ant BuildException has occured: Execute failed: java.io.IOException: Cannot run program 「cmake」 (in directory 「/root/hadoop-2.7.1-src/hadoop-common-project/hadoop-common/target/native」): error=2, No such file or directory
須要安裝 findbugs
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (site) on project hadoop-common: An Ant BuildException has occured: stylesheet /home/hadoop/hadoop-2.7.1-src/hadoop-common-project/hadoop-common/${env.FINDBUGS_HOME}/src/xsl/default.xsl doesn’t exist.
[ERROR] around Ant part …<xslt in=」/home/hadoop/hadoop-2.7.1-src/hadoop-common-project/hadoop-common/target/findbugsXml.xml」 style=」${env.FINDBUGS_HOME}/src/xsl/default.xsl」 out=」/home/hadoop/hadoop-2.7.1-src/hadoop-common-project/hadoop-common/target/site/findbugs.html」/>… @ 43:251 in /home/hadoop/hadoop-2.7.1-src/hadoop-common-project/hadoop-common/target/antrun/build-main.xml
而後設置環境變量 export FINDBUGS_HOME=/usr/local/findbugs-3.0.0
須要安裝cmake
Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (make) on
project hadoop-pipes: An Ant BuildException has occured: exec returned: 1
[ERROR] around Ant part …<exec dir=」/home/pory/workplace/hadoop-2.4.1-src/hadoop-
tools/hadoop-pipes/target/native」 executable=」cmake」 failonerror=」true」>… @ 5:131 in
/home/pory/workplace/hadoop-2.4.1-src/hadoop-tools/hadoop-pipes/target/antrun/build-
main.xml
安裝zlib-dev 和 libssl-dev ,可能在groupinstall已經安裝了。
//kms這個,換個目錄從新編譯或者多試幾回,由於下載tomcat超時致使的問題。
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (dist) on project hadoop-kms: An Ant BuildException has occured: exec returned: 2
[ERROR] around Ant part …<exec failonerror=」true」 dir=」/home/hadoop/hadoop-2.7.1-src/hadoop-common-project/hadoop-kms/target」 executable=」sh」>… @ 10:120 in /home/hadoop/hadoop-2.7.1-src/hadoop-common-project/hadoop-kms/target/antrun/build-main.xml
[ERROR] -> [Help 1]