从Spark作业执行sudo命令

时间:2018-10-21 22:52:34

标签: apache-spark sudo

我正在尝试以集群模式从Spark scala作业执行python脚本,如下所示。

import scala.sys.process._

Process("sudo -n python helloWorld.py").!!

我收到“ sudo:需要密码”消息。

我尝试按照link中的说明为用户设置NOPASSWD,方法是使用'sudo visudo'在文件末尾添加一行,如下所示:

<username> ALL=(ALL) NOPASSWD: ALL

但是它不起作用。我仍然遇到相同的错误。怎么了?

2 个答案:

答案 0 :(得分:1)

我在使用“ sudo”运行某些命令的python程序中使用dmidecode时遇到了这个问题。我在docker上运行了dmidecode,没有任何错误。

我认为这是因为docker以root模式运行,并且我的python程序的每个软件包和要求都以root模式设置。但是在“ ubuntu”中,我在“ sudo用户”中进行了所有设置,这些设置都引用了root以执行“ sudo”命令,而我的root用户没有任何设置。

如上所述,我的提交是:

sudo ~/spark/bin/spark-submit --name tets --master spark://10.28.10.9:5050 --executor-cores 4 
                              --executor-memory 6G --files use.npy --py-files a.zip main.py

但是在docker中是:

~/spark/bin/spark-submit --name tets --master spark://10.28.10.9:5050 --executor-cores 4 
                         --executor-memory 6G --files use.npy --py-files a.zip main.py

我希望这会对您有所帮助

答案 1 :(得分:0)

该过程是从Spark驱动程序开始的吗?您应该以sudo用户身份运行spark应用程序。