hadoop-lzo 安裝配置


       在hive中要想使用lzo的格式,需要配置安裝好lzo工具並且在hadoop的core-site.xml與mapred-site.xml中配置相應的配置

 

一、編譯安裝lzo與lzop

    在集群的每一台主機上都需要編譯安裝!!!

    1.下載編譯安裝lzo文件

       http://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz 

      版本可以下載最新的  http://www.oberhumer.com/opensource/lzo/download

      編譯安裝(保證主機上有gcc與g++)

      

tar -xvzf   lzo-2.10.tar.gz

cd lzo-2.10

./configure --enable-shared

make -j 10

make install

cp /usr/local/lib/*lzo* /usr/lib

    安裝完成后需要將 cp部分文件到/usr/lib中,這個步驟不做會拋    lzop: error while loading shared libraries: liblzo2.so.2: cannot open shared object file: No such file or directory

 

  2.下載編譯lzop    

      http://www.lzop.org/download/lzop-1.04.tar.gz 

      最新版選擇   http://www.lzop.org/download/ 

   

tar -xvzf lzop-1.04.tar.gz 

cd lzop-1.04 

./configure 

make -j 10 

make install

 

二、安裝、編譯hadoop-lzo-master

 需在linux環境中安裝,在windows上編譯不過

 wget https://github.com/twitter/hadoop-lzo/archive/master.zip 

        

      解壓:

unzip master.zip 

cd hadoop-lzo-master/

    

     編輯pom.xml修改hadoop的版本號與你集群中hadoop版本一致    

 <hadoop.current.version>2.9.3</hadoop.current.version>

   檢查所在主機是否有maven,如果沒有需要安裝,如下:

   

 wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

tar -zxvf apache-maven-3.5.4-bin.tar.gz

vim /etc/profile

添加環境變量:
MAVEN_HOME=/usr/local/apache-maven-3.5.4
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin

保存退出profile

source /etc/profile

 

   導入hadoop-lzo編譯時需要路徑信息

  

export CFLAGS=-m64

export CXXFLAGS=-m64

修改為自己hadoop的實際路徑
export C_INCLUDE_PATH=/usr/local/hadoop-2.9.1/lzo/include

export LIBRARY_PATH=/usr/local/hadoop-2.9.1/lzo/lib

  

  maven編譯安裝

mvn clean package -Dmaven.test.skip=true

 

等待。。。

編譯安裝沒有異常結束后往下繼續     PS:如果在mvn這里出現異常,請解決后再繼續

 

編譯成功后會有target文件

 

cd target/native/Linux-amd64-64/

mkdir ~/hadoop-lzo-files
tar -cBf - -C lib . | tar -xBvf - -C ~/hadoop-lzo-files

 

在 ~/hadoop-lzo-files 目錄下產生幾個文件,執行cp

 cp ~/hadoop-lzo-files/libgplcompression*  $HADOOP_HOME/lib/native/ 

注意!!!上面這一步的cp文件也要同步到集群其他主機的hadoop的對應目錄下

 

cp  hadoop-lzo的jar包到hadoop目錄

cp target/hadoop-lzo-0.4.21-SNAPSHOT.jar $HADOOP_HOME/share/hadoop/common/

注意!!!上面這一步的cp文件也要同步到集群其他主機的hadoop的對應目錄下

 

 

三、配置hadoop配置文件

    在hadoop的core-site.xml中添加

    vim core-site.xml

<property>  
    <name>io.compression.codecs</name>  
    <value>org.apache.hadoop.io.compress.GzipCodec,  
              org.apache.hadoop.io.compress.DefaultCodec,  
              com.hadoop.compression.lzo.LzoCodec,  
              com.hadoop.compression.lzo.LzopCodec,  
              org.apache.hadoop.io.compress.BZip2Codec  
    </value>  
</property>  
<property>  
    <name>io.compression.codec.lzo.class</name>  
    <value>com.hadoop.compression.lzo.LzoCodec</value>  
</property>

 

在mapred-site.xml中添加

vim mapred-site.xml

<property>    
    <name>mapred.compress.map.output</name>    
    <value>true</value>    
</property>
<property>    
    <name>mapred.map.output.compression.codec</name>    
    <value>com.hadoop.compression.lzo.LzoCodec</value>    
</property> 

 

 注意!!!上面修改的core-xite.xml與mapred-site.xml文件也要同步到集群其他主機的hadoop的對應目錄下

 

最后重啟集群!!!

 

檢驗是否成功

在hive中創建lzo格式的表

create table lzo-tmp(id int,name string) STORED AS INPUTFORMAT 'com.hadoop.mapred.DeprecatedLzoTextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat';

插入數據,並且可以selete到數據,說明成功,如果沒有重啟集群或者沒有重新開啟新的hive的client端的話可能會拋(當在hive中查詢時)

 Failed with exception java.io.IOException:java.io.IOException: No LZO codec found, cannot run 

 

 

至此hadoop-lzo配置完成

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM