[hadoop係列]hadoop-gpl-compression的安裝和編譯
inkfish原創,請勿商業性質轉載,轉載請注明來源(https://blog.csdn.net/inkfish )。
從Hadoop 0.20.X開始,由於lzo壓縮格式GPL形式授權的影響,lzo壓縮從hadoop發布包中取消,轉而成為Google Code中的一個項目hadoop-gpl-compression 。本文介紹hadoop-gpl-compression的安裝和編譯。這裏之所以叫安裝和編譯,而不是編譯和安裝,是因為安裝並不一定需要編譯,安裝不成功才需要自己動手編譯。(來源:https://blog.csdn.net/inkfish)
測試環境:
操作係統:Ubuntu 8.04
(來源:https://blog.csdn.net/inkfish)
Java: SUN JDK 1.6.0_16,假設已設置完環境變量$JAVA_HOME
Hadoop: hadoop-0.20.1,假設已正確安裝完畢,且安裝目錄是$HADOOP_HOME
安裝目標:hadoop-gpl-compression-0.1.0-rc0
一.hadoop-gpl-compression安裝步驟:
1.下載hadoop-gpl-compression-0.1.0-rc0.tar.gz
wget https://hadoop-gpl-compression.googlecode.com/files/hadoop-gpl-compression-0.1.0-rc0.tar.gz
2.解壓下載的包
tar -xvf hadoop-gpl-compression-0.1.0-rc0.tar.gz
3.把hadoop-gpl-compression-0.1.0.jar挪到hadoop安裝目錄的lib子目錄下
mv hadoop-gpl-compression-0.1.0/hadoop-gpl-compression-0.1.0.jar $HADOOP_HOME/lib/
4.把本地庫文件挪到hadoop相應的本地庫文件目錄下
mv hadoop-gpl-compression-0.1.0/lib/native/Linux-i386-32/* hadoop-0.20.1/lib/native/Linux-i386-32/
mv hadoop-gpl-compression-0.1.0/lib/native/Linux-amd64-64/* hadoop-0.20.1/lib/native/Linux-amd64-64/
5.刪除下載的hadoop-gpl-compression
rm -r hadoop-gpl-compression-0.1.0 hadoop-gpl-compression-0.1.0-rc0.tar.gz
6.每台hadoop機器上執行上述步驟,也可以把本機$HADOOP_HOME目錄用scp命令分發到每一個節點。(來源:https://blog.csdn.net/inkfish)
至此安裝完成,enjoy your lzo compression!(來源:https://blog.csdn.net/inkfish)
但是往往安裝不會那麼一帆風順,有可能機器不帶有lzo解壓縮的庫,需要下載編譯lzo的本地類庫。(來源:https://blog.csdn.net/inkfish)
二.lzo類庫安裝步驟:
1.檢查gcc、g++等編譯工具已經安裝,沒有安裝則執行以下命令安裝:
sudo apt-get install g++
sudo apt-get install gcc
2.下載lzo源文件包
wget https://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz
3.解壓下載的lzo包
tar -xvf lzo-2.03.tar.gz
4.安裝lzo包
sudo ./configure
sudo make
sudo make install
注:這裏需要用超級用戶權限編譯和安裝,否則編譯安裝將會失敗。
至此,lzo類庫編譯安裝完畢。(來源:https://blog.csdn.net/inkfish)
但是還會有少部分用戶發現還是用不了,或者希望自己進行編譯,那麼下麵繼續:(來源:https://blog.csdn.net/inkfish)
三.hadoop-gpl-compression的編譯和安裝
0.假設hadoop-0.20.1已經安裝完畢,假設安裝目錄是$HADOOP_HOME,假設lzo類庫的安裝已經完成(具體步驟見上一段);
1.安裝必要的包,這一步列舉的一些包沒有經過完全驗證,但是在沒裝這些包之前一直無法編譯過去,在裝了之後便以正確,但沒有精確去考證是什麼包起的作用,這裏把所有包一並列出
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install gobjc
sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install libtool
sudo apt-get install libcompress-lzo-perl
sudo apt-get install lzop
sudo apt-get install liblzo2-dev
2.下載hadoop-gpl-compression-0.1.0-rc0.tar.gz並解壓
wget https://hadoop-gpl-compression.googlecode.com/files/hadoop-gpl-compression-0.1.0-rc0.tar.gz
tar -xvf hadoop-gpl-compression-0.1.0-rc0.tar.gz
3.如果沒有安裝ant,下載並安裝,安裝過的忽略本步驟
wget https://www.apache.org/dist/ant/binaries/apache-ant-1.8.0RC1-bin.tar.gz
tar -xvf apache-ant-1.8.0RC1-bin.tar.gz
4.複製hadoop的類庫到hadoop-gpl-compression中
cp hadoop-0.20.1/*.jar hadoop-gpl-compression-0.1.0/lib/
5.設置環境變量
若是32位係統,執行:
export CFLAGS=-m32
export CXXFLAGS=-m32
若是64位係統,執行:
export CFLAGS=-m64
export CXXFLAGS=-m64
6.執行ant進行編譯並打包
sudo apache-ant-1.8.0RC1/bin/ant compile-native tar
7.安裝hadoop-gpl-compression
tar -xvf hadoop-gpl-compression-0.1.0/build/hadoop-gpl-compression-0.1.0-dev.tar.gz
mv hadoop-gpl-compression-0.1.0-dev/hadoop-gpl-compression-0.1.0-dev.jar $HADOOP_HOME/lib/
mv hadoop-gpl-compression-0.1.0-dev/lib/native/Linux-i386-32/* hadoop-0.20.1/lib/native/Linux-i386-32/
mv hadoop-gpl-compression-0.1.0-dev/lib/native/Linux-amd64-64/* hadoop-0.20.1/lib/native/Linux-amd64-64/
8.刪除hadoop-gpl-compression目錄
sudo rm -r hadoop-gpl-compression-0.1.0*
如果下了ant且不想保留,也可以一並刪除:
rm -r apache-ant-1.8.0RC1(來源:https://blog.csdn.net/inkfish)
至此,hadoop-gpl-compression已經編譯並安裝完畢(來源:https://blog.csdn.net/inkfish)
四.其他事項 (來源:https://blog.csdn.net/inkfish)
1.如果服務器訪問外網需要代理如何設置
執行如下命令:
export http_proxy=https://username:password@host:port
其中username、password、host、port用具體值替換。當然如果密碼有不規則字符要小心,該轉義的要轉義。
2.如果ant編譯時需要代理則需要事先設置ANT_OPTS(這一條是網上查的,沒有經過驗證)
export ANT_OPTS="-Dhttp.proxyHost=host -Dhttp.proxyPort=port -Dhttp.proxyUserName=username -Dhttp.proxyPassword=password"
其中username、password、host、port用具體值替換。當然如果密碼有不規則字符要小心,該轉義的要轉義。
3.如果用的是NTLM的代理,會比較麻煩,ant將會無法通過代理,這時候需要在一個能直接訪問的局域網內存在一個maven庫。
3.1修改hadoop-gpl-compression-0.1.0/build.xml
找到行:
<property name="ivy_repo_url" value="https://repo2.maven.org/maven2/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar"/>
改為
<property name="ivy_repo_url" value="https://maven_repo/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar"/>
3.2修改hadoop-gpl-compression-0.1.0/ivy/ivysettings.xml文件
找到行:
value="https://repo1.maven.org/maven2/"
改為:
value="https://maven_repo/"
其中maven_repo是本地maven庫的位置。(來源:https://blog.csdn.net/inkfish)
最後更新:2017-04-02 04:01:45