Hadoop 如何覆盖Amazon简单工作流StartToCloseTimeout?
如果数据大小以kb为单位,我已经能够执行代码将数据从一个s3存储桶复制到另一个rbucket。但是,如果大小增长到几mb,则我的任务将失败,并出现START\u to\u CLOSE错误。任务失败,taskStarttoClose超时。我已尝试将defaultTaskStartToCloseTimeoutSeconds重写为60秒,之后在执行工作流时,我看到该值设置为10秒。我不明白当我让它等待60秒时,值为什么会改变。该活动无法复制大文件。下面是复制活动的代码示例Hadoop 如何覆盖Amazon简单工作流StartToCloseTimeout?,hadoop,amazon-s3,emr,amazon-swf,Hadoop,Amazon S3,Emr,Amazon Swf,如果数据大小以kb为单位,我已经能够执行代码将数据从一个s3存储桶复制到另一个rbucket。但是,如果大小增长到几mb,则我的任务将失败,并出现START\u to\u CLOSE错误。任务失败,taskStarttoClose超时。我已尝试将defaultTaskStartToCloseTimeoutSeconds重写为60秒,之后在执行工作流时,我看到该值设置为10秒。我不明白当我让它等待60秒时,值为什么会改变。该活动无法复制大文件。下面是复制活动的代码示例 @Override
@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";
}
在活动版本类型注册期间,将defaultTaskStartToCloseTimeoutSeconds传递给SWF。版本类型注册只发生一次,之后版本类型是不可变的。因此,更改Java代码中的超时值不会更改已注册的超时值。
解决方案是在注释中添加活动版本号以强制注册新的活动版本,或者明确指定超时覆盖,将参数传递给每个活动调用 您能告诉我们如何设置从开始到结束的超时吗?实际上,您的活动代码对解决问题没有多大帮助。此外,还有几个不同的开始-结束计时器-关于工作流和活动-您是否设置了正确的计时器?是的。这就是我发现的。我必须删除域并设置新域以注册新的超时值。这解决了我的问题。如果我们需要使用相同的域,那么我们必须使用不同的版本。谢谢你的回答。这很有帮助。默认情况下,每个帐户的域数是有限的。因此,不要轻易地使用它们:.100根据这一点,如果我们达到100个域的使用率会怎么样。我们是否可以弃用其中一些域并重新创建一个新域。因此,在使用100个域之后,我们是否可以弃用一些域并重新创建一个新域。