Kerberized群集中的Spark历史记录服务器身份验证

时间:2017-01-12 08:09:00

标签: hadoop apache-spark kerberos hortonworks-data-platform

我建立了一个HDP集群,其中包含Spark。我还为群集启用了Kerberos,因此所有服务和用户都必须通过其主体进行身份验证。

这似乎工作正常,所有服务都在运行,并且用户必须先获得有效的Kerberos票证才能访问例如YARN ResourceManager的Web UI。

否则他会收到如下错误消息:

enter image description here

但是,在kinit之后,用户可以访问该网站。

我现在想做的事情(我认为已经是这样),也是为了保护Spark History Server UI,以便用户必须通过Kerberos票证进行身份验证。实际上每个人都可以在没有身份验证的情 enter image description here

是否有可能这样做?如果是,我该如何配置?

spark.eventLog.dir = hdfs:///spark-history的实际权限为777。这里是Ambari HDFS视图的屏幕截图: enter image description here

1 个答案:

答案 0 :(得分:2)

我在IBM's documentation

找到了解决方法

您为Kerberos / SPNEGO重用Hadoop的jetty身份验证过滤器org.apache.hadoop.security.authentication.server.AuthenticationFilter

您可以通过设置Spark的default.conf来完成此操作 spark.ui.filters=org.apache.hadoop.security.authentication.server.AuthenticationFilterspark.org.apache.hadoop.security.authentication.server.AuthenticationFilter.params= type=kerberos,kerberos.principal=${spnego_principal_name},kerberos.keytab=${spnego_keytab_path} 小心那些替换变量,在Ambari中设置这些值时它们对我不起作用。另外,请考虑添加cookie.domainsignature.secret.file,与其他Hadoop SPNEGO配置类似。

显然,这仅在Spark History Server在其类路径中使用Hadoop类运行时才有效 - 因此它不是SMACK-stack的开箱即用解决方案。