使用centos編譯hadoop

使用ubuntu的時候,由于主機(jī)名方面的原因,連接的時候不夠方便,打算嘗試一下centos
在蘋果電腦上,打算使用vmware fusion

前期準(zhǔn)備:
centos 7.6 iso,可以在清華源下載

目標(biāo),在centos上可以編譯出完整native library的hadoop

步驟1,更換軟件源
使用清華的centos源,參考官方說明
使用vi編輯,yum makecache,即可

步驟2,安裝open-vm-tools,與主機(jī)共享文件夾
首先在虛擬機(jī)界面打開共享文件夾功能,并指定要共享的文件夾
安裝虛擬機(jī)通信的軟件
yum install open-vm-tools
可以嘗試使用命令列出共享文件夾,并掛載
/usr/bin/vmware-hgfsclient
mkdir -p /mnt/hgfs
vmhgfs-fuse .host:/ /mnt/hgfs
也可以添加到/etc/fstab,開機(jī)自動掛載
sudo mkdir -p /mnt/hgfs
sudo chown <usrname>:<usergroup> /mnt/hgfs
getent group
在/etc/fstab添加一行:
.host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other,uid=1000,gid=1000,auto_unmount,defaults 0 0
以上的hgfs文件夾的owner,與uid/gid兩個數(shù)值,要在系統(tǒng)的用戶列表里確認(rèn)
fstab參數(shù)解釋參考鏈接,用戶名及用戶id列表參考鏈接
不知道是不是我自己拼寫錯了,開機(jī)進(jìn)入緊急模式的話,可以把a(bǔ)uto_unmount去掉就好了

相關(guān)內(nèi)容在SO,還有未解決的提問未妥善解決的提問
其他參考鏈接1參考鏈接2參考鏈接3

步驟3,下載安裝java和maven
因為centos提供的java是openjdk,而maven版本是3.0,達(dá)不到3.3的需求,需要手動安裝
下載jdk.tar.gz和maven.tar.gz放到共享文件夾中
在centos中,/opt目錄下,分別對jdk和maven用tar xzf解壓
創(chuàng)建文件夾鏈接,以便以后升級,直接升級軟鏈接即可
ln -s jdk1.8.0_192 java-oracle
ln -s apache-maven-3.6.0 apache-maven
添加環(huán)境變量JAVA_HOME
export JAVA_HOME=/opt/java-oracle/
echo "export JAVA_HOME=/opt/java-oracle/" >> ~/.bashrc
添加本地的maven repo,把用戶文件夾下的.m2文件夾添加到虛擬機(jī)共享文件夾
如果需要,在其中改好settings.xml,使用國內(nèi)源,比如ali?nexus,然后給虛擬機(jī)用:
ln -s /mnt/hgfs/.m2 ~/.m2
然后,把這幾個命令使用alternatives添加到系統(tǒng)/bin/目錄,以便直接運(yùn)行命令
alternatives --install /bin/java java /opt/java-oracle/bin/java 1
alternatives --install /bin/javac javac /opt/java-oracle/bin/javac 1
alternatives --install /bin/jps jps /opt/java-oracle/bin/jps 1
alternatives --install /bin/mvn mvn /opt/apache-maven/bin/mvn 1
alternatives --install /bin/mvnDebug mvnDebug /opt/apache-maven/bin/mvnDebug 1
alternatives --install /bin/mvnyjp mvnyjp /opt/apache-maven/bin/mvnyjp 1

安裝oracle java可參考鏈接參考鏈接2參考鏈接3參考鏈接4
使用alternatives可以參考系統(tǒng)手冊man或info,也可以參考鏈接
不手動解壓安裝,也可以嘗試maven wrapper,好像不夠方便

步驟4,安裝編譯需要的環(huán)境
對照ubuntu上的build-essentials,centos需要安裝
yum install gcc gcc-c++ make
其他hadoop需要的庫中,zstd不在標(biāo)準(zhǔn)的repo,需要添加一個epel的repo
yum install epel-release
然后把epel的地址改為清華源,注意原來的/pub改完后沒有了:
vim /etc/yum.repos.d/epel.repo
安裝hadoop需要的庫,比如:
yum install libzstd-devel snappy-devel bzip2-devel?cmake protobuf-devel openssl-devel zlib-devel

有關(guān)epel的其他參考鏈接1參考鏈接2
有關(guān)openssl-devel的參考鏈接
不使用epel就需要手動編譯的提問

步驟5,解壓并編譯
在/opt目錄使用tar xzf解壓hadoop-2.9.2-src.tar.gz
mvn package -Pdist,native -DskipTests -Dtar -Dmaven.javadoc.skip=true

編譯之后,把得到的hadoop-dist/target/hadoop-x.y.z/lib/native/libhadoop.so.1.0.0放到/opt/hadoop-x.y.z/lib/native/,就能圓滿地bin/hadoop checknative了

另外,如果想用ifconfig但找不到,可以參考鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容