apache/hadoop · error · IOException

Not a file: {fileName}

Error message

Not a file: {fileName}

What it means

Error "Not a file: {fileName}" thrown in apache/hadoop.

Source

Thrown at hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/input/NLineInputFormat.java:96

   * @see FileInputFormat#getSplits(JobContext)
   */
  public List<InputSplit> getSplits(JobContext job)
  throws IOException {
    List<InputSplit> splits = new ArrayList<InputSplit>();
    int numLinesPerSplit = getNumLinesPerSplit(job);
    for (FileStatus status : listStatus(job)) {
      splits.addAll(getSplitsForFile(status,
        job.getConfiguration(), numLinesPerSplit));
    }
    return splits;
  }
  
  public static List<FileSplit> getSplitsForFile(FileStatus status,
      Configuration conf, int numLinesPerSplit) throws IOException {
    List<FileSplit> splits = new ArrayList<FileSplit> ();
    Path fileName = status.getPath();
    if (status.isDirectory()) {
      throw new IOException("Not a file: " + fileName);
    }
    LineReader lr = null;
    try {
      final FutureDataInputStreamBuilder builder =
          fileName.getFileSystem(conf).openFile(fileName);
      FutureIO.propagateOptions(builder, conf,
          MRJobConfig.INPUT_FILE_OPTION_PREFIX,
          MRJobConfig.INPUT_FILE_MANDATORY_PREFIX);
      FSDataInputStream in  = FutureIO.awaitFuture(builder.build());
      lr = new LineReader(in, conf);
      Text line = new Text();
      int numLines = 0;
      long begin = 0;
      long length = 0;
      int num = -1;
      while ((num = lr.readLine(line)) > 0) {
        numLines++;
        length += num;

View on GitHub (pinned to 2add963021)

Solutions

  1. Ensure every path given to NLineInputFormat is a regular file, not a directory; correct or remove the offending path.

When it happens

Trigger: Thrown at hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/input/NLineInputFormat.java:96 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of apache/hadoop@2add963021 (2026-08-22). Data as JSON: /api/errors/6c83493bab90eb59. Report an issue: GitHub.