You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@beam.apache.org by hardip singh <ha...@gmail.com> on 2023/04/17 17:29:13 UTC

[Question] Beam Java Dataflow v1 Runner Oracle JDK

Hi,

I was hoping some one could shed some light and potentially a solution to a problem I face with usage of the v1 runner.

Due to Oracle Java SE licensing changes of older Java versions, I am looking to move to the eclipse (Temurin) OpenJdk runtime, which I can see has been updated in the container used by the V2 runner of version 2.46.0 (https://github.com/apache/beam/blob/master/sdks/java/container/Dockerfile#L19). My code is running on Java 8.

My code is currently running on the V1 runner which looks to be using the Oracle OpenJDK runtime.

Upgrading the pipelines tom the V2 runners causes significant degradation of performance, which I am not in a position to work through straight away.

So is it possible to use the v1 runner with a none Oracle provided JVM??

I cannot seem to find the source of the docker container for beam-java-batch/streaming (I was looking to see if I update that to the same java runtime as the V2 runner).

Any guidance would be gratefully recieved.

Thanks

Hardip

Re: [Question] Beam Java Dataflow v1 Runner Oracle JDK

Posted by hardip singh <ha...@gmail.com>.
Hi Bruno,

Yep it is indeed based on the OpenJDK source code.  However it looks to be provided by Oracle (and hence falls under the oracle licence):

%docker run -it --entrypoint '/bin/bash' gcr.io/cloud-dataflow/v1beta3/beam-java-streaming:2.46.0
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
root@e8dfe675ad85:/# java  -XshowSettings:properties -version 2>&1 | grep vendor
    java.specification.vendor = Oracle Corporation
    java.vendor = Oracle Corporation
    java.vendor.url = http://java.oracle.com/
    java.vendor.url.bug = http://bugreport.sun.com/bugreport/
    java.vm.specification.vendor = Oracle Corporation
    java.vm.vendor = Oracle Corporation

(The eclipse runtimes vendor, as used in beam_javaX_sdk, are set to Temurin with adoptium url’s.)

I’m unable to find the docker file to see exactly were the runtime is being sourced from.

Thanks

Hardip


> On 17 Apr 2023, at 19:00, Bruno Volpato via user <us...@beam.apache.org> wrote:
> 
> Hello Hardip,
> 
> If you are using Beam 2.46.0, it should be using OpenJDK already (not Oracle's JRE as before).
> 
> No need for the sources, you can check the images directly from your terminal, if you have Docker installed:
> 
> $ docker run -it --entrypoint '/bin/bash' gcr.io/cloud-dataflow/v1beta3/beam-java-streaming:2.46.0 <http://gcr.io/cloud-dataflow/v1beta3/beam-java-streaming:2.46.0>
> # java -version
> openjdk version "1.8.0_322"
> OpenJDK Runtime Environment (build 1.8.0_322-b06)
> OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)
> 
> 
> Best,
> Bruno
> 
> 
> 
> 
> 
> 
> 
> On Mon, Apr 17, 2023 at 1:29 PM hardip singh <hardip.bahia@gmail.com <ma...@gmail.com>> wrote:
>> Hi,
>> 
>> I was hoping some one could shed some light and potentially a solution to a problem I face with usage of the v1 runner.
>> 
>> Due to Oracle Java SE licensing changes of older Java versions, I am looking to move to the eclipse (Temurin) OpenJdk runtime, which I can see has been updated in the container used by the V2 runner of version 2.46.0 (https://github.com/apache/beam/blob/master/sdks/java/container/Dockerfile#L19). My code is running on Java 8.
>> 
>> My code is currently running on the V1 runner which looks to be using the Oracle OpenJDK runtime.
>> 
>> Upgrading the pipelines tom the V2 runners causes significant degradation of performance, which I am not in a position to work through straight away.
>> 
>> So is it possible to use the v1 runner with a none Oracle provided JVM??
>> 
>> I cannot seem to find the source of the docker container for beam-java-batch/streaming (I was looking to see if I update that to the same java runtime as the V2 runner).
>> 
>> Any guidance would be gratefully recieved.
>> 
>> Thanks
>> 
>> Hardip


Re: [Question] Beam Java Dataflow v1 Runner Oracle JDK

Posted by Bruno Volpato via user <us...@beam.apache.org>.
Hello Hardip,

If you are using Beam 2.46.0, it should be using OpenJDK already (not
Oracle's JRE as before).

No need for the sources, you can check the images directly from your
terminal, if you have Docker installed:


$ docker run -it --entrypoint '/bin/bash'
gcr.io/cloud-dataflow/v1beta3/beam-java-streaming:2.46.0

# java -version

openjdk version "1.8.0_322"
OpenJDK Runtime Environment (build 1.8.0_322-b06)
OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)



Best,
Bruno







On Mon, Apr 17, 2023 at 1:29 PM hardip singh <ha...@gmail.com> wrote:

> Hi,
>
> I was hoping some one could shed some light and potentially a solution to
> a problem I face with usage of the v1 runner.
>
> Due to Oracle Java SE licensing changes of older Java versions, I am
> looking to move to the eclipse (Temurin) OpenJdk runtime, which I can see
> has been updated in the container used by the V2 runner of version 2.46.0 (
> https://github.com/apache/beam/blob/master/sdks/java/container/Dockerfile#L19).
> My code is running on Java 8.
>
> My code is currently running on the V1 runner which looks to be using the
> Oracle OpenJDK runtime.
>
> Upgrading the pipelines tom the V2 runners causes significant degradation
> of performance, which I am not in a position to work through straight away.
>
> So is it possible to use the v1 runner with a none Oracle provided JVM??
>
> I cannot seem to find the source of the docker container for
> beam-java-batch/streaming (I was looking to see if I update that to the
> same java runtime as the V2 runner).
>
> Any guidance would be gratefully recieved.
>
> Thanks
>
> Hardip
>