{"record":{"id":"933b1685e94ed9d5","repo":"apache/hadoop","slug":"unable-to-parse-framework-as-a-uri-check-the","errorCode":null,"errorMessage":"Unable to parse '${framework}' as a URI, check the setting for mapreduce.application.framework.path","messagePattern":"Unable to parse '(.+?)' as a URI, check the setting for mapreduce\\.application\\.framework\\.path","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/JobSubmitter.java","lineNumber":447,"sourceCode":"      Path [] ps = new Path[nameNodes.length];\n      for(int i=0; i< nameNodes.length; i++) {\n        ps[i] = new Path(nameNodes[i]);\n      }\n      TokenCache.obtainTokensForNamenodes(credentials, ps, conf);\n    }\n  }\n\n  @SuppressWarnings(\"deprecation\")\n  private static void addMRFrameworkToDistributedCache(Configuration conf)\n      throws IOException {\n    String framework =\n        conf.get(MRJobConfig.MAPREDUCE_APPLICATION_FRAMEWORK_PATH, \"\");\n    if (!framework.isEmpty()) {\n      URI uri;\n      try {\n        uri = new URI(framework);\n      } catch (URISyntaxException e) {\n        throw new IllegalArgumentException(\"Unable to parse '\" + framework\n            + \"' as a URI, check the setting for \"\n            + MRJobConfig.MAPREDUCE_APPLICATION_FRAMEWORK_PATH, e);\n      }\n\n      String linkedName = uri.getFragment();\n\n      // resolve any symlinks in the URI path so using a \"current\" symlink\n      // to point to a specific version shows the specific version\n      // in the distributed cache configuration\n      FileSystem fs = FileSystem.get(uri, conf);\n      Path frameworkPath = fs.makeQualified(\n          new Path(uri.getScheme(), uri.getAuthority(), uri.getPath()));\n      FileContext fc = FileContext.getFileContext(frameworkPath.toUri(), conf);\n      frameworkPath = fc.resolvePath(frameworkPath);\n      uri = frameworkPath.toUri();\n      try {\n        uri = new URI(uri.getScheme(), uri.getAuthority(), uri.getPath(),\n            null, linkedName);","sourceCodeStart":429,"sourceCodeEnd":465,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/JobSubmitter.java#L429-L465","documentation":"Error \"Unable to parse '${framework}' as a URI, check the setting for mapreduce.application.framework.path\" thrown in apache/hadoop.","triggerScenarios":"Thrown at hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/JobSubmitter.java:447 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set mapreduce.application.framework.path to a valid URI (e.g. an hdfs:// path to the MR framework tarball)."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2add9630210752f88ceb1bb74eb65e37bf41da8e","analyzedAt":"2026-08-22T19:55:07.957Z","schemaVersion":2},"datasetVersion":"2026-08-23T01:17:44.959Z"}