【发布时间】:2017-03-24 10:20:32
【问题描述】:
为了减少NameNode分配的块数。我正在尝试将一些小文件连接到 128MB 文件。这些小文件是gz格式的,128MB的文件也必须是gz格式的。
为此,我得到所有小文件的总大小,并将这个总大小(以 MB 为单位)除以 128 得到我需要的文件数。
然后我执行rdd.repartition(nbFiles).saveAsTextFile(PATH,classOf[GzipCodec])
问题是我的输出目录大小比我的输入目录大小大(高出 10%)。我使用默认和最佳压缩级别进行了测试,我总是得到更高的输出大小。
我不知道为什么我的输出目录比输入目录高,但我想这与我正在重新分区输入目录的所有文件有关。
有人可以帮我理解为什么我会得到这个结果吗?
谢谢:)
【问题讨论】:
-
文件数等于 nbFiles ?
-
nbFiles 是我将在输出中生成的文件数,以具有 128MB 大小的文件。 (sumSize / 128 MB)
标签: performance file apache-spark namenode