是否可以向紗線羣提交一個點火作業,並通過命令行或罐內選擇哪個用戶將「擁有」該作業?Spark作爲另一用戶提交到紗線
spark-submit將從包含用戶的腳本啓動。
PS:如果集羣有kerberos配置(腳本是keytab),還是可以的嗎?
是否可以向紗線羣提交一個點火作業,並通過命令行或罐內選擇哪個用戶將「擁有」該作業?Spark作爲另一用戶提交到紗線
spark-submit將從包含用戶的腳本啓動。
PS:如果集羣有kerberos配置(腳本是keytab),還是可以的嗎?
如果您的用戶存在,你仍然可以啓動你的火花與 蘇$ my_user -c火花提交提交[...]
我不知道有關Kerberos密鑰表,但如果你做一個kinit命令這個用戶應該沒問題。
如果你不能使用su,因爲你不想要的密碼,我請你看這個計算器的答案: how to run script as another user without password
對於非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
有關詳細信息,你可以看看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 –
對於非Kerberos的羣集可以添加火花的conf爲:
--conf spark.yarn.appMasterEnv.HADOOP_USER_NAME=<user_name>
你是否在'yarn-client'和'yarn-cluster'模式下測試過這個問題? –
好的。這僅適用於紗線羣組模式。 –
我不能su到其他用戶。將啓動spark-submit的用戶將像www-data一樣,所以su將不可能,並且節點能夠執行kinit,因爲它需要最終的用戶密碼。 – Benjamin
啓動火花工作的人是業主。 su -c不會改變你的用戶,只會按照你選擇的用戶來運行這個工作;編輯:好吧,我修改了我的帖子 – kulssaka