如何编写一个 bootstrap 动作来将文件下载到 EMR 中的每个节点?

How to write a bootstrap action to download a file to each node in EMR?

我正在尝试将 postgres 驱动程序下载到集群的每个节点。我写了以下 bootstrap 操作,但似乎没有用:

#!/bin/bash
aws s3 cp s3://path/to/driver/jars/postgresql-9.4.1210.jre7.jar .

我知道这一定很容易做到,但我似乎找不到明显的例子。

您执行的 bootstrap 操作看起来不错并且可能正在运行。只是您可能假设它会将文件下载到您通过 ssh 连接到集群时所在的同一目录,即 /home/hadoop,但事实并非如此。如果我没记错的话,bootstrap 操作的工作目录在 /var/lib/bootstrap-actions 下。

把“.”换成“.”会更容易找到你下载的文件。类似于“/home/hadoop”。您还可以创建其他一些新目录,作为此脚本的一部分将文件下载到其中(如有必要,使用 "sudo mkdir" 和 "sudo chown")。