我想问一下,我正在使用AWS中的数据管道来完成一项处理任务,但是我一直无法让它开始工作。
基本上,我有两个代表两个MySQL数据库的数据节点,这些数据应该定期从其中提取,并放置在一个S3桶中。这个复制活动很好地选择了每天添加的每一行,比如今天-1天。
但是,包含作为CSV收集的数据的桶应该成为EMR活动的输入,EMR活动将处理这些文件并聚合信息。问题是,我不知道如何删除或移动已处理的文件到不同的桶,所以我不必每天处理所有文件。
为了澄清,我正在寻找一种从管道中移动或删除S3桶中已经处理的文件的方法。我能这么做吗?还有其他方法,我只能根据命名约定或其他方式处理EMR活动中的一些文件吗?
发布于 2014-10-29 23:23:03
另一种不使用EMR的方法是在一个小的s3cmd实例中通过ShellCommandActivity安装EC2工具,然后您可以使用管道中的s3cmd以任何您想要的方式操作S3回购。
这种方法的一个棘手部分是通过配置文件安全地配置s3cmd (基本上是传递访问密钥和秘密),因为您不能仅仅将ssh放到EC2实例中并在管道中交互地使用's3cmd -配置‘。
为此,您可以使用'cat‘在ShellCommandActivity中创建一个配置文件。例如:
cat <<EOT >> s3.cfg
blah
blah
blah
EOT然后在每次调用s3cmd时使用'-c‘选项附加配置文件,如下所示:
s3cmd -c s3.cfg ls听起来很复杂,但很管用。
https://stackoverflow.com/questions/26514404
复制相似问题