閱讀881 返回首頁    go 阿裏雲 go 技術社區[雲棲]


[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
  Java:  SUN JDK 1.6.0_16,假設已設置完環境變量$JAVA_HOME
  Hadoop: hadoop-0.20.1,假設已正確安裝完畢,且安裝目錄是$HADOOP_HOME
  安裝目標:hadoop-gpl-compression-0.1.0-rc0
(來源:https://blog.csdn.net/inkfish)

一.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

  上一篇:go Java中List效率的比較
  下一篇:go 讓技術人員看得懂的流程(3)——領域模型