hadoop大数据集

时间:2014-08-03 14:16:19

标签: hadoop bigdata

什么使数据集大?它是文件集还是文件集?如果我将文件上传到hdfs,那么name节点保存三个重要的元信息,如文件名,总块和文件大小,每个信息包含150个字节,变为450个字节。如果我们上传大量相同数据的文件,则必须增加名称节点内存。

我在这里很困惑。一个文件是否应该更大,如1 TB或文件集合?

我在互联网上看到了大量的数据集,但从未发现一个文件甚至可能是200 GB。有些文件的大小为200 GB。 你能解释一下吗?

1 个答案:

答案 0 :(得分:1)

小文件是从here

读取的hadoop处理的问题

小文件和HDFS的问题

小文件是一个明显小于HDFS块大小的文件(默认为64MB)。如果你要存储小文件,那么你可能有很多文件(否则你不会转向Hadoop),问题是HDFS无法处理大量文件。

HDFS中的每个文件,目录和块都表示为namenode内存中的一个对象,根据经验,每个对象占用150个字节。因此,每个使用一个块的1000万个文件将使用大约3千兆字节的内存。超出此级别的扩展是当前硬件的问题。当然十亿个文件是不可行的。

小文件和MapReduce的问题

Map任务通常一次处理一个输入块(使用默认的FileInputFormat)。如果文件很小并且有很多文件,那么每个地图任务处理的输入都很少,而且还有更多的地图任务,每个任务都会增加额外的簿记开销。将1GB文件分成16个64MB块和10,000个左右100KB文件。 10,000个文件各使用一个映射,作业时间比单个输入文件的等效数据慢几十或几百倍。

参考: http://blog.cloudera.com/blog/2009/02/the-small-files-problem/

希望有所帮助