热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HDFS支持的存储格式及压缩算法?

1.存储格式(1)SequenceFile以二进制键值对的形式存储数据,支持三种记录存储方式。.➢无压缩:io效率较差,相比压缩,不压缩的情况下没有什么

1.存储格式
(1) SequenceFile
以二进制键值对的形式存储数据,支持三种记录存储方式。.
➢无压缩: io效率较差,相比压缩,不压缩的情况下没有什么优势。
➢记录级压缩:对每条记录都压缩,这种压缩效率比较一 般。
➢块级压缩: 这里的块不同于HDFS中的块的概念.这种方式会将达到指定块大小的二进制数据压缩为一个块。
(2) Avro
将数据定义和数据- -起存储在一条消息中, 其中数据定义以JSON格式存储,数据以二
进制格式存储。Avro 标记用于将大型数据集分割成适合MapReduce处理的子集。
(3) RCFile
以列格式保存每个行组数据。它不是存储第一行 然后是第二行,而是存储所有行上的第
1列,然后是所行 上的第2列,以此类推。
(4) Parquet
是Hadoop的一种列存储格式,提供了高效的编码和压缩方案。
2.压缩算法
(1) Gzip 压缩
优点:压缩率比较高,而且压缩/解压速度也比较快; Hadoop 本身支持,在应用中处
理gzip格式的文件就和直接处理文本- -样:大部分linux 系统都自带gzip 命令,使用方便.
缺点:不支持split。
应用场景:当每个文件压缩之后在130M以内的(1个块大小内),都可以考虑用gzip
压缩格式。例如说一天或者一个小时的日志压缩成-一个gzip文件,运行MapReduce程序
的时候通过多个gzip 文件达到并发。Hive 程序,streaming 程序,和Java 写的
MapReduce程序完全和文本处理-一样, 压缩之后原来的程序不需要做任何修改。
(2) Bzip2 压缩
优点:支持split; 具有很高的压缩率,比gzip 压缩率都高; Hadoop 本身支持,但不
支持native; 在linux 系统下自带bzip2 命令,使用方便。
缺点:压缩/解压速度慢;不支持native.
应用场景:适合对速度要求不高,但需要较高的压缩率的时候,可以作为MapReduce
作业的输出格式:或 者输出之后的数据比较大,处理之后的数据需要压缩存档减少磁盘空
间并且以后数据用得比较少的情况:或者对单个很大的文本文件想压缩减少存储空间,同时
又需要支持split, 而且兼容之前的应用程序(即应用程序不需要修改)的情况。
(3) Lzo压缩
优点:压缩/解压速度也比较快,合理的压缩率:支持split, 是Hadoop 中最流行的压
缩格式:可以在linux 系统下安装lzop 命令,使用方便。
缺点:压缩率比gzip要低-一些; Hadoop 本身不支持,需要安装;在应用中对lzo 格
式的文件需要做一些特殊处理(为了 支持split 需要建索引,还需要指定inputformat 为lzo格式)
应用场景: - 个很大的文本文件,压缩之后还大于200M以上的可以考虑,而且单个
(4) Snappy 压缩
优点:高速压缩速度和合理的压缩率。
缺点:不支持split; 压缩率比gzip 要低; Hadoop 本身不支持,需要安装;
应用场景:当MapReduce 作业的Map 输出的数据比较大的时候,作为Map到
Reduce的中间数据的压缩格式:或者作为一个MapReduce作业的输出和另外一个
MapReduce作业的输入。


推荐阅读
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  •     这里使用自己编译的hadoop-2.7.0版本部署在windows上,记得几年前,部署hadoop需要借助于cygwin,还需要开启ssh服务,最近发现,原来不需要借助cy ... [详细]
  • Hadoop2.6.0 + 云centos +伪分布式只谈部署
    3.0.3玩不好,现将2.6.0tar.gz上传到usr,chmod-Rhadoop:hadophadoop-2.6.0,rm掉3.0.32.在etcp ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • 本文概述了JNI的原理以及常用方法。JNI提供了一种Java字节码调用C/C++的解决方案,但引用类型不能直接在Native层使用,需要进行类型转化。多维数组(包括二维数组)都是引用类型,需要使用jobjectArray类型来存取其值。此外,由于Java支持函数重载,根据函数名无法找到对应的JNI函数,因此介绍了JNI函数签名信息的解决方案。 ... [详细]
  • Mono为何能跨平台
    概念JIT编译(JITcompilation),运行时需要代码时,将Microsoft中间语言(MSIL)转换为机器码的编译。CLR(CommonLa ... [详细]
  • Question该提问来源于开源项目:react-native-device-info/react-native-device-info ... [详细]
  • 初识java关于JDK、JRE、JVM 了解一下 ... [详细]
  • importorg.apache.hadoop.hdfs.DistributedFileSystem;导入方法依赖的package包类privatevoidtestHSyncOpe ... [详细]
  • 这个问题困扰了我两天,卸载Dr.COM客户端(我们学校上网要装这个客户端登陆服务器,以后只能在网页里输入用户名和密码了),问题解决了。问题的现象:在实验室机台式机上安装openfire和sp ... [详细]
  • 什么是大数据lambda架构
    一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数 ... [详细]
author-avatar
吴静爽
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有