There is no need to write an initialization function for a new filesystem.
Both functions in ``FileSystem`` should cover all use cases. The distinction is, that ``initOutPathLocalFS()`` needs to be called by every ``FileOutputFormat`` because the target file system is local (currently only LocalFS) and cannot be remotely accessed. ``initOutPathDistFS()`` works on distributed, remotely accessible filesystems (HDFS, S3, ...) and is called at planning time in the JobManager. So initialization happens only once.

JobManager and OutputFormat decide based on the abstract function ``FileSystem.isDistributedFS()`` whether to call the initialization function or not. So every file system must only implement ``isDistributedFS()`` and not an initialization function.