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

"Multiple environments cannot be created in detached mode"

Details

    • Bug
    • Status: Resolved
    • P2
    • Resolution: Fixed
    • None
    • 2.20.0
    • runner-flink
    • None

    Description

      Workarounds.restoreOriginalStdOutAndStdErrIfApplicable throws exception when running in standalone session cluster. Since FLINK-15504 is resolved in Flink 1.10, maybe we can remove the workaround in Beam?

      From user@ (https://lists.apache.org/thread.html/r1fb9456055ae51f998be67531f0ac55d3da9cf2647238b991eee7f97%40%3Cuser.beam.apache.org%3E):

      I am trying to upgrade from a Flink session cluster 1.8 to 1.9 and from Beam 2.16.0 to 2.19.0.
      Everything went quite smoothly, the local runner and the local Flink runner work flawlessly.

      However when I:
      1. Generate a Beam jar for the FlinkRunner via maven (mvn package -PFlinkRunner)
      2. Glue that into a Flink 1.9 docker image
      3. Start the image as a Standalone Session Cluster

      When I try to launch the first pipeline I get the following exception

      org.apache.flink.client.program.ProgramInvocationException: The main method caused an error: Failed to construct instance from factory method FlinkRunner#fromOptions(interface org.apache.beam.sdk.options.PipelineOptions)
              at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:593)
              at org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:438)
              at org.apache.flink.client.program.ClusterClient.run(ClusterClient.java:274)
              at org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend.java:746)
              at org.apache.flink.client.cli.CliFrontend.runProgram(CliFrontend.java:273)
              at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:205)
              at org.apache.flink.client.cli.CliFrontend.parseParameters(CliFrontend.java:1010)
              at org.apache.flink.client.cli.CliFrontend.lambda$main$10(CliFrontend.java:1083)
              at org.apache.flink.runtime.security.NoOpSecurityContext.runSecured(NoOpSecurityContext.java:30)
              at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1083)
      Caused by: java.lang.RuntimeException: Failed to construct instance from factory method FlinkRunner#fromOptions(interface org.apache.beam.sdk.options.PipelineOptions)
              at org.apache.beam.sdk.util.InstanceBuilder.buildFromMethod(InstanceBuilder.java:224)
              at org.apache.beam.sdk.util.InstanceBuilder.build(InstanceBuilder.java:155)
              at org.apache.beam.sdk.PipelineRunner.fromOptions(PipelineRunner.java:55)
              at org.apache.beam.sdk.Pipeline.run(Pipeline.java:309)
              at org.apache.beam.sdk.Pipeline.run(Pipeline.java:301)
              at ch.ricardo.di.beam.KafkaToBigQuery.main(KafkaToBigQuery.java:180)
              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:576)
              ... 9 more
      Caused by: java.lang.reflect.InvocationTargetException
              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.beam.sdk.util.InstanceBuilder.buildFromMethod(InstanceBuilder.java:214)
              ... 19 more
      Caused by: org.apache.flink.api.common.InvalidProgramException: Multiple environments cannot be created in detached mode
              at org.apache.flink.client.program.ContextEnvironmentFactory.createExecutionEnvironment(ContextEnvironmentFactory.java:67)
              at java.util.Optional.map(Optional.java:215)
              at org.apache.flink.api.java.ExecutionEnvironment.getExecutionEnvironment(ExecutionEnvironment.java:1068)
              at org.apache.beam.runners.flink.translation.utils.Workarounds.restoreOriginalStdOutAndStdErrIfApplicable(Workarounds.java:43)
              at org.apache.beam.runners.flink.FlinkRunner.<init>(FlinkRunner.java:96)
              at org.apache.beam.runners.flink.FlinkRunner.fromOptions(FlinkRunner.java:90)
              ... 24 more 
      

      Attachments

        Activity

          People

            mxm Maximilian Michels
            ibzib Kyle Weaver
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 2.5h
                2.5h