Uploaded image for project: 'Beam'
  1. Beam
  2. BEAM-10375

HBaseIO.Read not deterministic coder exception when executed with flink 1.10.1

Agile BoardAttach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • P3
    • Resolution: Won't Fix
    • 2.21.0
    • None
    • io-java-hbase
    • None

    Description

      Given that HBaseIO.readAll() is applied to a PCollection<HBaseIO.Read>, the following exception is thrown when readAll is executed by the flink runner:

       The program finished with the following exception:
      
      org.apache.flink.client.program.ProgramInvocationException: The main method caused an error: the keyCoder of a GroupByKey must be deterministic
              at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:335)
              at org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:205)
              at org.apache.flink.client.ClientUtils.executeProgram(ClientUtils.java:138)
              at org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend.java:662)
              at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:210)
              at org.apache.flink.client.cli.CliFrontend.parseParameters(CliFrontend.java:893)
              at org.apache.flink.client.cli.CliFrontend.lambda$main$10(CliFrontend.java:966)
              at java.security.AccessController.doPrivileged(Native Method)
              at javax.security.auth.Subject.doAs(Subject.java:422)
              at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1692)
              at org.apache.flink.runtime.security.HadoopSecurityContext.runSecured(HadoopSecurityContext.java:41)
              at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:966)
      Caused by: java.lang.IllegalStateException: the keyCoder of a GroupByKey must be deterministic
              at org.apache.beam.sdk.transforms.GroupByKey.expand(GroupByKey.java:234)
              at org.apache.beam.sdk.transforms.GroupByKey.expand(GroupByKey.java:110)
              at org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:542)
              at org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:476)
              at org.apache.beam.sdk.values.PCollection.apply(PCollection.java:355)
              at org.apache.beam.sdk.transforms.Reshuffle.expand(Reshuffle.java:87)
              at org.apache.beam.sdk.transforms.Reshuffle.expand(Reshuffle.java:49)
              at org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:542)
              at org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:493)
              at org.apache.beam.sdk.values.PCollection.apply(PCollection.java:368)
              at org.apache.beam.runners.core.construction.SplittableParDoNaiveBounded$SplittableProcessNaive.expand(SplittableParDoNaiveBounded.java:
      110)
              at org.apache.beam.runners.core.construction.SplittableParDoNaiveBounded$SplittableProcessNaive.expand(SplittableParDoNaiveBounded.java:
      95)
              at org.apache.beam.sdk.Pipeline.applyReplacement(Pipeline.java:569)
              at org.apache.beam.sdk.Pipeline.replace(Pipeline.java:294)
              at org.apache.beam.sdk.Pipeline.replaceAll(Pipeline.java:212)
              at org.apache.beam.runners.flink.FlinkPipelineExecutionEnvironment.translate(FlinkPipelineExecutionEnvironment.java:114)
              at org.apache.beam.runners.flink.FlinkRunner.run(FlinkRunner.java:107)
              at org.apache.beam.sdk.Pipeline.run(Pipeline.java:317)
              at org.apache.beam.sdk.Pipeline.run(Pipeline.java:303)
              at com.cerner.pophealth.mpm.processing.beam.pipeline.bounded.EmpiPersonConversionPipeline.main(EmpiPersonConversionPipeline.java:96)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:498)
              at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:321)
              ... 11 more
      Caused by: org.apache.beam.sdk.coders.Coder$NonDeterministicException: SerializableCoder(org.apache.beam.sdk.io.hbase.HBaseIO$Read) is not deter
      ministic because:
              Java Serialization may be non-deterministic.
              at org.apache.beam.sdk.coders.SerializableCoder.verifyDeterministic(SerializableCoder.java:205)
              at org.apache.beam.sdk.transforms.GroupByKey.expand(GroupByKey.java:232) 

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            Unassigned Unassigned
            richard.moorhead Richard Moorhead
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Issue deployment