From 4dbd5489fd8b20e50bb49a90fb58b6fe27cefcc2 Mon Sep 17 00:00:00 2001 From: Egor Krivokon Date: Fri, 23 Mar 2018 20:06:52 +0200 Subject: [PATCH] MapR [SPARK-143] Spark History Server does not require login for secured-by-default clusters (#239) --- .../cluster/YarnSchedulerBackend.scala | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/resource-managers/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnSchedulerBackend.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnSchedulerBackend.scala index 0d8e3839d6005..516a3e2b9317d 100644 --- a/resource-managers/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnSchedulerBackend.scala +++ b/resource-managers/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnSchedulerBackend.scala @@ -162,19 +162,22 @@ private[spark] abstract class YarnSchedulerBackend( filterName: String, filterParams: Map[String, String], proxyBase: String): Unit = { - if (proxyBase != null && proxyBase.nonEmpty) { - System.setProperty("spark.ui.proxyBase", proxyBase) - } + val amIpFilter = "org.apache.hadoop.yarn.server.webproxy.amfilter.AmIpFilter" + + if (filterName != amIpFilter) { + if (proxyBase != null && + proxyBase.nonEmpty) { + System.setProperty("spark.ui.proxyBase", proxyBase) + } - val hasFilter = - filterName != null && filterName.nonEmpty && - filterParams != null && filterParams.nonEmpty - if (hasFilter) { - logInfo(s"Add WebUI Filter. $filterName, $filterParams, $proxyBase") - conf.set("spark.ui.filters", filterName) - filterParams.foreach { case (k, v) => conf.set(s"spark.$filterName.param.$k", v) } - scheduler.sc.ui.foreach { ui => - ui.getDelegatingHandlers.foreach(_.addFilter(filterName, filterName, filterParams)) + val hasFilter = + filterName != null && filterName.nonEmpty && + filterParams != null && filterParams.nonEmpty + if (hasFilter) { + logInfo(s"Add WebUI Filter. $filterName, $filterParams, $proxyBase") + conf.set("spark.ui.filters", filterName) + filterParams.foreach { case (k, v) => conf.set(s"spark.$filterName.param.$k", v) } + scheduler.sc.ui.foreach { ui => JettyUtils.addFilters(ui.getHandlers, conf) } } } }