如何在正在运行的 Amazon EMR 集群的所有节点上安装第三方库?

使用 AWS Systems Manager 连接到辅助节点,然后运行 bash 脚本来下载第三方库。

注意:无法使用引导操作来更改正在运行的集群。也无法选择任何步骤,因为步骤只在主节点上运行。您可以手动登录到每个节点并更改相应节点,但是当集群中有许多节点时,这项操作会非常繁琐。

为 Systems Manager 创建实例配置文件

1.   打开 IAM 控制台

2.    在导航窗格中,选择角色,然后选择与 EMR 集群中的 EC2 实例关联的角色。默认情况下,此角色命名为 EMR_EC2_DefaultRole

3.    在权限选项卡中,选择附加策略

4.    在附加策略页面,选中 AmazonEC2RoleforSSM 旁边的复选框,然后选择附加策略

在主节点上安装库

1.    使用 SSH 连接到主节点

2.    使用保存在 Amazon Simple Storage Service (Amazon S3) 的 bash 脚本在主节点上安装库。下面示例中的脚本使用 easy_install-3.4 安装 pip。然后,脚本使用 pip 来为 Python 3 内核安装 paramikonltkscipyscikit-learnpandas

#!/bin/bash

sudo easy_install-3.4 pip
sudo /usr/local/bin/pip3 install paramiko nltk scipy scikit-learn pandas

在核心节点和任务节点上安装库

1.    创建 Python 脚本以在核心节点和任务节点上安装库。有关脚本示例,请参阅使用库和安装其他库中的例 在运行集群的核心节点上安装库

2.    将脚本保存到本地计算机或 Amazon Elastic Compute Cloud (Amazon EC2) 实例。

3.    运行与以下内容类似的命令以执行脚本。脚本中有两个参数:集群 ID 和您之前创建的 bash 脚本的 S3 位置。

python sample.py j-1K48XXXXXXHCB s3://mybucket/script-ssm.sh

注意:负责执行脚本的 IAM 用户或角色必须具有相应的 Systems Manager 权限。有关更多信息,请参阅配置 Systems Manager 用户访问权限


此页内容对您是否有帮助? |

返回 AWS Support 知识中心

需要帮助? 请访问 AWS 支持中心

发布时间:2019 年 1 月 30 日