apache-spark - Spark 流: avoid small files in HDFS

标签 apache-spark hdfs spark-streaming

我有一个 Spark Streaming 应用程序,它将其输出写入 HDFS。

我可以采取哪些预防措施和策略来确保此过程不会生成太多小文件并在 HDFS Namenode 中造成内存压力。 Apache Spark 是否提供任何预构建的解决方案来避免 HDFS 中出现小文件。

最佳答案

没有。 Spark不提供任何此类解决方案。

你可以做什么:

  1. 增加批处理间隔 - 这不能保证任何结果 - 但仍有更高的机会。尽管这里的权衡是流式传输将具有更大的延迟
  2. 手动管理它。例如,在每个批处理中,您可以计算 RDD 的大小并累积 RDD,除非它们满足您的大小要求。然后你只需联合 RDD 并写入磁盘。这会意外地增加延迟,但会保证有效的空间利用

关于apache-spark - Spark 流: avoid small files in HDFS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50704286/

相关文章:

hadoop - Hive外部表可以检测HDFS中的新Parquet文件吗

hadoop - PyArrow 0.16.0 fs.HadoopFileSystem 抛出 HDFS 连接失败

python - PySpark Streaming 示例似乎没有终止

apache-spark - 获取 Spark Dataframe 中特定单元格的值

apache-spark - 在没有互联网访问的服务器上安装 Delta Lake 库

amazon-web-services - 有没有办法在 AWS Glue 中将多个 --conf 设置为作业参数?

hadoop - 如何设置用户特定的HDFS垃圾回收间隔?

apache-spark - 以 Kafka 作为源重新启动流式查询时的数据丢失情况

java - 获取 java.lang.IllegalArgumentException : requirement failed while calling Sparks MLLIB StreamingKMeans from java application

apache-spark - 人们在谈论Hadoop,Spark和大数据时, “intermediate results”是什么意思?