配置hadoop集群的lzo压缩

MR-Job中使用lzop详见MR案例:Job中使用Lzo压缩

1). 配置前的环境准备

# yum -y install  lzo-devel zlib-devel  gcc autoconf automakelibtool

2). (all) 在集群的所有节点上安装Lzo库

 下载、解压,然后编译。并将/usr/local/hadoop/lzo-2.06目录下的所有文件打包,并同步到集群中的所有机器上。相关命令:

 # tar -zxvf lzo-2.06.tar.gz
 # cd lzo-2.06 
 # export CFLAGS=-m64
 # ./configure --enable-shared 
 # make
 # make install 

3). Lzo库文件被默认安装到了/usr/local/lib,我们需要进一步指定lzo库文件的路径。两个方法
 3.1. 拷贝/usr/local/lib目录下的lzo库文件到/usr/lib(32位平台),或/usr/lib64(64位平台)

#cp /usr/local/lib/liblzo2.* /usr/lib64 

 3.2. 在/etc/ld.so.conf.d/目录下新建lzo.conf文件,写入lzo库文件的路径,然后运行/sbin/ldconfig -v,使配置生效

#vi /etc/ld.so.conf.d/lzo.conf
  /usr/local/lib
# /sbin/ldconfig -v

4). 编译安装Hadoop Lzo本地库以及Jar包
 

 采用twitter的下载地址,解压文件

unzip hadoop-lzo-master.zip

 4.1.修改 pom.xml 文件,即hadoop的当前版本

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <hadoop.current.version>2.2.0</hadoop.current.version>
    <hadoop.old.version>1.0.4</hadoop.old.version>
</properties>

 4.2.hadoop-lzo-master.zip文件相关操作

cd hadoop-lzo-master
export CFLAGS=-m64 
export CXXFLAGS=-m64 
export C_INCLUDE_PATH=/usr/local/include/lzo 
export LIBRARY_PATH=/usr/local/lib 
//预先安装好maven mvn clean package
-Dmaven.test.skip=true

 4.3.把target/native/Linux-amd64-64/lib下的全部文件拷贝到${HADOOP_HOME}/lib/native

[root@ncst target]# cd native/Linux-amd64-64
[root@ncst Linux-amd64-64]# tar -cBf - -C lib . | tar -xBvf - -C ~
[root@ncst ~]# cp ~/libgplcompression* $HADOOP_HOME/lib/native/

 4.4.然后拷贝JAR包

cp hadoop-lzo-master/target/hadoop-lzo-0.4.20-SNAPSHOT.jar /opt/hadoop-2.2.0/share/hadoop/common/lib

5). 对于Hbase启用Lzo

cp $HADOOP_HOME/lib/native/Linux-amd64-64/* $HBASE_HOME/lib/native/Linux-amd64-64

 5.1.修改:hbase-env.sh

exportHBASE_LIBRARY_PATH=$HBASE_LIBRARY_PATH:$HBASE_HOME/lib/native/Linux-amd64-64/:/usr/local/lib/

6). 修改配置文件

 6.1.在hadoop-env.sh中加入

export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native

 6.2.在core-site.xml

<!-- 配置 Hadoop压缩包 --> 
<property> 
    <name>io.compression.codecs</name>
    <value>org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.BZip2Codec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec</value> 
</property> 
<property>  
    <name>io.compression.codec.lzo.class</name>
    <value>com.hadoop.compression.lzo.LzoCodec</value>
</property>

 6.3.在mapred-site.xml

<property> 
    <name>mapreduce.map.output.compress</name> 
    <value>true</value> 
</property> 

<property>       
    <name>mapreduce.map.output.compress.codec</name>        
    <value>com.hadoop.compression.lzo.LzoCodec</value>       
</property> 
 
<property> 
     <name>mapred.child.env</name>  
     <value>LD_LIBRARY_PATH=/usr/local/lib</value>  
</property>

7). 安装lzop

 Lzop是使用lzo库写的一个程序,通过shell命令直接可以压缩、解压缩文件。下载地址

tar zxvf lzop-1.03.tar.gz
cd lzop-1.03
#  exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
# ./configure 
#  make 
#  makeinstall 

 

posted @ 2015-08-27 18:25  skyl夜  阅读(1675)  评论(0编辑  收藏  举报