Apache spark 使用kerberos:stagingdir无法读取纱线和CephFS上的Spark提交
我有一个简单的设置,其中有一台运行安全资源和节点管理器的机器。Apache spark 使用kerberos:stagingdir无法读取纱线和CephFS上的Spark提交,apache-spark,hadoop,yarn,Apache Spark,Hadoop,Yarn,我有一个简单的设置,其中有一台运行安全资源和节点管理器的机器。 集群在组hadoop中作为warn运行。此计算机可以访问/ceph/中的cephFS文件夹 我有一台安装了spark的机器,它在组hadoop中为用户spark提供了一个键选项卡 Spark staging dir是/ceph/Spark/.sparkStaging/自己的Spark:hadoop 我已尝试按如下方式设置spark ACL: spark.acls.enable true spark.admin.acls spark,
集群在组
hadoop
中作为warn
运行。此计算机可以访问/ceph/
中的cephFS文件夹我有一台安装了spark的机器,它在组
hadoop
中为用户spark
提供了一个键选项卡Spark staging dir是
/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将其staging dir上传到cephFS时,除了spark之外,任何人都无法读取应用程序目录:
ls -la .sparkStaging/
drwx------ 1 spark hadoop 8 Apr 29 12:48 application_1619691827872_0006
是否有什么我误解的方式提交作业作为一个用户,而不是纱线到纱线安全集群?
是否可以在不使用HDFS和CEPFS的情况下使用kerberized纱线簇?如果是,怎么做?多谢各位 PS:用户帐户是所有机器上的系统用户帐户,我正在使用org.apache.spark.security.ShellBasedGroupsMappingProvider对Thread和spark进行匹配,以匹配用户/组