为何要使用压缩,压缩可以是文件的大小减小很多,节省空间;另外压缩后的文件在传输时更节省带宽。

所需软件:
1)lzo
2)hadoop-lzo
3)maven

安装编译:
1)lzo

wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz
tar zxvf lzo-2.06.tar.gz
export CFLAGS=-m64
./configure -enable-shared -prefix=/opt/compress/lzo-2.06
make && make install

 
2)maven(略)

3)hadoop-lzo

修改pom文件
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<hadoop.current.version>2.3.0</hadoop.current.version>
<hadoop.old.version>1.0.4</hadoop.old.version>
</properties>
 
export CFLAGS=-m64
export CXXFLAGS=-m64
export C_INCLUDE_PATH=/opt/modules/lzo/include
export LIBRARY_PATH=/opt/modules/lzo/lib
 
/opt/modules/apache-maven-3.2.5/bin/mvn clean package -Dmaven.test.skip=true
 
cd target/native/Linux-amd64-64
tar -cBf - -C lib . | tar -xBvf - -C ~
mv ~/libgplcompression* $HADOOP_HOME/lib/native/
cp target/hadoop-lzo-0.4.18-SNAPSHOT.jar $HADOOP_HOME/share/hadoop/common/

4)最终每台机器上要有【在$HADOOP_HOME/lib/native/下】
① 动态库文件
libgplcompression.a
libgplcompression.la
libgplcompression.so -> libgplcompression.so.0.0.0
libgplcompression.so.0 -> libgplcompression.so.0.0.0
libgplcompression.so.0.0.0
② 动态库文件需要头文件等,配置压缩也需要用到lib文件,故编译生成的压缩文件也需要
include
lib
share

lib中
liblzo2.a
liblzo2.la
liblzo2.so -> liblzo2.so.2.0.0
liblzo2.so.2 -> liblzo2.so.2.0.0
liblzo2.so.2.0.0

5)配置压缩

hadoop-env.sh
export LD_LIBRARY_PATH=/opt/modules/lzo/lib

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
<property>
 <name>io.compression.codec.lzo.class</name>
 <value>com.hadoop.compression.lzo.LzoCodec</value>
</property>
<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>
<property>
 <name>mapred.child.env</name>
 <value>LD_LIBRARY_PATH=/opt/modules/lzo/lib</value>
</property>

6)hadoop压缩验证

上传压缩文件到hdfs,运行单词计数程序
15/11/06 16:53:39 INFO client.RMProxy: Connecting to ResourceManager at dev138/192.168.3.138:8032
15/11/06 16:53:40 INFO input.FileInputFormat: Total input paths to process : 1
15/11/06 16:53:40 INFO lzo.GPLNativeCodeLoader: Loaded native gpl library from the embedded binaries
15/11/06 16:53:40 INFO lzo.LzoCodec: Successfully loaded & initialized native-lzo library [hadoop-lzo rev 123cbfa7726e887899295cd459acc6937d6f008f]
15/11/06 16:53:40 INFO mapreduce.JobSubmitter: number of splits:1
15/11/06 16:53:41 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1446798050907_0002
15/11/06 16:53:41 INFO impl.YarnClientImpl: Submitted application application_1446798050907_0002
15/11/06 16:53:41 INFO mapreduce.Job: The url to track the job: http://dev138:8088/proxy/application_1446798050907_0002/
15/11/06 16:53:41 INFO mapreduce.Job: Running job: job_1446798050907_0002
15/11/06 16:53:48 INFO mapreduce.Job: Job job_1446798050907_0002 running in uber mode : false
15/11/06 16:53:48 INFO mapreduce.Job:  map 0% reduce 0%
15/11/06 16:53:56 INFO mapreduce.Job:  map 100% reduce 0%
15/11/06 16:54:05 INFO mapreduce.Job:  map 100% reduce 100%
15/11/06 16:54:05 INFO mapreduce.Job: Job job_1446798050907_0002 completed successfully
15/11/06 16:54:05 INFO mapreduce.Job: Counters: 49

7)hbase压缩测试对比
hbase org.apache.hadoop.hbase.PerformanceEvaluation
更多hbase lzo测试见hbase性能调优之压缩测试

hadoop压缩配置的更多相关文章

  1. ubuntu下hadoop环境配置

    软件环境: 虚拟机:VMware Workstation 10 操作系统:ubuntu-12.04-desktop-amd64 JAVA版本:jdk-7u55-linux-x64 Hadoop版本:h ...

  2. 有关hadoop分布式配置详解

    linux配置ssh无密码登录 配置ssh无密码登录,先要安装openssh,如下: yum install openssh-clients 准备两台linux服务器或虚拟机,设置两台linux的ho ...

  3. [Compression] Hadoop 压缩

    0. 说明 Hadoop 压缩介绍 && 压缩格式总结 && 压缩编解码器测试 1. 介绍 [文件压缩的好处] 文件压缩的好处如下: 减少存储文件所需要的磁盘空间 加速 ...

  4. Hadoop3集群搭建之——安装hadoop,配置环境

    接上篇:Hadoop3集群搭建之——虚拟机安装 下篇:Hadoop3集群搭建之——配置ntp服务 Hadoop3集群搭建之——hive安装 Hadoop3集群搭建之——hbase安装及简单操作 上篇已 ...

  5. Hadoop安装配置

    1.集群部署介绍 1.1 Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台.以Hadoop分布式文件系统(HDFS,Hadoop Distributed Filesy ...

  6. hadoop压缩框架

    一般来说,计算机处理的数据都存在一些冗余度,同时数据中间,尤其是相邻数据间存在着相关性,所以可以通过一些有别于原始编码的特殊编码方式来保存数据,使数据占用的存储空间比较小,这个过程一般叫压缩.和压缩对 ...

  7. 解读:hadoop压缩格式

    Hadoop中用得比较多的4种压缩格式:lzo,gzip,snappy,bzip2.它们的优缺点和应用场景如下: 1). gzip压缩 优点:压缩率比较高,而且压缩/解压速度也比较快:hadoop本身 ...

  8. CentOS 7 Hadoop安装配置

    前言:我使用了两台计算机进行集群的配置,如果是单机的话可能会出现部分问题.首先设置两台计算机的主机名 root 权限打开/etc/host文件 再设置hostname,root权限打开/etc/hos ...

  9. Nginx缓存、压缩配置

    1.缓存配置 只需在http的server模块里配置即可,如: location ~.*\.(jpg|png|gif)$ { expires 30d; } location ~.*\.(css|js) ...

随机推荐

  1. AsyncTask使用注意事项

    AsyncTask是android自带的一个异步处理线程 它带了很多参数 都很方便使用 但是有一些注意事项 1: 官网说明: AsyncTasks should ideally be used for ...

  2. java版-JQuery上传插件Uploadify使用实例

    摘自:http://itindex.net/detail/47160-java-jquery-%E4%B8%8A%E4%BC%A0 运行效果: 包结构图: 后台JAVA逻辑: package com. ...

  3. easyui page添加文本,js验证码

    onLoadSuccess: function (db) { //db是后台数据的返回结果集 $.ajax({ url: "AjaxSource/Buex.ashx", data: ...

  4. JS控制文本框中的密码显示/隐藏功能

    <html> <head> <title>[荐]JS控制文本框中的密码显示/隐藏功能_网页代码站(www.6a8a.com)</title> <s ...

  5. LINUX SSH客户端的中文乱码问题

       原因在于文件/etc/sysconfig/i18n 这个文件是系统的区域语言设置, i18n是 国际化internationalization的缩写 i和n之间正好18个字母 解释: LANG= ...

  6. KEIL C51中const和code的使用

    code是KEIL C51 扩展的关键字,用code修饰的变量将会被放到CODE区里.但C语里的const关键字好像也有定义不能改变的变量的功能,这两个关键字有什么区别呢?在帮助手册里查找const, ...

  7. 挑战以Dropbox为代表的传统“同步网盘”,Seafile推出“分布式文件同步技术”打造的私有云服务

    挑战以Dropbox为代表的传统“同步网盘”,Seafile推出“分布式文件同步技术”打造的私有云服务#36氪开放日# 其他 JasonZheng • 2012-04-07 15:14 来自36氪开放 ...

  8. JS扩展方法

    JS扩展方法与C#的扩展方法非常相似,也是可以链式调用的,也是通过对某个类的扩展写法来实现.这个东西非常好用,如果将预先写好的方法放到一个js里面引用的话,那么后面写js将非常有趣. 下面给出一个例子 ...

  9. WPF制作的一个小功能,智能提示(IntelliSense)

    原文http://www.cnblogs.com/scheshan/archive/2012/06/30/2570867.html 最近WPF项目中遇到一个需求,需要给一个RichTextBox添加智 ...

  10. 扩展ArcGIS API for Silverlight/WPF 中的TextSymbol支持角度标注

    原文 http://blog.csdn.net/esricd/article/details/7587136 在ArcGIS API for Silverlight/WPF中原版的TextSymbol ...