我需要EMR上的所有核心节点在/ usr / local / spark / conf /目录中包含一个密钥库文件。当继续调整核心节点大小时,这尤其具有挑战性,因为任何新启动的核心节点都将没有密钥库文件,甚至都没有/ usr / local / spark / conf /目录。我需要自动化在任何新启动的核心节点上用密钥库文件填充此目录的过程。
我已经创建了一个外壳脚本来创建/ usr / local / spark / conf目录,然后通过从Amazon S3提取密钥库文件来填充该文件。问题在于要使此Shell脚本自动在任何新启动的EMR核心节点上运行。
mkdir -p /usr/local/spark/conf/
cd /usr/local/spark/conf/
aws s3 cp s3://my_bucket/certs/cacerts .
aws s3 cp s3://my_bucket/certs/keystore.jks .
答案 0 :(得分:0)
是的,您可以使用引导操作功能从S3运行预定义的脚本:
您可以使用引导操作来安装其他软件或自定义群集实例的配置。引导操作是在Amazon EMR使用Amazon Linux Amazon Machine Image(AMI)启动实例之后在集群上运行的脚本。引导操作在Amazon EMR安装您创建集群时指定的应用程序之前以及集群节点开始处理数据之前运行。如果将节点添加到正在运行的群集中,引导操作也将以相同的方式在这些节点上运行。您可以创建自定义引导操作,并在创建集群时指定它们。
请参见https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-bootstrap.html