大于 HDFS 中块大小的文件

Geo*_*ler 2 hadoop hdfs apache-spark

众所周知,写入大于 HDFS 块大小的单个文件并不是最佳选择,对于许多非常小的文件也是如此。

但是,在repartition('myColumn)Spark 中执行操作时,它将为每个项目(假设一天)创建一个分区,其中包含所有记录(作为单个文件),其大小可能为几 GB(假设 20GB),而 HDFS 块大小配置为为 256 MB。

文件太大真的不好吗?当读回文件时(假设它是一个可分割的文件,如 parquet 或带有 gzip 或 zlib 压缩的 orc),spark 正在为>> 1每个文件创建任务,即这是否意味着我不需要担心指定maxRecordsPerFile/文件大小大于 HDFS 块大小?

cri*_*007 5

在 HDFS 中,拥有可拆分格式的单个大文件是一件好事。名称节点必须维护更少的文件引用,并且有更多的块来并行处理。

事实上,考虑到 20 GB 可以装在便宜的闪存驱动器上,就 Hadoop 而言仍然不算大