问题描述
我对一台运行安全纱线资源和节点管理器的机器进行了简单设置。
集群作为 yarn
在组 hadoop
中运行。这台机器可以访问 /ceph/
中的 cephFS 文件夹。
我有一台带有 Spark 安装的机器,其中包含 spark
组中用户 hadoop
的密钥表。
Spark 暂存目录由 /ceph/spark/.sparkStaging/
spark:hadoop
所有。
我尝试像这样设置 spark ACL:
spark.acls.enable true
spark.admin.acls spark,yarn
spark.admin.acls.groups hadoop
spark.ui.view.acls spark,yarn
spark.ui.view.acls.groups hadoop
spark.modify.acls spark,yarn
spark.modify.acls.groups hadoop
但是,当使用 spark submit 进行简单的 sparkpie 运行时,我最终得到:
$SPARK_HOME/bin/spark-submit --master yarn --deploy-mode cluster --principal spark --keytab spark.test.keytab --class SparkPi sparkpi_2.10-1.0.jar 10
[...]
INFO spark.SecurityManager: Changing view acls to: spark,yarn
INFO spark.SecurityManager: Changing modify acls to: spark,yarn
INFO spark.SecurityManager: Changing view acls groups to: hadoop
INFO spark.SecurityManager: Changing modify acls groups to: hadoop
INFO spark.SecurityManager: SecurityManager: authentication disabled; ui acls enabled; users with view permissions: Set(spark,yarn); groups with view permissions: Set(hadoop); users with modify permissions: Set(spark,yarn); groups with modify permissions: Set(hadoop)
INFO security.HadoopDelegationTokenManager: Attempting to login to KDC using principal: spark
INFO security.HadoopDelegationTokenManager: Successfully logged into KDC.
[...]
Failing this attempt.Diagnostics: File file:/ceph/spark/.sparkStaging/application_1619691827872_0016/spark.test.keytab does not exist
[...]
问题是,当 spark 上传时,它会将目录暂存到 cephFS,除了 spark 之外,任何人都无法读取应用程序目录:
ls -la .sparkStaging/
drwx------ 1 spark hadoop 8 Apr 29 12:48 application_1619691827872_0006
我是否误解了以非纱线用户身份向纱线安全集群提交作业的方式?
是否可以在没有 HDFS 和 CephFS 的情况下使用 kerberized 纱线集群?如果是,如何?
谢谢
PS:用户帐户是所有机器上都存在的系统用户帐户,我在 yarn 和 spark 上使用 org.apache.spark.security.ShellBasedGroupsMappingProvider 来匹配用户/组。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)