YARN-6999. Add log about how to solve Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster. (Linlin Zhou via gtcarrera9)
This commit is contained in:
parent
b89ffcff36
commit
3bee7046c5
@ -564,9 +564,11 @@ protected void handleContainerExitWithFailure(ContainerId containerID,
|
||||
errorFileIS = fileSystem.open(errorFile);
|
||||
errorFileIS.readFully(startPosition, tailBuffer);
|
||||
|
||||
String tailBufferMsg = new String(tailBuffer, StandardCharsets.UTF_8);
|
||||
diagnosticInfo.append("Last ").append(tailSizeInBytes)
|
||||
.append(" bytes of ").append(errorFile.getName()).append(" :\n")
|
||||
.append(new String(tailBuffer, StandardCharsets.UTF_8));
|
||||
.append(tailBufferMsg).append("\n")
|
||||
.append(analysesErrorMsgOfContainerExitWithFailure(tailBufferMsg));
|
||||
}
|
||||
} catch (IOException e) {
|
||||
LOG.error("Failed to get tail of the container's error log file", e);
|
||||
@ -580,6 +582,29 @@ protected void handleContainerExitWithFailure(ContainerId containerID,
|
||||
diagnosticInfo.toString()));
|
||||
}
|
||||
|
||||
private String analysesErrorMsgOfContainerExitWithFailure(String errorMsg) {
|
||||
StringBuilder analysis = new StringBuilder();
|
||||
if (errorMsg.indexOf("Error: Could not find or load main class"
|
||||
+ " org.apache.hadoop.mapreduce") != -1) {
|
||||
analysis.append("Please check whether your etc/hadoop/mapred-site.xml "
|
||||
+ "contains the below configuration:\n");
|
||||
analysis.append("<property>\n")
|
||||
.append(" <name>yarn.app.mapreduce.am.env</name>\n")
|
||||
.append(" <value>HADOOP_MAPRED_HOME=${full path of your hadoop "
|
||||
+ "distribution directory}</value>\n")
|
||||
.append("</property>\n<property>\n")
|
||||
.append(" <name>mapreduce.map.env</name>\n")
|
||||
.append(" <value>HADOOP_MAPRED_HOME=${full path of your hadoop "
|
||||
+ "distribution directory}</value>\n")
|
||||
.append("</property>\n<property>\n")
|
||||
.append(" <name>mapreduce.reduce.e nv</name>\n")
|
||||
.append(" <value>HADOOP_MAPRED_HOME=${full path of your hadoop "
|
||||
+ "distribution directory}</value>\n")
|
||||
.append("</property>\n");
|
||||
}
|
||||
return analysis.toString();
|
||||
}
|
||||
|
||||
protected String getPidFileSubpath(String appIdStr, String containerIdStr) {
|
||||
return getContainerPrivateDir(appIdStr, containerIdStr) + Path.SEPARATOR
|
||||
+ String.format(ContainerLaunch.PID_FILE_NAME_FMT, containerIdStr);
|
||||
|
Loading…
Reference in New Issue
Block a user