如何在 Spark on YARN 中为 Spark UI 创建安全过滤器

Posted

技术标签:

【中文标题】如何在 Spark on YARN 中为 Spark UI 创建安全过滤器【英文标题】:How to create security filter for Spark UI in Spark on YARN 【发布时间】:2018-06-19 00:15:32 【问题描述】:

环境: AWS EMR,纱线集群。

说明: 我正在尝试使用 java 过滤器来保护对 spark ui 的访问,这通过使用属性 spark.ui.filters;问题是,当 spark 在纱线模式下运行时,该属性总是被 hadoop 使用过滤器 org.apache.hadoop.yarn.server.webproxy.amfilter.AmIpFilter 覆盖:

spark.ui.filters: org.apache.hadoop.yarn.server.webproxy.amfilter.AmIpFilter

这两个参数是 haddoop 自动传递的

spark.org.apache.hadoop.yarn.server.webproxy.amfilter.AmIpFilter.param.PROXY_HOSTS: ip-x-x-x-226.eu-west-1.compute.internal

spark.org.apache.hadoop.yarn.server.webproxy.amfilter.AmIpFilter.param.PROXY_URI_BASES: http://ip-x-x-x-226.eu-west-1.compute.internal:20888/proxy/application_xxxxxxxxxxxxx_xxxx

关于如何添加 java 安全过滤器以便 hadoop 不会覆盖它的任何建议,或者如何从 hadoop 端配置安全性?

谢谢。

【问题讨论】:

【参考方案1】:

这是通过使用属性 hadoop.http.authentication.type 来解决的 指定包含身份验证的自定义 Java 处理程序对象 逻辑。这个类只需要实现 接口 org.apache.hadoop.security.authentication.server.AuthenticationHandler。 见:

https://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-common/HttpAuthentication.html

【讨论】:

以上是关于如何在 Spark on YARN 中为 Spark UI 创建安全过滤器的主要内容,如果未能解决你的问题,请参考以下文章

Spark On Yarn如何查看任务日志

在 YARN 中为 Apache zeppelin 分配 Spark 内存

Spark on yarn 概念理解

Spark on YARN配置日志Web UI

Flink on YARN时,如何确定TaskManager数

Spark On Yarn 如何提高CPU利用率