[译]SequenceFile、MapFile、SetFile、ArrayFile、BloomMapFile

Apache Hadoop的SequenceFile提供了一种把数据以二进制key-value对的形式保存到hdfs上的方式。跟其他key-value

数据结构相比(比如B-Tree),SequenceFile不能修改、删除数据,也不能在数据中间插入数据。SequenceFile只能往尾

部追加数据。

SequenceFile提供了三种存储形式:

1.Uncompressed Format    :无压缩格式
2.Record Compressed      :记录压缩格式
3.Block Compressed       :块压缩格式

这三种存储格式的header部分都是相同的。他们header部分都包含如下信息,这些信息将被SequenceFile.Reader读取。

1.header部分包括key和value的class类型,SequenceFile.Reader会通过读取这两个属性并通过反射将其实例化;

2.version包括sequenceFile的version信息;

3.Is Compressed用来指定是否是Record Compressed;

4.Is Block Compressed用来指定是否是Block Compressed
5.MetaData是一个key-value的列表结构,可以用来存储文件的元数据。key-value对只能是<Text,Text>类型的。而且该信息
  是在SequenceFile.Writer的构造方法写入的。无法修改。
  
6.

未完待续。。。

[译]SequenceFile、MapFile、SetFile、ArrayFile、BloomMapFile,布布扣,bubuko.com

时间: 2024-10-05 23:43:08

[译]SequenceFile、MapFile、SetFile、ArrayFile、BloomMapFile的相关文章

MapFile

MapFile是排序后的SequenceFile, 这个排序是由开发者来保证的, 不是内存实现. 相当于对key作了一个分块索引,  只针对key. 缺点 1.文件不支持复写操作,不能向已存在的SequenceFile(MapFile)追加存储记录2.当write流不关闭的时候,没有办法构造read流.也就是在执行文件写操作的时候,该文件是不可读取的

hadoop IO操作

1.什么是数据完整性 用户希望存储和处理数据的时候,不会有任何损失或者损坏. hadoop提供两种校验: 1.校验和(常见循环冗余校验CRC-32) 2.运行后台进程来检测数据块 2.基本的基于文件的数据结构 在处理小文件的时候,为了避免多次打开关闭流耗费计算资源,hdfs提供了两种类型的容器SequenceFile和MapFile. SequenceFile: SequenceFile由一系列的二进制key/value组成,key/value必须是可序列化.可持久化的键值对. key为小文件按

Hadoop2.6.0学习笔记(九)SequenceFile和MapFile

鲁春利的工作笔记,谁说程序员不能有文艺范? 本文出自 "闷葫芦的世界" 博客,请务必保留此出处http://luchunli.blog.51cto.com/2368057/1717819

Hadoop 中SequenceFile的简介

概念 SequenceFile是一个由二进制序列化过的key/value的字节流组成的文本存储文件,它可以在map/reduce过程中的input/output 的format时被使用.在map/reduce过程中,map处理文件的临时输出就是使用SequenceFile处理过的. 所以一般的SequenceFile均是在FileSystem中生成,供map调用的原始文件. 特点 SequenceFile是 Hadoop 的一个重要数据文件类型,它提供key-value的存储,但与传统key-v

Hadoop SequenceFile数据结构介绍及读写

在一些应用中,我们需要一种特殊的数据结构来存储数据,并进行读取,这里就分析下为什么用SequenceFile格式文件. Hadoop SequenceFile Hadoop提供的SequenceFile文件格式提供一对key,value形式的不可变的数据结构.同时,HDFS和MapReduce job使用SequenceFile文件可以使文件的读取更加效率. SequenceFile的格式 SequenceFile的格式是由一个header 跟随一个或多个记录组成.前三个字节是一个Bytes S

SequenceFile文件

SequenceFile文件是Hadoop用来存储二进制形式的key-value对而设计的一种平面文件(Flat File).目前,也有不少人在该文件的基础之上提出了一些HDFS中小文件存储的解决方案,他们的基本思路就是将小文件进行合并成一个大文件,同时对这些小文件的位置信息构建索引.不过,这类解决方案还涉及到Hadoop的另一种文件格式——MapFile文件.SequenceFile文件并不保证其存储的key-value数据是按照key的某个顺序存储的,同时不支持append操作. 在Sequ

基于文件的数据结构:关于MapFile

MapFile是已经排过序的SequenceFile,它有索引,所以可以按键查找 1.MapFile的写操作 MapFile的写操作类似于SequenceFile的写操作.新建一个MapFile.Writer实例,然后调用append()方法顺序写入文件内容.如果不按顺序写入,就抛出一个IOException异常.键必须是WritableComparable类型的实例,值必须是Writable类型的实例. 写入MapFile,程序如下: package com.lcy.hadoop.io; im

基于mapfile的小文件存储方案

1.采用mapfile存储小文件,会自动创建两个sequenceFile文件:data和index.数据存储在data中,index存储data中存储的文件的key(排好序的).这样可以实现小文件的合并存储,并且实现按key的快速索引. 2.代码: 文件存储: /**     * 将指定的文件写入文件系统,指定次数     * @param p    写入路径     * @param image    写入文件内容     * @param count    写入数量     * @throw

译:SOS_SCHEDULER_YIELD类型等待在虚拟机环境中的增多

原文出处:Increased SOS_SCHEDULER_YIELD waits on virtual machines 注: 原文的用词是Increased,想译作增强(增长),或者加强,这么译起来是褒义词,而原文要表达的Increased并没有褒义的含义,最起码是一个中性的含义,想来想起用一个“滋长”偏编译的含义还是比较合适的,感觉还是有点过于贬义了,还是用最通俗的增多吧.个人英语水平有限,另外就是对于文中提到的“rdtsc周期”也不是非常清楚,翻译的也不是很清楚,权当是自娱自乐.总是原文的