gpt4 book ai didi

java - 为什么我在 Google Dataflow 上收到 java.lang.IllegalStateException?

转载 作者:行者123 更新时间:2023-11-30 08:01:16 26 4
gpt4 key购买 nike

我已经升级到新的 Google 数据流版本 1.6,当我在本地机器上测试时,我在我的管道末端得到了一个 java.lang.IllegalStateException。我在 1.5.1 版本中没有这个问题。

这不会发生在本地的实时环境中。是新版本的bug吗?是否有必要更改我的代码以避免这些错误?

我附加了部分管道以尝试找出问题。

private static void getTableRowAndWrite(final PCollection<KV<Integer, Iterable<byte[]>>> groupedTransactions, final String tableName) {
// Get the tableRow element from the PCollection
groupedTransactions
.apply(ParDo
.of(((tableName.equals("avail")) ? new GetTableRowAvail() : new GetTableRowReservation())) //Get a TableRow
.named("Get " + tableName + " TableRows"))
.apply(BigQueryIO
.Write
.named("Write to BigQuery " + tableName) //Write to BigQuery
.withSchema(createTableSchema())
.to((SerializableFunction<BoundedWindow, String>) window -> {
String date = window.toString();
String date2 = date.substring(1, 5) + date.substring(6, 8) + date.substring(9, 11);
return "travelinsights-1056:hotel." + tableName + "_full_" + (TEST ? "test_" : "") + date2;
})
.withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_IF_NEEDED)
.withWriteDisposition(BigQueryIO.Write.WriteDisposition.WRITE_APPEND)
);
}

错误是:

Exception in thread "main" java.lang.IllegalStateException: Cleanup time 294293-06-23T12:00:54.774Z is beyond end-of-time
at com.google.cloud.dataflow.sdk.repackaged.com.google.common.base.Preconditions.checkState(Preconditions.java:199)
at com.google.cloud.dataflow.sdk.util.ReduceFnRunner.onTimer(ReduceFnRunner.java:642)
at com.google.cloud.dataflow.sdk.util.BatchTimerInternals.advance(BatchTimerInternals.java:134)
at com.google.cloud.dataflow.sdk.util.BatchTimerInternals.advanceInputWatermark(BatchTimerInternals.java:110)
at com.google.cloud.dataflow.sdk.util.GroupAlsoByWindowsViaOutputBufferDoFn.processElement(GroupAlsoByWindowsViaOutputBufferDoFn.java:91)
at com.google.cloud.dataflow.sdk.util.SimpleDoFnRunner.invokeProcessElement(SimpleDoFnRunner.java:49)
at com.google.cloud.dataflow.sdk.util.DoFnRunnerBase.processElement(DoFnRunnerBase.java:138)
at com.google.cloud.dataflow.sdk.transforms.ParDo.evaluateHelper(ParDo.java:1229)
at com.google.cloud.dataflow.sdk.transforms.ParDo.evaluateSingleHelper(ParDo.java:1098)
at com.google.cloud.dataflow.sdk.transforms.ParDo.access$300(ParDo.java:457)
at com.google.cloud.dataflow.sdk.transforms.ParDo$1.evaluate(ParDo.java:1084)
at com.google.cloud.dataflow.sdk.transforms.ParDo$1.evaluate(ParDo.java:1079)
at com.google.cloud.dataflow.sdk.runners.DirectPipelineRunner$Evaluator.visitTransform(DirectPipelineRunner.java:858)
at com.google.cloud.dataflow.sdk.runners.TransformTreeNode.visit(TransformTreeNode.java:219)
at com.google.cloud.dataflow.sdk.runners.TransformTreeNode.visit(TransformTreeNode.java:215)
at com.google.cloud.dataflow.sdk.runners.TransformTreeNode.visit(TransformTreeNode.java:215)
at com.google.cloud.dataflow.sdk.runners.TransformTreeNode.visit(TransformTreeNode.java:215)
at com.google.cloud.dataflow.sdk.runners.TransformTreeNode.visit(TransformTreeNode.java:215)
at com.google.cloud.dataflow.sdk.runners.TransformTreeNode.visit(TransformTreeNode.java:215)
at com.google.cloud.dataflow.sdk.runners.TransformTreeNode.visit(TransformTreeNode.java:215)
at com.google.cloud.dataflow.sdk.runners.TransformHierarchy.visit(TransformHierarchy.java:102)
at com.google.cloud.dataflow.sdk.Pipeline.traverseTopologically(Pipeline.java:259)
at com.google.cloud.dataflow.sdk.runners.DirectPipelineRunner$Evaluator.run(DirectPipelineRunner.java:814)
at com.google.cloud.dataflow.sdk.runners.DirectPipelineRunner.run(DirectPipelineRunner.java:526)
at com.google.cloud.dataflow.sdk.runners.DirectPipelineRunner.run(DirectPipelineRunner.java:96)
at com.google.cloud.dataflow.sdk.Pipeline.run(Pipeline.java:180)

最佳答案

您发现了一个错误!

已归档为 BEAM-341修复程序正在审核中 #464审查后将立即移植到 Dataflow Java SDK。

如果没有看到设置窗口、触发和允许迟到的代码,我无法确定这对您有何影响。但是如果您有非全局窗口和非常大的允许延迟,那么有一个简单的解决方法可以工作,这样窗口直到“时间结束”才到期。在这种情况下,您可以使用允许的延迟更新您的作业,该延迟只是非常大(例如数百年)而不是实际上是无限的。

关于java - 为什么我在 Google Dataflow 上收到 java.lang.IllegalStateException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37808159/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com