hadoop中的序列文件是什么?
What is sequence file in hadoop?
我是Map-reduce新手,想了解什么是序列文件数据输入?看了Hadoop这本书,但是看不懂。
首先我们应该了解SequenceFile试图解决什么问题,然后SequenceFile如何帮助解决这些问题。
在 HDFS 中
- SequenceFile是Hadoop中小文件问题的解决方案之一。
- 小文件明显小于 HDFS 块大小 (128MB)。
- HDFS中的每个文件、目录、块都以对象表示,占用150字节。
- 1000万个文件,会占用NameNode大约3GB的内存。
- 十亿个文件不可行。
在 MapReduce 中
Map 任务通常一次处理一个输入块(使用默认的 FileInputFormat)。
文件数量越多,需要的Map task数量越多,作业时间也会越慢。
小文件场景
- 这些文件是一个更大的逻辑文件的片段。
- 文件本来就很小,例如图片。
这两种情况需要不同的解决方案。
- 对于第一个,编写一个程序将小文件连接在一起。(请参阅 Nathan Marz 的 post 关于一个名为 Consolidator 的工具,它就是这样做的)
- 对于第二个,需要某种容器以某种方式对文件进行分组。
Hadoop 中的解决方案
HAR 文件
- 引入 HAR(Hadoop Archives) 以缓解大量文件对名称节点内存造成压力的问题。
- HAR 可能最好仅用于存档目的。
序列文件
- SequenceFile的概念是把每个小文件放到一个更大的单个文件中。
例如,假设有10,000个100KB的文件,那么我们可以编写一个程序将它们放入一个SequenceFile中,如下所示,其中可以使用文件名作为键,内容作为值。
(来源:csdn.net)
一些好处:
- NameNode 上需要的内存数量较少。继续以 10,000 个 100KB 文件为例,
- 在使用SequenceFile之前,10,000个对象占用NameNode中大约4.5MB的RAM。
- 使用SequenceFile后,1GB的SequenceFile,8个HDFS block,这些对象在NameNode中占用了大约3.6KB的RAM。
- SequenceFile 是可拆分的,因此适合 MapReduce。
- SequenceFile 支持压缩。
支持压缩,文件结构取决于压缩类型。
我是Map-reduce新手,想了解什么是序列文件数据输入?看了Hadoop这本书,但是看不懂。
首先我们应该了解SequenceFile试图解决什么问题,然后SequenceFile如何帮助解决这些问题。
在 HDFS 中
- SequenceFile是Hadoop中小文件问题的解决方案之一。
- 小文件明显小于 HDFS 块大小 (128MB)。
- HDFS中的每个文件、目录、块都以对象表示,占用150字节。
- 1000万个文件,会占用NameNode大约3GB的内存。
- 十亿个文件不可行。
在 MapReduce 中
Map 任务通常一次处理一个输入块(使用默认的 FileInputFormat)。
文件数量越多,需要的Map task数量越多,作业时间也会越慢。
小文件场景
- 这些文件是一个更大的逻辑文件的片段。
- 文件本来就很小,例如图片。
这两种情况需要不同的解决方案。
- 对于第一个,编写一个程序将小文件连接在一起。(请参阅 Nathan Marz 的 post 关于一个名为 Consolidator 的工具,它就是这样做的)
- 对于第二个,需要某种容器以某种方式对文件进行分组。
Hadoop 中的解决方案
HAR 文件
- 引入 HAR(Hadoop Archives) 以缓解大量文件对名称节点内存造成压力的问题。
- HAR 可能最好仅用于存档目的。
序列文件
- SequenceFile的概念是把每个小文件放到一个更大的单个文件中。
例如,假设有10,000个100KB的文件,那么我们可以编写一个程序将它们放入一个SequenceFile中,如下所示,其中可以使用文件名作为键,内容作为值。
(来源:csdn.net)一些好处:
- NameNode 上需要的内存数量较少。继续以 10,000 个 100KB 文件为例,
- 在使用SequenceFile之前,10,000个对象占用NameNode中大约4.5MB的RAM。
- 使用SequenceFile后,1GB的SequenceFile,8个HDFS block,这些对象在NameNode中占用了大约3.6KB的RAM。
- SequenceFile 是可拆分的,因此适合 MapReduce。
- SequenceFile 支持压缩。
- NameNode 上需要的内存数量较少。继续以 10,000 个 100KB 文件为例,
支持压缩,文件结构取决于压缩类型。