您的位置:首页 > 运维架构

Hadoop 2.2.0安装和配置lzo

2016-07-11 12:28 399 查看
转自:http://www.iteblog.com/archives/992

 Hadoop经常用于处理大量的数据,如果期间的输出数据、中间数据能压缩存储,对系统的I/O性能会有提升。综合考虑压缩、解压速度、是否支持split,目前lzo是最好的选择。LZO(LZO是Lempel-Ziv-Oberhumer的缩写)是一种高压缩比和解压速度极快的编码,它的特点是解压缩速度非常快,无损压缩,压缩后的数据能准确还原,lzo是基于block分块的,允许数据被分解成chunk,能够被并行的解压。LZO库实现了许多有下述特点的算法:

  (1)、解压简单,速度非常快。
  (2)、解压不需要内存。
  (3)、压缩相当地快。
  (4)、压缩需要64 kB的内存。
  (5)、允许在压缩部分以损失压缩速度为代价提高压缩率,解压速度不会降低。
  (6)、包括生成预先压缩数据的压缩级别,这样可以得到相当有竞争力的压缩比。
  (7)、另外还有一个只需要8 kB内存的压缩级别。
  (8)、算法是线程安全的。
  (9)、算法是无损的。
本文针对Hadoop 2.2.0,介绍如何安装和使用lzo。

文章目录 [hide]

1 一、下载、解压并编译lzo包

2 二、安装Hadoop-LZO

3 三、配置Hadoop环境变量

4 四、如何使用

一、下载、解压并编译lzo包

  编译完lzo包之后,会在/usr/local/hadoop/lzo/生成一些文件,目录结构如下:

  将/usr/local/hadoop/lzo目录下的所有文件打包,并同步到集群中的所有机器上。

  在编译lzo包的时候,需要一些环境,可以用下面的命令安装好lzo编译环境

二、安装Hadoop-LZO

  这里下载的是Twitter hadoop-lzo,可以用Maven(如何安装Maven请参照本博客的《Linux命令行下安装Maven与配置》)进行编译。

下载后的文件名是master,它是一个zip格式的压缩包,可以进行解压:

解压后的文件夹名为hadoop-lzo-master

  当然,如果你电脑安装了git,你也可以用下面的命令去下载

hadoop-lzo中的pom.xml依赖了hadoop2.1.0-beta,由于我们这里用到的是Hadoop 2.2.0,所以建议将hadoop版本修改为2.2.0:

然后进入hadoop-lzo-master目录,依次执行下面的命令

其实在tar -cBf - -C lib . | tar -xBvf - -C ~命令之后,会在~目录下生成一下几个文件:

  其中libgplcompression.so和libgplcompression.so.0是链接文件,指向libgplcompression.so.0.0.0,将刚刚生成的libgplcompression*和target/hadoop-lzo-0.4.18-SNAPSHOT.jar同步到集群中的所有机器对应的目录。

三、配置Hadoop环境变量

  1、在Hadoop中的$HADOOP_HOME/etc/hadoop/hadoop-env.sh加上下面配置:

  2、在$HADOOP_HOME/etc/hadoop/core-site.xml加上如下配置:

  3、在$HADOOP_HOME/etc/hadoop/mapred-site.xml加上如下配置

  将刚刚修改的配置文件全部同步到集群的所有机器上,并重启Hadoop集群,这样就可以在Hadoop中使用lzo。

四、如何使用

  这里在Hive中使用一下lzo,在hive中创建一个lzo表:

如果在创建lzo表出现了如下错误:

请检查你的环境是否配置好。

然后在本地用lzo压缩一个文件,先看看users.txt的内容:

将users.txt.lzo的数据导入到lzo表里面:

好了,我们可以在Hadoop中使用lzo了!!(完)

附:linux下maven安装配置 :http://www.iteblog.com/archives/775
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: