You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark集群作业报错:Parquet文件part-00005不存在求助

Spark集群模式下Parquet分片不存在问题排查

在10节点Spark+Hadoop集群(版本2.4.4,集群模式)中重复执行作业均失败,抛出SparkException,提示Parquet文件的part-00005分片不存在。作业核心流程为:从HDFS读取文件转换为DataSet,写入HDFS为Parquet文件,随后读取该文件执行聚合操作。

作业代码

System.out.println("Creating parquet file from the created RDD...");
Dataset<Row> testDF = spark.createDataFrame(testRDD, Test.class);

System.out.println("Writing to parquet file...");
testDF.write().mode(SaveMode.Overwrite).parquet(inputFile + ".parquet");

System.out.println("Loading parquet file to a Java Dataset...");
Dataset<Row> parquetFileDF = spark.read().parquet(inputFile + ".parquet");
parquetFileDF.createOrReplaceTempView("Test");
Dataset<Row> df1 = spark.sql(query);

报错详情

Caused by: org.apache.spark.SparkException: Job aborted due to stage failure: 
Task 3 in stage 2.0 failed 4 times, most recent failure: Lost task 3.3 in stage 2.0 (TID 44, 172.0.0.0, executor 4): 
java.io.FileNotFoundException: File file:/home/user/spark-2.4.4-bin-hadoop2.7/work/driver-20230223072100-0000/CP712292-202302171800-23.0.0.0-312-1676688839-filter.parquet/part-00005-dd53c462-fc3b-4c76-b4b4-42afd8aedcca-c000.snappy.parquet does not exist

排查方向

  • 路径配置错误:本地路径替代HDFS路径
    报错路径为file:/home/user/...,属于本地文件系统路径,但集群模式下作业应读写HDFS。检查inputFile变量值,确认是否为HDFS完整路径(如hdfs://namenode:9000/xxx/xxx)。集群中driver与executor本地文件系统隔离,若写入本地路径,仅执行写入任务的executor本地有文件,其他节点无法访问,导致读取失败。

  • 写入未完成即触发读取
    Spark写入Parquet的操作虽为action,但可能存在元数据未及时同步的情况。可在写入后调用spark.catalog.refreshByPath(inputFile + ".parquet"),强制刷新路径元数据,确保读取时能获取完整的文件列表。

  • 文件权限问题
    登录集群执行hdfs dfs -ls <parquet完整路径>,确认part-00005分片是否存在,同时检查目录及文件的权限设置,确保executor运行用户具备读取权限。权限不足时,也可能触发文件不存在的报错。

  • 元数据缓存干扰
    读取Parquet前,添加配置禁用元数据缓存:

    Dataset<Row> parquetFileDF = spark.read()
        .option("spark.sql.parquet.cacheMetadata", "false")
        .parquet(inputFile + ".parquet");
    

    强制Spark重新扫描目标目录,获取最新的文件信息。

  • 节点磁盘异常
    检查报错中提到的executor节点(172.0.0.0,executor4)的磁盘状态,确认是否存在磁盘空间不足、文件系统损坏或临时文件被清理的情况。若写入时误使用本地路径,该节点的磁盘问题可能导致分片文件丢失。

内容的提问来源于stack exchange,提问作者Arjun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 20:45:40