|
@@ -62,15 +62,23 @@ public class LogServlet extends Configured {
|
|
private static final Joiner JOINER = Joiner.on("");
|
|
private static final Joiner JOINER = Joiner.on("");
|
|
private static final String NM_DOWNLOAD_URI_STR = "/ws/v1/node/containers";
|
|
private static final String NM_DOWNLOAD_URI_STR = "/ws/v1/node/containers";
|
|
|
|
|
|
- private final LogAggregationFileControllerFactory factory;
|
|
|
|
|
|
+ private LogAggregationFileControllerFactory factoryInstance = null;
|
|
private final AppInfoProvider appInfoProvider;
|
|
private final AppInfoProvider appInfoProvider;
|
|
|
|
|
|
public LogServlet(Configuration conf, AppInfoProvider appInfoProvider) {
|
|
public LogServlet(Configuration conf, AppInfoProvider appInfoProvider) {
|
|
super(conf);
|
|
super(conf);
|
|
- this.factory = new LogAggregationFileControllerFactory(conf);
|
|
|
|
this.appInfoProvider = appInfoProvider;
|
|
this.appInfoProvider = appInfoProvider;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private LogAggregationFileControllerFactory getOrCreateFactory() {
|
|
|
|
+ if (factoryInstance != null) {
|
|
|
|
+ return factoryInstance;
|
|
|
|
+ } else {
|
|
|
|
+ factoryInstance = new LogAggregationFileControllerFactory(getConf());
|
|
|
|
+ return factoryInstance;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
@VisibleForTesting
|
|
@VisibleForTesting
|
|
public String getNMWebAddressFromRM(String nodeId)
|
|
public String getNMWebAddressFromRM(String nodeId)
|
|
throws ClientHandlerException, UniformInterfaceException, JSONException {
|
|
throws ClientHandlerException, UniformInterfaceException, JSONException {
|
|
@@ -226,7 +234,7 @@ public class LogServlet extends Configured {
|
|
String nmId, boolean redirectedFromNode,
|
|
String nmId, boolean redirectedFromNode,
|
|
String clusterId, boolean manualRedirection) {
|
|
String clusterId, boolean manualRedirection) {
|
|
|
|
|
|
- builder.setFactory(factory);
|
|
|
|
|
|
+ builder.setFactory(getOrCreateFactory());
|
|
|
|
|
|
BasicAppInfo appInfo;
|
|
BasicAppInfo appInfo;
|
|
try {
|
|
try {
|
|
@@ -361,6 +369,8 @@ public class LogServlet extends Configured {
|
|
"Invalid ContainerId: " + containerIdStr);
|
|
"Invalid ContainerId: " + containerIdStr);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ LogAggregationFileControllerFactory factory = getOrCreateFactory();
|
|
|
|
+
|
|
final long length = LogWebServiceUtils.parseLongParam(size);
|
|
final long length = LogWebServiceUtils.parseLongParam(size);
|
|
|
|
|
|
ApplicationId appId = containerId.getApplicationAttemptId()
|
|
ApplicationId appId = containerId.getApplicationAttemptId()
|