Hadoop源碼版本:2.5.2git
名稱 | 版本 | |
JDK | 1.7u75(64bit)github |
|
Maven | 3.3.1 | |
Protobuf | 2.5.0 | |
autoconfautomake | yum自動選擇 | |
libtool | yum自動選擇 | |
cmake | yum自動選擇 | |
openssl-devel | yum自動選擇 | |
ncurses-devel | yum自動選擇 | |
gcc* | yum自動選擇 |
4.2、安裝依賴軟件apache
yum install autoconfautomake libtool cmake網絡
yum install openssl-develapp
yum install ncurses-develmaven
yum install gcc*oop
4.2、安裝maventhis
把maven解析到安裝目錄,而後配置環境變量google
MAVEN_HOME=/home/bdata/software/apache-maven-3.3.1url
PATH=.:$MAVEN_HOME/bin
設置maven配置文件(settings.xml)
本例設置以下:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- <localRepository>D:\Program Files\JavaSoft\apache-maven-3.1.0\repository</localRepository> -->
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
<mirrors>
<mirror>
<id>nexts-central</id>
<url>http://192.168.50.213:8081/nexus/content/repositories/central/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>nexts-apache-snapshot</id>
<url>http://192.168.50.213:8081/nexus/content/repositories/apache-snapshots/</url>
<mirrorOf>apache-snapshots</mirrorOf>
</mirror>
<mirror>
<id>nexts-codehaus-snapshots</id>
<url>http://192.168.50.213:8081/nexus/content/repositories/codehaus-snapshots/</url>
<mirrorOf>codehaus-snapshots</mirrorOf>
</mirror>
<mirror>
<id>nexts-thirdparty</id>
<url>http://192.168.50.213:8081/nexus/content/repositories/thirdparty/</url>
<mirrorOf>thirdparty</mirrorOf>
</mirror>
<mirror>
<id>nexus-osc</id>
<mirrorOf>*</mirrorOf>
<name>Nexus osc</name>
<url>http://maven.oschina.net/content/groups/public/</url>
</mirror>
<mirror>
<id>osc_thirdparty</id>
<mirrorOf>thirdparty</mirrorOf>
<url>http://maven.oschina.net/content/repositories/thirdparty/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<!--this profile will allow snapshots to be searched when activated-->
<id>nexus</id>
<repositories>
<repository>
<id>nexts-central</id>
<name>local private nexus</name>
<url>http://192.168.50.213:8081/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>nexus thirdparty</id>
<name>local private thirdparty</name>
<url>http://192.168.50.213:8081/nexus/content/repositories/thirdparty</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>nexus-osc</id>
<name>Nexus osc</name>
<url>http://maven.oschina.net/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>osc_thirdparty</id>
<mirrorOf>thirdparty</mirrorOf>
<url>http://maven.oschina.net/content/repositories/thirdparty/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>local private nexus</name>
<url>http://192.168.50.213:8081/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>nexus-osc</id>
<name>local private nexus</name>
<url>http://maven.oschina.net/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
</profiles>
</settings>
4.3、安裝probuf
下載列表:https://github.com/google/protobuf/tags
下載地址(2.5.0版本): https://s3.amazonaws.com/github-cloud/releases/23357588/09f5cfca-d24e-11e4-9840-20d894b9ee09.gz?response-content-disposition=attachment%3B%20filename%3Dprotobuf-2.5.0.tar.gz&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1427785708&Signature=0FSZzyD%2BCgxJqn9dSnZj4tmCKCw%3D
#./configure
#make
#make check
#make install
#protoc --version
libprotoc 2.5.0
4.4、編譯
cd $hadoop_src_home/
mvn package -Pdist,native -DskipTests -Dtar
#編譯時間可能持續20分鐘左右,最終顯示BUILD SUCCESS說明編譯成功,能夠開始部署了。
4.4、編譯常見異常
一、protobuf版本與hadoop源碼依賴版本不一致。
hadoop-2.5.0必須使用protobuf-2.5.0
二、Maven編譯找不到依賴jar或plugin,遠程倉庫設置不正確,致使maven沒法下載jar文件。
把有效遠程倉庫地址加入maven的settings.xml中
國內穩定私服:os-china(開源中國)
國外穩定私服:maven中央倉庫(有可能由於網絡地址被屏蔽沒法下載,能夠使用代理訪問或改用國內私服)
建議搭建公司內部私服(sonatype-nexus),具體部署方案請網絡搜索