【问题标题】:AWS EMR - how to copy files to all the nodes?AWS EMR - 如何将文件复制到所有节点?
【发布时间】:2020-10-21 14:53:39
【问题描述】:

有没有办法通过 EMR 命令行将文件复制到 EMR 集群中的所有节点?我正在使用 presto 并创建了我的自定义插件。问题是我必须在所有节点上安装这个插件。我不想登录所有节点并复制它。

【问题讨论】:

    标签: amazon-emr


    【解决方案1】:

    您可以将其添加为引导脚本,以便在集群启动期间发生这种情况。

    @Sanket9394 感谢您的编辑!

    【讨论】:

    • 这是错误的。一个步骤仅在主节点上运行,而不是在所有节点上运行。只有引导脚本在所有节点上运行。
    【解决方案2】:

    如果您可以控制启动新的 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 角色。


    【讨论】:

      猜你喜欢
      • 2023-03-17
      • 1970-01-01
      • 2017-07-27
      • 2011-11-21
      • 1970-01-01
      • 1970-01-01
      • 2019-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多