首页 > 解决方案 > 如何确保所有 EMR 核心节点始终包含一个 keystore 文件?

问题描述

我需要 EMR 上的所有核心节点在 /usr/local/spark/conf/ 目录中包含一个密钥库文件。当核心节点调整大小继续进行时,这尤其具有挑战性,因为任何新启动的核心节点都没有密钥库文件,甚至没有 /usr/local/spark/conf/ 目录。我需要在任何新启动的核心节点上自动使用密钥库文件填充此目录的过程。

我创建了一个 shell 脚本来创建 /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 .

标签: amazon-web-servicesamazon-emr

解决方案


是的,您可以使用引导操作功能从 S3 运行预定义脚本:

您可以使用引导操作来安装其他软件或自定义集群实例的配置。引导操作是在 Amazon EMR 使用 Amazon Linux Amazon 系统映像 (AMI) 启动实例后在集群上运行的脚本。引导操作在 Amazon EMR 安装您在创建集群时指定的应用程序之前以及集群节点开始处理数据之前运行。如果您将节点添加到正在运行的集群,引导操作也会以相同的方式在这些节点上运行。您可以创建自定义引导操作并在创建集群时指定它们。

请参阅https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-bootstrap.html


推荐阅读