【发布时间】:2020-01-15 02:50:43
【问题描述】:
我有一个在 AWS 中运行的 EMR 集群 5.28.1,但作为引导操作的一部分,我忘记从 python 库进行安装。现在集群正在运行,我只是尝试通过 EMR 控制台添加一个步骤。这是我的设置
JAR: s3://us-east-1.elasticmapreduce/libs/script-runner/script-runner.jar
Main class: None
Arguments: s3://xxxx/install_python_libraries.sh
很遗憾,我收到以下错误。
Cannot run program "s3://xxxxx/install_python_libraries.sh" (in directory "."): error=2, No such file or directory
我不确定我做错了什么。 shell 脚本如下所示。
#!/bin/bash -xe
# Non-standard and non-Amazon Machine Image Python modules:
sudo pip-3.6 install boto3
sudo pip-3.6 install xmltodict
我也尝试过简单地使用“command-runner.jar”,但我得到了同样的错误。你能帮我找出问题,所以我可以通过控制台来解决这个问题吗?我想在所有节点上安装库 - 主节点和核心节点。
谢谢
【问题讨论】:
-
这看起来像是权限问题。您确定用于 EMR 的角色具有访问脚本的适当 s3 权限吗?
-
@bdcloud。我想你可能有一点。从来没有想过这个错误会意味着权限问题。会试试看。
-
您能否确认 IAM 政策是否存在问题?
-
修复了这个角色,我想我已经通过了那个消息。现在,我得到 java.io.IOException: Cannot run program "/mnt/var/lib/hadoop/steps/s-36C0OJUGLXXXX/./install_python_libraries.sh" (in directory "."): error=2, No such文件或目录。当我转到该目录时,shell 文件已成功传输,但请注意上面路径中的句点 (.),我仍在添加步骤,如上面的原始问题所示。所以,不知道如何解决这个问题。而且shell文件确实有自动执行权限。
标签: amazon-web-services amazon-s3 amazon-emr