Google Dataflow作业因“上传的数据不足”错误而失败

时间:2017-04-25 00:33:16

标签: google-cloud-platform dataflow gcp beam

我正在尝试创建一个处理几千个文件的数据流作业,并为每个文件写入GCS中的另一个目标。

我必须做很多TextIO作为源,并作为单独的流写入目标。示例代码段如下所示:

List<PCollection<String>> pcs = new ArrayList<>();
for(int i = 0; i < 2000; i++) {
        pcs.add(p.apply(TextIO.Read.from("gs://wushilin-asia/some-folder/input-" + i + "/*")));
}

for(int i = 0; i < 2000; i++) {
        pcs.get(i).apply(TextIO.Write.to("gs://wushilin-asia/some-folder/output-" + i + "/"));
}
p.run();

这会无声地失败(似乎永远悬空),并在后端显示“上传的数据不足”错误。

这里出了什么问题?

1 个答案:

答案 0 :(得分:0)

事实证明,数据流结构过于复杂,数据流作业元数据存储无法处理。减少到更少的组件解决了这个问题