我通过aws emr
执行简单的Linux命令。此命令在群集的节点上启动:
aws emr add-steps --cluster-id j-XXXXXXXXXX --steps Name="XXX",Jar="command-runner.jar",Args=["pip --version"]
或:
aws emr add-steps --cluster-id j-XXXXXXXXXX --steps Name="XXX",Jar="command-runner.jar",Args=["python --version"]
这些基本命令会出错:
Cannot run program "pip --version" (in directory "."): error=2, No such file or directory
Cannot run program "python --version" (in directory "."): error=2, No such file or directory
我确信节点上至少安装了python
,因为我可以使用spark-submit
个文件执行*.py
。
我能够执行的唯一命令是ls
。
P.S。使用这种方法的目的是能够在集群的不同节点上执行一些Linux脚本,例如pip install ...
。这就是为什么我开始进行小型实验并且无法使它们正常工作的原因。
答案 0 :(得分:-1)
问题是由于参数之间缺少逗号,
。应该有pip,--version
而不是pip --version
:
aws emr add-steps --cluster-id j-XXXXXXXXXX --steps Name="XXX",Jar="command-runner.jar",Args=["pip,--version"]