prestodb/presto · error · PrestoException

HUDI_FILESYSTEM_ERROR

HUDI_FILESYSTEM_ERROR

Error message

Could not open file system for ${table}

What it means

HudiSplitManager.getFileSystem resolves an ExtendedFileSystem for the table's base path via HdfsEnvironment; any failure opening it (missing scheme support, bad credentials, unavailable naming authority) is wrapped in this PrestoException with the table path, aborting split generation for that table.

Source

Thrown at presto-hudi/src/main/java/com/facebook/presto/hudi/HudiSplitManager.java:155

                asyncQueueExecutor,
                splitLoaderExecutorService,
                splitGeneratorExecutorService,
                getMaxOutstandingSplits(session));
    }

    private ExtendedFileSystem getFileSystem(ConnectorSession session, HudiTableHandle table)
    {
        HdfsContext hdfsContext = new HdfsContext(
                session,
                table.getSchemaName(),
                table.getTableName(),
                table.getPath(),
                false);
        try {
            return hdfsEnvironment.getFileSystem(hdfsContext, new Path(table.getPath()));
        }
        catch (IOException e) {
            throw new PrestoException(HUDI_FILESYSTEM_ERROR, "Could not open file system for " + table, e);
        }
    }

    public static HudiPartition getHudiPartition(ExtendedHiveMetastore metastore, MetastoreContext context, HudiTableLayoutHandle tableLayout, String partitionName)
    {
        String databaseName = tableLayout.getTable().getSchemaName();
        String tableName = tableLayout.getTable().getTableName();
        List<HudiColumnHandle> partitionColumns = tableLayout.getPartitionColumns();

        if (partitionColumns.isEmpty()) {
            // non-partitioned tableLayout
            Table table = metastore.getTable(context, databaseName, tableName)
                    .orElseThrow(() -> new PrestoException(HUDI_INVALID_METADATA, format("Table %s.%s expected but not found", databaseName, tableName)));
            return new HudiPartition(partitionName, ImmutableList.of(), ImmutableMap.of(), table.getStorage(), tableLayout.getDataColumns());
        }
        else {
            // partitioned tableLayout
            List<String> partitionValues = extractPartitionValues(partitionName);

View on GitHub (pinned to 55bb57d202)

Solutions

  1. Verify the table path URI and that a FileSystem implementation exists for its scheme
  2. Check HDFS/S3 credentials and HdfsEnvironment configuration for the query user
  3. Confirm the Hudi table location is reachable from all worker nodes
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at presto-hudi/src/main/java/com/facebook/presto/hudi/HudiSplitManager.java:155 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of prestodb/presto@55bb57d202 (2026-09-04). Data as JSON: /api/errors/68dc20d5571c03e3. Report an issue: GitHub.