hadoop - 如何覆盖Amazon Simple Workflow StartToCloseTimeout?

标签 hadoop amazon-s3 emr amazon-swf

如果数据大小以kb为单位,我已经能够执行我的代码以将数据从一个s3存储桶复制到另一个rbucket。但是,如果大小增加到几MB,我的任务将失败,并显示START_To_CLOSE错误。任务失败,taskStarttoClose超时。我尝试将defaultTaskStartToCloseTimeoutSeconds覆盖为60秒,之后在执行工作流程时,我看到该值设置为10秒。我不明白为什么等待60秒后值会改变。该 Activity 无法复制大文件。这是复制 Activity 的代码示例。

    @Override
    public String copyData(String jobFlowId, String inputFilename) throws IOException, InterruptedException {
    AmazonS3 s3Client = new AmazonS3Client(credentials);
    String baseOutputFilename = "job/"
    CopyObjectRequest copyObjRequest = new CopyObjectRequest(
            "bucket1", "/job/data.txt", "bucket2", OutputFilename);
    s3Client.copyObject(copyObjRequest);
    return "s3n://bucketName/eOutputFilename";
}

最佳答案

在 Activity 版本类型注册期间,会将defaultTaskStartToCloseTimeoutSeconds传递给SWF。版本类型注册仅发生一次,之后版本类型是不可变的。因此,更改Java代码中的超时值不会更改已注册的超时值。
解决方案是使用凹凸 Activity 版本号(在@Activities批注中)以强制进行新的 Activity 版本注册,或者显式指定超时覆盖(将ActivitySchedulingOptions参数传递给每个 Activity 调用)。

关于hadoop - 如何覆盖Amazon Simple Workflow StartToCloseTimeout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26185975/

相关文章:

hadoop - Stratio Sqoop 提示缺少 hadoop 库

hadoop - 无法创建Hive表,不稳定的元存储连接

hadoop - EMR上如何设置并行reducer的数量?

amazon-web-services - 如何使用amazonka presignURL

spring-boot - 如何在 Java 中将字节数组上传到 S3 存储桶?

amazon-web-services - 需要将大型表从 RDS 迁移到 DynamoDB 的策略建议

java - 是否可以读取正在写入 HDFS 的数据

grails - 亚马逊 Redshift : query execution hangs

hadoop - 在Apache pig 中使用FILTER后显示袋子

python-3.x - 使用 boto3 1.5.36 上的 S3.Object().put() 在 S3 中存储 matplotlib 图像