hadoop集羣搭建--hadoop-2.8.5編譯
編譯基本過程
軟件版本
- jdk:jdk-8u221-linux-x64.tar.gz
- maven:apache-maven-3.6.1-bin.tar.gz
- ant:apache-ant-1.9.14-bin.tar.gz
- protobuf-2.5.0.tar.gz(這個不要用太高,也不要太低,低版本沒測試過,高版本3.9.1在編譯的過程中報錯了,提示的信息是版本不兼容,期望是2.5.0版本的protobuf)
- hadoop:hadoop-2.8.5-src.tar.gz
點擊下載以上五個軟件包
安裝軟件包:
注意:
軟件包目錄:~/software;
安裝目錄:~/apps
jdk安裝:
命令:tar -zxvf jdk-8u221-linux-x64.tar.gz -C ~/apps/
環境變量配置:sudo vi /etc/profile
#jdk
export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_221
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
java -version
JDK配置成功!
maven安裝:
命令:tar -zxvf apache-maven-3.6.1-bin.tar.gz -C ~/apps/
修改文件夾名:mv apache-maven-3.6.1/ maven-3.6.1
(這個修改文件夾名稱並不是必須的,只是鄙人覺得以後會安裝很多Apache軟件,都是以Apache開頭,在找某個軟件的時候,可能不能一步到位找到對應軟件,所以才該名稱的)
環境變量配置:sudo vi /etc/profile
#maven
export MAVEN_HOME=/home/hadoop/apps/maven-3.6.1
export PATH=$PATH:$MAVEN_HOME/bin
配置鏡像:阿里雲
先備份文件:cp settings.xml settings_bak.xml (這是個習慣,修改配置之前,最好都備份一下)
編輯:vi setting.xml。
在mirrors 裏面配置:
<mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
-->
<mirror>
<id>nexus-aliyun</id>
<name>aliyun nexus</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
source /etc/profile
mvn -v
出現下面內容,表示安裝成功。
ant安裝:
解壓命令:tar -zxvf apache-ant-1.9.14-bin.tar.gz -C ~/apps/
修改文件夾名稱:mv mv apache-ant-1.9.14/ ant-1.9.14
配置環境變量:
#ant
export ANT_HOME=/home/hadoop/apps/ant-1.9.14
export PATH=$PATH:$ANT_HOME/bin
source /etc/profile
ant -version
看到下面的結果,說明安裝成功了
安裝protobuf:
在安裝protobuf之前,先安裝幾個軟件包:glibc-headers、gcc-c++、make、cmake、 openssl-devel、ncurses-devel。
按照上面包的順序依次執行命令:
sudo yum install -y glibc-headers
sudo yum install -y gcc-c++
sudo yum install -y make
sudo yum install -y cmake
sudo yum install -y openssl-devel
sudo yum install -y ncurses-devel
然後,解壓protobuf,命令:tar -zxvf protobuf-2.5.0.tar.gz -C ~/apps/
進入protobuf的主目錄下:cd protobuf-2.5.0/
在主目錄下,依次執行下面的命令:
[hadoop@min1 protobuf-2.5.0]$ ./configure
[hadoop@min1 protobuf-2.5.0]$ sudo make
[hadoop@min1 protobuf-2.5.0]$ sudo make check
[hadoop@min1 protobuf-2.5.0]$ sudo make install
安裝完成,驗證protobuf是否安裝成功,執行命令:protoc --version,如果出現下面信息,標誌安裝成功:
[hadoop@min1 protobuf-2.5.0]$ protoc --version
libprotoc 2.5.0
解壓hadoop源碼文件:
命令:
[hadoop@min1 software]$ tar -zxvf hadoop-2.8.5-src.tar.gz -C ~/apps/
進入hadoop安裝主目錄:
[hadoop@min1 software]$ cd ~/apps/hadoop-2.8.5-src/
[hadoop@min1 hadoop-2.8.5-src]$ pwd
/home/hadoop/apps/hadoop-2.8.5-src
[hadoop@min1 hadoop-2.8.5-src]$
編譯打包hadoop
用maven命令編譯打包:
注意:建議直接在VMware的虛擬機上進行打包,我用過兩個使用secureCRT連接工具打包,因爲我配置好網絡之後,就在這個連接工具上進行操作,它相比在VMware上直接操作要更方便點,只要可以複製粘貼,字體也可以調大,所以當我在secureCRT上執行這個打包命令的時候,奇慢無比,後來我就中斷了,然後換在虛擬機上直接運行打包命令,感覺這個要在工具上打包要快一些,搞不懂是爲什麼。有知道的小夥伴可以評論區分享一下,感謝了!
[hadoop@min1 hadoop-2.8.5-src]$ mvn package -Pdist,native -DskipTests -Dtar
這個過程好久,不知道是它本來就那麼久還是我的操作上哪裏有問題,希望知道的老鐵們,能在評論區和我分享一下。
我看打印的日誌,只要慢在連接https的地址,除了這個https的地址,其他都挺快的,打包的過程中,很多事卡在獲取https鏈接的資源上。我本機打開Apache的https鏈接也超級慢,幾乎是打不開。但是,當我吧https刪除之後,就很快連上了。真不知道是我網絡的問題,還是Apache官網的問題。要是有知道這是什麼原因或者有什麼辦法解決的兄dei,希望您在評論區多多分享一下,感謝了!
最後成功如下:
成功的 64 位 hadoop 包在~/apps/hadoop-2.8.5-src/hadoop-dist/target 下,如圖:
最後分享下心路歷程:真的太難了,這個過長太漫長了,昨晚弄了一個晚上,最後報protobuf的版本不兼容,之前安裝protobuf-2.5.0的時候報錯,沒安裝成功,我那時以爲是protobuf的版低了,就想換個高的,不是高版本通常都是能向下兼容嘛,所以就下了個3.9.1版本,最後一晚下來,最終報錯了,報錯還提示要我選擇2.5.0版本,我…真的太難了!
打包的時候一直有個進度顯示【?/70】,感覺進度在一半以前都炒雞慢,有的卡住半天沒點動靜,我都懷疑今晚可能又成不了。就在我準備安裝官方的編譯包的時候,我又看了下VMware的打包情況,發現速度變好快了,進度已經進行到後半程了,按照當前速度,很快就能知道最終的編譯結果了。那個激動啊!最後,真的成功了,這兩天的辛苦得到回報了!突然間想起一句話:守得雲開見月明…
這首詩的原文是這樣的,放在最後,即告慰自己,又勉勵自己繼續加油。
莫語常言道知足,萬事至終總是空。
理想現實一線隔,心無旁騖腳踏實。
誰無暴風勁雨時,守得雲開見月明。
花開復見卻飄零,殘憾莫使今生留。