2016-10-28 57 views
4

是否可以向纱线群提交一个点火作业,并通过命令行或罐内选择哪个用户将“拥有”该作业?Spark作为另一用户提交到纱线

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

PS:如果集群有kerberos配置(脚本是keytab),还是可以的吗?

回答

1

如果您的用户存在,你仍然可以启动你的火花与 苏$ my_user -c火花提交提交[...]

我不知道有关Kerberos密钥表,但如果你做一个kinit命令这个用户应该没问题。

如果你不能使用su,因为你不想要的密码,我请你看这个计算器的答案: how to run script as another user without password

+0

我不能su到其他用户。将启动spark-submit的用户将像www-data一样,所以su将不可能,并且节点能够执行kinit,因为它需要最终的用户密码。 – Benjamin

+0

启动火花工作的人是业主。 su -c不会改变你的用户,只会按照你选择的用户来运行这个工作;编辑:好吧,我修改了我的帖子 – kulssaka

4

对于非Kerberos的集群export HADOOP_USER_NAME=zorro提交星火作业之前会做的伎俩。
如果要在其余shell脚本(或在交互式shell会话中)中恢复为默认凭证,请务必在unset HADOOP_USER_NAME之后。

对于Kerberos化集群,清洁的方式来冒充其他帐户,而无需捣毁你的其他工作/会话(这可能取决于你的默认票)将是这一行的东西...

export KRB5CCNAME=FILE:/tmp/krb5cc_$(id -u)_temp_$$ 
kinit -kt ~/.protectedDir/zorro.keytab [email protected] 
spark-submit ........... 
kdestroy 
+0

有关详细信息,你可以看看https://stackoverflow.com/questions/37379765/service-specific-users-not-created-in-cloudera和http://stackoverflow.com/问题/ 11041253/set-hadoop-system-user-for-client-embedded-java-webapp/11062529#11062529 –

0

对于非Kerberos的群集可以添加火花的conf为:

--conf spark.yarn.appMasterEnv.HADOOP_USER_NAME=<user_name> 
+0

你是否在'yarn-client'和'yarn-cluster'模式下测试过这个问题? –

+1

好的。这仅适用于纱线群组模式。 –

相关问题