`

hadoop上对文件进行压缩

阅读更多

 hadoop计算需要在hdfs文件系统上进行,因此每次计算之前必须把需要用到的文件(我们称为原始文件)都上传到hdfs上。文件上传到hdfs上通常有两种方法:

    a hadoop自带的dfs服务,put;

    b hadoop的API,Writer对象可以实现这一功能;

  将a、b方案进行对比,如下:

    1 空间

      方案a在hdfs上占用空间同本地,因此假设只上传日志文件,则保存一个月日志文件将消耗掉约10T空间,如果加上这期间的各种维表、事实表,将占用大约25T空间

      方案b经测试,压缩比大约为3~4:1,因此假设hdfs空间为100T,原来只能保存约4个月的数据,现在可以保存约1年

    2 上传时间

       方案a的上传时间经测试,200G数据上传约1小时

       方案b的上传时间,程序不做任何优化,大约是以上的4~6倍,但存在一定程度提升速度的余地

    3 运算时间

       经过对200G数据,大约4亿条记录的测试,如果程序以IO操作为主,则压缩数据的计算可以提高大约50%的速度,但如果程序以内存操作为主,则只能提高5%~10%的速度

    4 其它

       未压缩的数据还有一个好处是可以直接在hdfs上查看原始数据。压缩数据想看原始数据只能用程序把它导到本地,或者利用本地备份数据

    压缩格式

     按照hadoop api的介绍,压缩格式分两种:BLOCK和RECORD,其中RECORD是只对value进行压缩,一般采用BLOCK进行压缩。

    对压缩文件进行计算,需要用SequenceFileInputFormat类来读入压缩文件,以下是计算程序的典型配置代码:

JobConf conf = new JobConf(getConf(), log.class);
    conf.setJobName(“log”);
    conf.setOutputKeyClass(Text.class);//set the map output key type
    conf.setOutputValueClass(Text.class);//set the map output value type

    conf.setMapperClass(MapClass.class);
    //conf.setCombinerClass(Reduce.class);//set the combiner class ,if havenot, use Recuce class for default
    conf.setReducerClass(Reduce.class);
    conf.setInputFormat(SequenceFileInputFormat.class);//necessary if use compress

     SequenceFileInputFormat.setInputPath(new Path(your file path here));//your file path in hdfs

    接下来的处理与非压缩格式的处理一样

  • 大小: 52.8 KB
  • 大小: 47.8 KB
分享到:
评论

相关推荐

    hadoop数据输出压缩

    该格式不支持多文件压缩且不具备可分隔性,即无法将一个大文件分割成多个小文件进行独立处理。 - **Gzip**: 利用gzip工具实现DEFLATE算法,压缩后文件扩展名为`.gz`。与DEFLATE相似,Gzip也不支持多文件压缩和可...

    hadoop3.1.1native文件含zstd

    标题中的“hadoop3.1.1native文件含zstd”指的是Hadoop 3.1.1版本在CentOS 7 64位系统上编译的本地库(native库)包含了对Zstandard(简称zstd)压缩算法的支持。Zstandard是一种高效的压缩和解压缩算法,设计用于...

    hadoop/bin目录文件,含hadoop.dll + winutils.exe

    至于压缩包子文件“9.pptx”,可能是关于Hadoop、Spark在Windows环境下的使用教程或者介绍资料,可能包含了如何配置Hadoop环境、如何使用winutils.exe以及如何在Windows 7上开发和调试Spark应用程序等内容。...

    不同Hadoop版本winutils文件包

    压缩包子文件“hadoop-winutils”很可能包含了适用于不同Hadoop版本的winutils.exe文件,可能有多个版本以适应不同的Hadoop发行版。用户需要根据自己的Hadoop版本选择合适的winutils文件,然后按照上述方法进行配置...

    hadoop相关配置文件.zip

    本压缩包包含的是一系列Hadoop的核心配置文件,这些文件对于理解和管理Hadoop集群至关重要。接下来,我们将深入探讨每个配置文件及其重要选项。 首先,`core-site.xml`是Hadoop的核心配置文件,它定义了Hadoop的...

    支持snappy压缩的hadoop2.7.2

    此外,Hadoop的HDFS客户端也可以选择在上传文件时进行Snappy压缩,或者在下载时解压缩。这通常通过命令行选项或编程API实现。例如,使用HDFS shell命令,你可以这样上传一个Snappy压缩的文件: ``` hadoop fs -put -...

    hadoop2.9.0_X64的native文件

    描述中提到的“在CentOS7中进行编译”,意味着这些native文件是在这个特定的Linux发行版环境下构建的,CentOS7以其稳定性和对开源软件的良好支持,常常被用作开发和部署Hadoop集群的首选平台。一旦编译完成,这些库...

    本地hadoop支持文件.rar

    5. **格式化NameNode**:首次启动Hadoop集群时,需要对NameNode进行格式化,这会创建Hadoop文件系统的元数据。 6. **启动Hadoop服务**:通过运行start-dfs.sh和start-yarn.sh脚本启动Hadoop的DataNodes、NameNodes...

    第4章 Hadoop文件参数配置.pdf

    为了确保 Hadoop 集群的稳定运行,需要对 Hadoop 文件参数进行正确的配置。本章节将指导读者如何配置 Hadoop 文件参数,实现 Hadoop 集群的高效运行。 1. 实验目的 本实验的目的是掌握 Hadoop 文件参数的配置,...

    hadoop2.7.2 之 snappy压缩支持包.zip

    在Hadoop 2.7.2版本中,引入了对Snappy压缩算法的支持,这是一种高效的数据压缩库,尤其适合大数据环境。这个压缩支持包是针对Hadoop 2.7.2版本的,用于增强其在数据压缩方面的能力。 Snappy是由Google开发的,旨在...

    搭建hadoop集群的全部配置文件

    综上所述,该压缩包包含的Hadoop集群配置文件是搭建和管理Hadoop集群必不可少的组件,每个文件都对应着特定的功能和设置,需要根据实际的硬件环境和业务需求进行适当调整。理解并正确配置这些文件,是确保Hadoop集群...

    适合hadoop2.9.* 以及 hadoop2.7.* 的winutils.exe_hadoop.dll 配置文件

    1. **解压缩**: 首先,你需要根据你的Hadoop版本选择合适的压缩包,例如,如果你使用的是Hadoop 2.9.x,就解压缩`hadoop2.9配置文件.rar`。 2. **复制文件**: 解压后,你会找到`winutils.exe`和`hadoop.dll`。将这两...

    Java写的hadoop压缩worldcount例子

    在这个"Java写的hadoop压缩worldcount例子"中,我们主要关注的是如何利用Hadoop进行数据压缩以及实现一个简单的WordCount程序。WordCount是Hadoop入门的经典示例,它统计文本中每个单词出现的次数。 首先,Hadoop...

    hadoop压缩支持包和native 文件

    Hadoop的压缩支持包和native文件是其高效运行的关键组成部分。本文将深入探讨这两个概念,以及它们在Windows和Linux环境下的应用。 一、Hadoop压缩支持 Hadoop提供了多种内置的压缩算法,以优化数据传输和存储效率...

    hadoop-3.1.0-windows依赖文件.7z

    Hadoop 3.1.0是Hadoop发展过程中的一个重要版本,它在Hadoop 3.0的基础上进行了多项改进和优化,提升了系统的稳定性和性能。这个"hadop-3.1.0-windows"压缩包是专为在Windows环境下运行Hadoop设计的,包含了所有必要...

    【Hadoop篇08】Hadoop数据压缩1

    Hadoop数据压缩是指在Hadoop系统中对数据进行压缩,以减少存储空间和提高数据传输速度。压缩技术能够有效减少底层存储系统(HDFS)读写字节数,提高网络带宽和磁盘空间的效率。在 Hadoop下,尤其是数据规模很大和...

    Hadoop集群上Snappy压缩算法的安装配置

    Snappy 压缩算法的安装配置在 Hadoop 集群上 Snappy 压缩算法是一种高效的压缩算法,广泛应用于 Hadoop 和 HBase 等大数据处理系统中。 本篇文章将介绍 Snappy 压缩算法在 Hadoop 集群上的安装配置过程,并分享一些...

    Hadoop 2.2.0 64位native文件(重编译)

    总结来说,Hadoop 2.2.0 64位native文件是为64位Linux系统定制的,包含了Hadoop运行所必需的本地库,涵盖了JNI接口、HDFS客户端、MapReduce组件、线程库、压缩库、加密库以及内存管理优化等多个方面。在遇到与native...

Global site tag (gtag.js) - Google Analytics