Spark作为另一个用户提交给yarn

Ben*_*min 9 hadoop kerberos hadoop-yarn apache-spark

是否可以向纱线群集提交火花作业,并使用命令行或罐子内部选择哪个用户"拥有"该作业?

spark-submit将从包含用户的脚本启动.

PS:如果集群有kerberos配置(并且脚本是密钥表),它仍然可能吗?

Sam*_*ter 8

对于非 kerberized 集群export HADOOP_USER_NAME=zorro在提交 Spark 作业之前就行了。
unset HADOOP_USER_NAME如果您想在 shell 脚本的其余部分(或交互式 shell 会话)中恢复到默认凭据, 请确保之后进行。

对于kerberized 集群,在不破坏其他作业/会话(可能取决于您的默认票证)的情况下模拟另一个帐户的干净方式将是这一行...

export KRB5CCNAME=FILE:/tmp/krb5cc_$(id -u)_temp_$$
kinit -kt ~/.protectedDir/zorro.keytab zorro@MY.REALM
spark-submit ...........
kdestroy
Run Code Online (Sandbox Code Playgroud)


Kal*_*osh 5

对于非 kerberized 集群,您可以将 Spark conf 添加为:

--conf spark.yarn.appMasterEnv.HADOOP_USER_NAME=<user_name>
Run Code Online (Sandbox Code Playgroud)


小智 1

如果您的用户存在,您仍然可以使用 su $my_user -c Spark Submit [...] 启动 Spark 提交

我不确定 kerberos keytab,但如果你用这个用户创建 kinit 应该没问题。

如果您因为不需要密码而无法使用 su,我邀请您查看此 stackoverflow 答案: how to run script as another user withoutpassword