diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/util/resource/ResourceUtils.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/util/resource/ResourceUtils.java index 94c2e97e9f0..78f594e68e7 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/util/resource/ResourceUtils.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/util/resource/ResourceUtils.java @@ -346,17 +346,10 @@ private static void initializeResourceTypesIfNeeded(Configuration conf, if (conf == null) { conf = new YarnConfiguration(); } - try { - addResourcesFileToConf(resourceFile, conf); - LOG.debug("Found " + resourceFile + ", adding to configuration"); - initializeResourcesMap(conf); - initializedResources = true; - } catch (FileNotFoundException fe) { - LOG.info("Unable to find '" + resourceFile - + "'. Falling back to memory and vcores as resources."); - initializeResourcesMap(conf); - initializedResources = true; - } + + addResourcesFileToConf(resourceFile, conf); + initializeResourcesMap(conf); + initializedResources = true; } } } @@ -392,23 +385,25 @@ private static InputStream getConfInputStream(String resourceFile, return ris; } - private static void addResourcesFileToConf(String resourceFile, - Configuration conf) throws FileNotFoundException { + private static boolean addResourcesFileToConf(String resourceFile, + Configuration conf) { + boolean loaded = false; + try { InputStream ris = getConfInputStream(resourceFile, conf); LOG.debug("Found " + resourceFile + ", adding to configuration"); conf.addResource(ris); + loaded = true; } catch (FileNotFoundException fe) { - throw fe; - } catch (IOException ie) { + LOG.info("Unable to find '" + resourceFile + + "'. Falling back to memory and vcores as resources."); + } catch (IOException | YarnException ex) { LOG.fatal("Exception trying to read resource types configuration '" - + resourceFile + "'.", ie); - throw new YarnRuntimeException(ie); - } catch (YarnException ye) { - LOG.fatal("YARN Exception trying to read resource types configuration '" - + resourceFile + "'.", ye); - throw new YarnRuntimeException(ye); + + resourceFile + "'.", ex); + throw new YarnRuntimeException(ex); } + + return loaded; } @VisibleForTesting @@ -469,19 +464,19 @@ public static String getUnits(String resourceValue) { private static Map initializeNodeResourceInformation( Configuration conf) { Map nodeResources = new HashMap<>(); - try { - addResourcesFileToConf( - YarnConfiguration.NODE_RESOURCES_CONFIGURATION_FILE, conf); - for (Map.Entry entry : conf) { - String key = entry.getKey(); - String value = entry.getValue(); - if (key.startsWith(YarnConfiguration.NM_RESOURCES_PREFIX)) { - addResourceInformation(key, value, nodeResources); - } + + addResourcesFileToConf(YarnConfiguration.NODE_RESOURCES_CONFIGURATION_FILE, + conf); + + for (Map.Entry entry : conf) { + String key = entry.getKey(); + String value = entry.getValue(); + + if (key.startsWith(YarnConfiguration.NM_RESOURCES_PREFIX)) { + addResourceInformation(key, value, nodeResources); } - } catch (FileNotFoundException fe) { - LOG.info("Couldn't find node resources file"); } + return nodeResources; }