gpt4 book ai didi

apache-spark - 在不实现安全过滤器的情况下隐藏 spark 属性,使其不显示在 spark web UI 中

转载 作者:行者123 更新时间:2023-12-04 04:42:56 26 4
gpt4 key购买 nike

位于 http://:4040 的应用程序 Web UI 在“环境”选项卡中列出了 Spark 属性。所有通过 spark-defaults.conf、SparkConf 或命令行明确指定的值都会出现。 但是,出于安全原因,我不希望我的 Cassandra 密码显示在 Web UI 中。 是否有某种开关可以确保不显示某些 Spark 属性?

请注意,我看到一些建议实现安全过滤器并使用 spark.ui.filters 设置来引用类的解决方案。我希望避免这种复杂性。

最佳答案

我认为没有通用的解决方案如何在以前版本的 spark WebUI 中隐藏您的自定义属性。

我假设您使用的是 spark 2.0 或更低版本(我没有在 2.0 中看到下面描述的功能),因为 2.0.1 支持将密码预处理为“*****”。

检查问题 SPARK-16796 Visible passwords on Spark environment page

当我们查看 apache spark 源代码并进行一些调查时,我们可以看到一些 加工如何在 spark web ui 中“隐藏”属性。

SparkUI
默认情况下,环境页面附加在初始化中 attachTab(new EnvironmentTab(this)) [第 71 行]

EnvironmentPage将属性呈现为 EnvironmentPage作为 web gui 中的选项卡:

def render(request: HttpServletRequest): Seq[Node] = {
val runtimeInformationTable = UIUtils.listingTable(
propertyHeader, jvmRow, listener.jvmInformation, fixedWidth = true)
val sparkPropertiesTable = UIUtils.listingTable(
propertyHeader, propertyRow, listener.sparkProperties.map(removePass), fixedWidth = true)
val systemPropertiesTable = UIUtils.listingTable(
propertyHeader, propertyRow, listener.systemProperties, fixedWidth = true)
val classpathEntriesTable = UIUtils.listingTable(
classPathHeaders, classPathRow, listener.classpathEntries, fixedWidth = true)
val content =
<span>
<h4>Runtime Information</h4> {runtimeInformationTable}
<h4>Spark Properties</h4> {sparkPropertiesTable}
<h4>System Properties</h4> {systemPropertiesTable}
<h4>Classpath Entries</h4> {classpathEntriesTable}
</span>

UIUtils.headerSparkPage("Environment", content, parent)
}

除了 sparkProperties 之外,所有属性都在没有某种隐藏预处理的情况下呈现。 - 具有 removePass 中提供的功能.
private def removePass(kv: (String, String)): (String, String) = {
if (kv._1.toLowerCase.contains("password")) (kv._1, "******") else kv
}

我们可以看到每个包含“密码”的 key (顺便说一句:在主分支中,他们还使用关键字“secret”过滤键 check if u are interested in )

我现在无法测试,但您可以尝试更新 spark。所以例如。 SparkSubmitArguments.scalamergeDefaultSparkProperties()会考虑 spark.cassandra.auth.password作为 Spark 并填充为 sparkProperties (使用 removePass 预处理)。

最后,在 web gui 的 EnvironmentTab 中,此属性应该显示为 **** .

关于apache-spark - 在不实现安全过滤器的情况下隐藏 spark 属性,使其不显示在 spark web UI 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40310944/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com