YARN-7143. FileNotFound handling in ResourceUtils is inconsistent

Change-Id: Ib1bb487e14a15edd2b5a42cf5078c5a2b295f069
(cherry picked from commit db82a41d94872cea4d0c1bb1336916cebc2faeec)
This commit is contained in:
Daniel Templeton 2017-11-09 10:36:49 -08:00 committed by Jonathan Hung
parent 7025333d31
commit 062fbd084d
1 changed files with 23 additions and 31 deletions

View File

@ -338,18 +338,14 @@ public class ResourceUtils {
if (!initializedResources) { if (!initializedResources) {
synchronized (ResourceUtils.class) { synchronized (ResourceUtils.class) {
if (!initializedResources) { if (!initializedResources) {
if (conf == null) { Configuration resConf = conf;
conf = new YarnConfiguration();
}
try {
addResourcesFileToConf(resourceFile, conf);
LOG.debug("Found " + resourceFile + ", adding to configuration");
} catch (FileNotFoundException fe) {
LOG.info("Unable to find '" + resourceFile
+ "'. Falling back to memory and vcores as resources.");
}
initializeResourcesMap(conf);
if (resConf == null) {
resConf = new YarnConfiguration();
}
addResourcesFileToConf(resourceFile, resConf);
initializeResourcesMap(resConf);
} }
} }
} }
@ -386,21 +382,17 @@ public class ResourceUtils {
} }
private static void addResourcesFileToConf(String resourceFile, private static void addResourcesFileToConf(String resourceFile,
Configuration conf) throws FileNotFoundException { Configuration conf) {
try { try {
InputStream ris = getConfInputStream(resourceFile, conf); InputStream ris = getConfInputStream(resourceFile, conf);
LOG.debug("Found " + resourceFile + ", adding to configuration"); LOG.debug("Found " + resourceFile + ", adding to configuration");
conf.addResource(ris); conf.addResource(ris);
} catch (FileNotFoundException fe) { } catch (FileNotFoundException fe) {
throw fe; LOG.info("Unable to find '" + resourceFile + "'.");
} catch (IOException ie) { } catch (IOException | YarnException ex) {
LOG.fatal("Exception trying to read resource types configuration '" LOG.fatal("Exception trying to read resource types configuration '"
+ resourceFile + "'.", ie); + resourceFile + "'.", ex);
throw new YarnRuntimeException(ie); throw new YarnRuntimeException(ex);
} catch (YarnException ye) {
LOG.fatal("YARN Exception trying to read resource types configuration '"
+ resourceFile + "'.", ye);
throw new YarnRuntimeException(ye);
} }
} }
@ -462,19 +454,19 @@ public class ResourceUtils {
private static Map<String, ResourceInformation> initializeNodeResourceInformation( private static Map<String, ResourceInformation> initializeNodeResourceInformation(
Configuration conf) { Configuration conf) {
Map<String, ResourceInformation> nodeResources = new HashMap<>(); Map<String, ResourceInformation> nodeResources = new HashMap<>();
try {
addResourcesFileToConf( addResourcesFileToConf(YarnConfiguration.NODE_RESOURCES_CONFIGURATION_FILE,
YarnConfiguration.NODE_RESOURCES_CONFIGURATION_FILE, conf); conf);
for (Map.Entry<String, String> entry : conf) {
String key = entry.getKey(); for (Map.Entry<String, String> entry : conf) {
String value = entry.getValue(); String key = entry.getKey();
if (key.startsWith(YarnConfiguration.NM_RESOURCES_PREFIX)) { String value = entry.getValue();
addResourceInformation(key, value, nodeResources);
} if (key.startsWith(YarnConfiguration.NM_RESOURCES_PREFIX)) {
addResourceInformation(key, value, nodeResources);
} }
} catch (FileNotFoundException fe) {
LOG.info("Couldn't find node resources file");
} }
return nodeResources; return nodeResources;
} }