我正在尝试以集群模式从Spark scala作业执行python脚本,如下所示。
import scala.sys.process._
Process("sudo -n python helloWorld.py").!!
我收到“ sudo:需要密码”消息。
我尝试按照link中的说明为用户设置NOPASSWD,方法是使用'sudo visudo'在文件末尾添加一行,如下所示:
<username> ALL=(ALL) NOPASSWD: ALL
但是它不起作用。我仍然遇到相同的错误。怎么了?
答案 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应用程序。