[原]hadoop再次配置lzo
最近又重新进行了一次配置lzo压缩,步骤如下:
安装前,必须的工具:
lib* glibc* gcc*
ant mvn
注意:确定gcc版本,之前网上有人说不能使用超过4.4版本的gcc,我在安装过程中使用的gcc4.1.2的版本,也是正常的
操作系统名称:
Linux master 2.6.18-194.el5 #1 SMP Tue Mar 16 21:52:39 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
根据此操作系统,需要安装关联库列表:
现在在网上下载不到kevinweil-hadoop-lzo-6bb1b7f.tar.gz,变成了hadoop-lzo-master.zip,里面的内容都一样,只是压缩方式不同而已。
./configure --enable-shared
make
make install
默认安装到/usr/local/lib目录下,然后进行复制操作:
cp /usr/local/lib/liblzo2.* /usr/lib64 (64位)
cp /usr/local/lib/liblzo2.* /usr/lib (32位)
安装: lzo-2.06-1.el5.rf.x86_64.rpm和lzo-devel-2.06-1.el5.rf.x86_64.rpm
下载网址: http://pkgs.repoforge.org/lzo/
在liunx下面运行命令:
wget http://pkgs.repoforge.org/lzo/lzo-2.06-1.el5.rf.x86_64.rpm
rpm -ivh lzo-2.06-1.el5.rf.x86_64.rpm
wget http://pkgs.repoforge.org/lzo/lzo-devel-2.06-1.el5.rf.x86_64.rpm
rpm -ivh lzo-devel-2.06-1.el5.rf.x86_64.rpm
安装注意:在我的安装过程中,出现了rpm运行没有任何反应,感觉就阻塞了,通过搜索网上资料,是因为当前机器里的nfs挂载无效导致,卸载掉这个,就运行正常了。
另外就是以上安装是跟具体的操作系统名称来下载对应的rpm包的,具体内容在下载网址里自行寻找。
安装lozp-1.03.tar.gz
下载网址: http://www.lzop.org/download/
在liunx下面运行命令:
wget http://www.lzop.org/download/lzop-1.03.tar.gz
解压此文件
cd lzop-1.03
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
执行三部曲:
./configure --enable-shared
make
make install
验证是否安装成功,运行如下:
[hadoop@master install_software]$ lzop
Lempel-Ziv-Oberhumer Packer
Copyright (C) 1996 - 2010
lzop v1.03 Markus Franz Xaver Johannes Oberhumer Nov 1st 2010
Usage: lzop [-dxlthIVL19] [-qvcfFnNPkUp] [-o file] [-S suffix] [file..]
Commands:
-1 compress faster -9 compress better
-d decompress -x extract (same as -dPp)
-l list compressed file -I display system information
-t test compressed file -V display version number
-h give this help -L display software license
Options:
-q be quiet -v be verbose
-c write on standard output -oFILE write output to 'FILE'
-p write output to current dir -pDIR write to path 'DIR'
-f force overwrite of output files
-n do not restore the original file name (default)
-N restore the original file name
-P restore or save the original path and file name
-S.suf use suffix .suf on compressed files
-U delete input files after successful operation (like gzip and bzip2)
file.. files to (de)compress. If none given, try standard input.
安装kevinweil-hadoop-lzo-6bb1b7f.tar.gz,此包就是hadoop for lzo的库
下载网址: https://github.com/kevinweil/hadoop-lzo/
注意:之前的老版本可以在 https://github.com/kevinweil/hadoop-lzo/downloads下载到kevinweil-hadoop-lzo-6bb1b7f.tar.gz(现在不行了)
目前下载的包是:hadoop-lzo-master.zip,内容一样的,只是压缩方式不同
解压此包:
cd kevinweil-hadoop-lzo-6bb1b7f
export CFLAGS=-m32
export CXXFLAGS=-m32
ant compile-native
or
export CFLAGS=-m64
export CXXFLAGS=-m64
ant compile-native tar
执行成功后
cp build/hadoop-lzo-0.4.15.jar $HADOOP_HOME/lib/
cp /build/native/Linux-i386-32/lib/* $HADOOP_HOME/lib/native/Linux-i386-32/ (32位)
or
cp /build/native/Linux-amd64-64/lib/* $HADOOP_HOME/lib/native/Linux-amd64-64/ (64位)
以上操作完后,就修改hadoop配置文件相关参数:
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>
mapred-site.xml:
<property>
<name>mapred.compress.map.output</name>
<value>true</value>
</property>
<property>
<name>mapred.output.compress</name>
<value>true</value>
</property>
<property>
<name>mapred.child.env</name>
<value>JAVA_LIBRARY_PATH=/home/hadoop/hadoop-1.0.3/lib/native/Linux-amd64-64</value>
</property>
注意:如果是32位,mapred.child.env的值为:
JAVA_LIBRARY_PATH=/home/hadoop/hadoop-1.0.3/lib/native/Linux-i386-32
最后验证lzo,很幸运,hadoop for lzo有自己的验证方式,运行命令如下:
本地随便找个文件,我以文件hive-default-1151367623824834635.xml为例,先进行lzo压缩,运行命令如下:
lzop -9 hive-default-1151367623824834635.xml
就会生成hive-default-1151367623824834635.xml.lzo
然后运行命令:
mv hive-default-1151367623824834635.xml.lzo hive-default-1151367623824834635.xml.lzo_deflate
进行改名,将此文件上传到HDFS目录上,执行下面命令:
hadoop dfs -put hive-default-1151367623824834635.xml.lzo_deflate /user/hadoop/
然后执行验证命令:
hadoop jar $HADOOP_HOME/lib/hadoop-lzo-0.4.15.jar com.hadoop.compression.lzo.LzoIndexer /user/hadoop/hive-default-1151367623824834635.xml.lzo_deflate
13/11/13 11:34:35 INFO lzo.GPLNativeCodeLoader: Loaded native gpl library
13/11/13 11:34:35 INFO lzo.LzoCodec: Successfully loaded & initialized native-lzo library [hadoop-lzo rev 6bb1b7f8b9044d8df9b4d2b6641db7658aab3cf8]
[hadoop@master build]$
以上说明:hadoop平台上的lzo压缩后缀名为:lzo_deflate而不是lzo。