【发布时间】:2016-08-08 22:59:44
【问题描述】:
我有一个管道设置,其中有 3 个主要阶段:
1) 从压缩文件中获取输入,在 s3 中解压缩该文件。对每个文件运行一些基本验证以保证其完整性,转到第 2 步
2) 在不同的 EC2 实例上同时启动 2 个处理任务(并行化这一步为我们节省了大量时间,因此我们需要它以提高效率)。每个 EC2 实例将对步骤 1 中解压缩的 s3 中的一些文件运行数据处理步骤,每个实例所需的文件不同。
3) 在 2 个同时处理的进程都完成后,启动另一个 EC2 实例来进行最终的数据处理。完成此操作后,运行清理作业以从 s3 中删除解压缩的文件,只保留原始 zip 文件。
因此,我们遇到的问题之一是我们有 4 个 EC2 实例运行此管道流程,但我们希望每个 EC2 实例都可以访问一些全局参数。如果我们在单个实例上运行,我们当然可以使用 shell 变量来完成这个任务,但确实需要单独的实例来提高效率。目前我们最好的想法是在 s3 存储桶中存储一个平面文件,该文件可以访问这些全局变量,并在初始化时读取它们并在需要更改时写回它们。这很恶心,似乎应该有更好的方法,但我们还想不出一个。我看到有一种方法可以设置可以在管道的任何部分访问的参数,但看起来你只能在每个管道级别上设置它,而不是在管道每次运行的粒度上设置。有没有人有任何资源可以在这里提供帮助?非常感谢。
【问题讨论】:
-
凹凸。有人有这方面的经验吗?
标签: amazon-web-services amazon-ec2 amazon-data-pipeline