1. 程式人生 > >[hadoop系列]hadoop-gpl-compression的安裝和編譯

[hadoop系列]hadoop-gpl-compression的安裝和編譯

從Hadoop 0.20.X開始,由於lzo壓縮格式GPL形式授權的影響,lzo壓縮從hadoop釋出包中取消,轉而成為Google Code中的一個專案hadoop-gpl-compression 。本文介紹hadoop-gpl-compression的安裝和編譯。這裡之所以叫安裝和編譯,而不是編譯和安裝,是因為安裝並不一定需要編譯,安裝不成功才需要自己動手編譯。(來源:http://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

(來源:http://blog.csdn.net/inkfish)

一.hadoop-gpl-compression安裝步驟:
  1.下載hadoop-gpl-compression-0.1.0-rc0.tar.gz
  2.解壓下載的包
  3.把hadoop-gpl-compression-0.1.0.jar挪到hadoop安裝目錄的lib子目錄下

  4.把本地庫檔案挪到hadoop相應的本地庫檔案目錄下
  5.刪除下載的hadoop-gpl-compression
  6.每臺hadoop機器上執行上述步驟,也可以把本機$HADOOP_HOME目錄用scp命令分發到每一個節點。(來源:http://blog.csdn.net/inkfish)

  至此安裝完成,enjoy your lzo compression!(來源:http://blog.csdn.net/inkfish)

  但是往往安裝不會那麼一帆風順,有可能機器不帶有lzo解壓縮的庫,需要下載編譯lzo的本地類庫。(來源:http://blog.csdn.net/inkfish)

二.lzo類庫安裝步驟:
  1.檢查gcc、g++等編譯工具已經安裝,沒有安裝則執行以下命令安裝:
  2.下載lzo原始檔包
  3.解壓下載的lzo包
  4.安裝lzo包
  注:這裡需要用超級使用者許可權編譯和安裝,否則編譯安裝將會失敗。

  至此,lzo類庫編譯安裝完畢。(來源:http://blog.csdn.net/inkfish)

  但是還會有少部分使用者發現還是用不了,或者希望自己進行編譯,那麼下面繼續:(來源:http://blog.csdn.net/inkfish)

三.hadoop-gpl-compression的編譯和安裝
  0.假設hadoop-0.20.1已經安裝完畢,假設安裝目錄是$HADOOP_HOME,假設lzo類庫的安裝已經完成(具體步驟見上一段);

  1.安裝必要的包,這一步列舉的一些包沒有經過完全驗證,但是在沒裝這些包之前一直無法編譯過去,在裝了之後便以正確,但沒有精確去考證是什麼包起的作用,這裡把所有包一併列出
  2.下載hadoop-gpl-compression-0.1.0-rc0.tar.gz並解壓
  3.如果沒有安裝ant,下載並安裝,安裝過的忽略本步驟
  4.複製hadoop的類庫到hadoop-gpl-compression中
  5.設定環境變數
    若是32位系統,執行:     若是64位系統,執行:   6.執行ant進行編譯並打包   7.安裝hadoop-gpl-compression   8.刪除hadoop-gpl-compression目錄     如果下了ant且不想保留,也可以一併刪除: (來源:http://blog.csdn.net/inkfish)

  至此,hadoop-gpl-compression已經編譯並安裝完畢(來源:http://blog.csdn.net/inkfish)

四.其他事項 (來源:http://blog.csdn.net/inkfish)

  1.如果伺服器訪問外網需要代理如何設定
    執行如下命令:     其中username、password、host、port用具體值替換。當然如果密碼有不規則字元要小心,該轉義的要轉義。
  2.如果ant編譯時需要代理則需要事先設定ANT_OPTS(這一條是網上查的,沒有經過驗證)     其中username、password、host、port用具體值替換。當然如果密碼有不規則字元要小心,該轉義的要轉義。
  3.如果用的是NTLM的代理,會比較麻煩,ant將會無法通過代理,這時候需要在一個能直接訪問的區域網記憶體在一個maven庫。
   3.1修改hadoop-gpl-compression-0.1.0/build.xml
    找到行:     改為    3.2修改hadoop-gpl-compression-0.1.0/ivy/ivysettings.xml檔案
    找到行:     改為:     其中maven_repo是本地maven庫的位置。(來源:http://blog.csdn.net/inkfish)