2016-10-28 44 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

好的。這僅適用於紗線羣組模式。 –

相關問題