【发布时间】:2020-10-21 14:53:39
【问题描述】:
有没有办法通过 EMR 命令行将文件复制到 EMR 集群中的所有节点?我正在使用 presto 并创建了我的自定义插件。问题是我必须在所有节点上安装这个插件。我不想登录所有节点并复制它。
【问题讨论】:
标签: amazon-emr
有没有办法通过 EMR 命令行将文件复制到 EMR 集群中的所有节点?我正在使用 presto 并创建了我的自定义插件。问题是我必须在所有节点上安装这个插件。我不想登录所有节点并复制它。
【问题讨论】:
标签: amazon-emr
您可以将其添加为引导脚本,以便在集群启动期间发生这种情况。
@Sanket9394 感谢您的编辑!
【讨论】:
如果您可以控制启动新的 EMR,那么您应该考虑使用 EMR 的 bootstrap script。
但如果您想在现有 EMR 上执行此操作(引导程序仅在启动期间可用)
您可以借助 AWS Systems Manager (ssm) 和 EMR 内置客户端来完成此操作。
类似(python)的东西:
emr_client = boto3.client('emr')
ssm_client = boto3.client('ssm')
emr_client.list_instances获取核心实例列表
ssm_client.send_command向这些实例中的每一个发送一个命令
参考:查看https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-jupyterhub-install-kernels-libs.html#emr-jupyterhub-install-libs上的最后一个详细示例Example Installing Libraries on Core Nodes of a Running Cluster
注意:如果您使用 SSM ,您需要将适当的 ssm IAM 策略附加到您的主节点的 IAM 角色。
【讨论】: