apache/hadoop · error · IOException

Bad journal uri. Please check configuration for hdfs.fedbala

Error message

Bad journal uri. Please check configuration for hdfs.fedbalance.procedure.scheduler.journal.uri

What it means

Error "Bad journal uri. Please check configuration for hdfs.fedbalance.procedure.scheduler.journal.uri" thrown in apache/hadoop.

Source

Thrown at hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcServer.java:662

   *   /journal/router-namespace/host0
   * In non-ha mode the journal path is based on ip and port:
   *   JOURNAL_BASE/host_port
   * e.g.
   *   /journal/0.0.0.0_8888
   */
  private void initRouterFedRename() throws IOException {
    routerRenameOption = RouterRenameOption.valueOf(
        conf.get(DFS_ROUTER_FEDERATION_RENAME_OPTION,
            DFS_ROUTER_FEDERATION_RENAME_OPTION_DEFAULT).toUpperCase());
    switch (routerRenameOption) {
    case DISTCP:
      RouterFederationRename.checkConfiguration(conf);
      Configuration sConf = new Configuration(conf);
      URI journalUri;
      try {
        journalUri = new URI(sConf.get(SCHEDULER_JOURNAL_URI));
      } catch (URISyntaxException | NullPointerException e) {
        throw new IOException("Bad journal uri. Please check configuration for "
            + SCHEDULER_JOURNAL_URI);
      }
      Path child;
      String nsId = DFSUtil.getNamenodeNameServiceId(conf);
      String namenodeId = HAUtil.getNameNodeId(conf, nsId);
      InetSocketAddress listenAddress = this.rpcServer.getListenerAddress();
      if (nsId == null || namenodeId == null) {
        child = new Path(
            listenAddress.getHostName() + "_" + listenAddress.getPort());
      } else {
        child = new Path(nsId, namenodeId);
      }
      String routerJournal = new Path(journalUri.toString(), child).toString();
      sConf.set(SCHEDULER_JOURNAL_URI, routerJournal);
      fedRenameScheduler = new BalanceProcedureScheduler(sConf);
      fedRenameScheduler.init(true);
      break;
    case NONE:

View on GitHub (pinned to 2add963021)

Solutions

  1. Set hdfs.fedbalance.procedure.scheduler.journal.uri to a valid URI (e.g. hdfs://ns/journal or file:///path).
  2. Fix URI syntax errors (missing scheme, illegal characters) in the configuration.
  3. Ensure the scheme is supported and the path is writable by the Router.

When it happens

Trigger: FedBalance scheduler journal URI failed to parse during RouterRpcServer initialization.

Common situations: Missing or malformed hdfs.fedbalance.procedure.scheduler.journal.uri property when enabling router fedbalance.


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