DAGClient submit(JobConf conf, DAG dag, Path scratchDir,
LocalResource appJarLr, TezSessionState sessionState,
List<LocalResource> additionalLr, String[] inputOutputJars,
Map<String,LocalResource> inputOutputLocalResources)
throws Exception {
perfLogger.PerfLogBegin(CLASS_NAME, PerfLogger.TEZ_SUBMIT_DAG);
DAGClient dagClient = null;
Map<String, LocalResource> resourceMap = new HashMap<String, LocalResource>();
if (additionalLr != null) {
for (LocalResource lr: additionalLr) {
if (lr.getType() == LocalResourceType.FILE) {
resourceMap.put(utils.getBaseName(lr), lr);
}
}
}
try {
sessionState.getSession().addAppMasterLocalFiles(resourceMap);
dagClient = sessionState.getSession().submitDAG(dag);
} catch (SessionNotRunning nr) {
console.printInfo("Tez session was closed. Reopening...");
TezSessionPoolManager.getInstance().closeAndOpen(sessionState, this.conf, inputOutputJars, true);
console.printInfo("Session re-established.");
dagClient = sessionState.getSession().submitDAG(dag);
}
perfLogger.PerfLogEnd(CLASS_NAME, PerfLogger.TEZ_SUBMIT_DAG);
return dagClient;
}