Hadoop LZO的安装与配置

喜你入骨 提交于 2019-12-01 03:03:17

Hadoop支持好几种压缩算法,包括:

Bzip2

Gzip

DEFLATE

Hadoop提供这些算法的Java实现,所以可以很方便的通过FileSystem API来进行文件的压缩和解压缩。这些压缩算法都有一个缺陷,那就是文件不能被分片(splittable)。这就意味着采用这些算法进行压缩的文件需要读取整个文件才能将文件解压缩。这对MapReduce会产生致命的影响,因为这意味着一个压缩文件必须由一个map来处理。这也正是LZO优越之处,LZO压缩的文件是可分片的(这要感谢Hadoop社区的不懈努力)。

LZO的安装与配置步骤如下:

1.从https://github.com/kevinweil/hadoop-lzo下载Hadoop-LZO(注意Hadoop-LZO有两个版本,分别由ClouderaTwitter维护),一般建议采用Twitter版本。

2.安装lzolzo-devel包。在联网情况下可以非常方便的进行安装。

Red Hat下通过下面的命令:


#yum install liblzo-devel


Ubuntu下通过下面的命令:


#apt-get install liblzo2-devel


如果是在断网的情况下可以到网站http://www.oberhumer.com/opensource/lzo/下载lzo源码,下载完成后通过下面的命令完成LZO的安装:


#tar -zxf lzo-2.06.tar.gz

#cd lzo-2.06

#./configure --enable-shared 

#make

#make install


安装完成后要确保.so文件放在/usr/lib/usr/lib64文件夹下面(/usr/lib/liblzo2.so /usr/lib64/liblzo2.so)。LZO需要在集群中的每一个节点进行安装。

安装完成后最好把LZOP也安装上,以便在本地使用,LZOP的下载地址:http://www.lzop.org/

3.编译和安装Hadoop-LZO

首先需要下载和安装apache-ant,这里不再做详细的介绍。然后通过下面的命令进行编译:

32位机器


#export CFLAGS=-m32

#export CXXFLAGS=-m32

#ant compile-native


64位机器


#export CFLAGS=-m64

#export CXXFLAGS=-m64

#ant compile-native tar


在编译过程中需要ivy依赖解析,可以联网活着将依赖包拷到机器上。

4.将编译好的HADOOP-LZO拷贝到Hadoop安装目录下相应的文件夹。在Hadoop-LZO的主目录下执行下面的相关命令:


#cp build/hadoop-lzo*.jar $HADOOP_HOME/lib/

#tar -cBf - -C build/hadoop-lzo-0.4.15/lib/native/ . | tar -xBvf - -C $HADOOP_HOME/lib/native


5.配置Hadoop,在core-site.xml中添加如下内容:

<property>

<name>io.compression.codecs</name>

<value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,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.测试Hadoop-Lzo是否安装成功

首先在本地压缩一个文件并将该文件putHDFS


#lzop 20120229

#hadoop fs -put 20120229.lzo /testdir/


对测试文件进行索引:


#hadoop jar hadoop-lzo-0.4.15.jar com.hadoop.compression.lzo.DistributedLzoIndexer  /testdir/20120229.lzo


查看集群上是否有20120229.lzo.index


#hadoop fs -ls /testdir/


如果索引文件存在则证明安装成功。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!