Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SPARK-40256][BUILD][K8S] Switch base image from openjdk to eclipse-temurin #37705

Closed
wants to merge 1 commit into from

Conversation

Yikun
Copy link
Member

@Yikun Yikun commented Aug 29, 2022

What changes were proposed in this pull request?

This PR switchs the base image from openjdk to eclipse-temurin (original openjdk).

The core change is: the OS of base image changes debian-bullseye to ubuntu-focal (based on debian bullseye).

Why are the changes needed?

For the above reason, I think eclipse-temurin is a good choice.

Does this PR introduce any user-facing change?

Yes, the docker images base image changes.

How was this patch tested?

CI passed, I also have a local test on: Yikun#162

@Yikun
Copy link
Member Author

Yikun commented Aug 29, 2022

cc @dongjoon-hyun @holdenk @HyukjinKwon @gengliangwang

This might be a big change but we have to do (replace openjdk by some other base images).

@Yikun
Copy link
Member Author

Yikun commented Aug 29, 2022

The alternate solution is we just swith openjdk image to debian-bullseye with openjdk 11 installation. like: Yikun#163. But it makes spark image depends on debian OS more, that means we will diffcult to support the Java version which debian OS doesn't support (such as openjdk-8-jre is not be supported in current debian anymore, only java11 and java17 supported).

search openjdk in debian:bullseye
$ docker run -ti debian:bullseye-slim bash
root@c9531d160a2f:/# apt update > /dev/null

root@c9531d160a2f:/# apt search openjdk-8-jre
Sorting... Done
Full Text Search... Done
root@c9531d160a2f:/# apt search openjdk-11-jre
Sorting... Done
Full Text Search... Done
openjdk-11-jre/stable-security 11.0.16+8-1~deb11u1 arm64
  OpenJDK Java runtime, using Hotspot JIT

openjdk-11-jre-headless/stable-security 11.0.16+8-1~deb11u1 arm64
  OpenJDK Java runtime, using Hotspot JIT (headless)

openjdk-11-jre-zero/stable-security 11.0.16+8-1~deb11u1 arm64
  Alternative JVM for OpenJDK, using Zero

root@c9531d160a2f:/# apt search openjdk-17-jre
Sorting... Done
Full Text Search... Done
openjdk-17-jre/stable-security 17.0.4+8-1~deb11u1 arm64
  OpenJDK Java runtime, using Hotspot JIT

openjdk-17-jre-headless/stable-security 17.0.4+8-1~deb11u1 arm64
  OpenJDK Java runtime, using Hotspot JIT (headless)

openjdk-17-jre-zero/stable-security 17.0.4+8-1~deb11u1 arm64
  Alternative JVM for OpenJDK, using Zero

@Yikun Yikun changed the title [SPARK-40256][K8S] Switch base image from openjdk to eclipse-temurin [SPARK-40256][BUILD][K8S] Switch base image from openjdk to eclipse-temurin Aug 29, 2022
Copy link
Member

@dongjoon-hyun dongjoon-hyun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Give the situation, looks like a reasonable approach.

Copy link
Member

@gengliangwang gengliangwang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

@Yikun
Copy link
Member Author

Yikun commented Aug 30, 2022

@dongjoon-hyun @gengliangwang @HyukjinKwon Thanks for your comments! I will test more today then make it ready for review

@Yikun
Copy link
Member Author

Yikun commented Aug 30, 2022

I did a complete a e2e test on docker image:

# openjdk base
./bin/docker-image-tool.sh -r yikunkero -p ./kubernetes/dockerfiles/spark/bindings/python/Dockerfile -R ./kubernetes/dockerfiles/spark/bindings/R/Dockerfile -t v3.3.0-temurin -X -b java_image_tag=11-jre-focal push

# eclipse-temurin(apply Dockerfile patch) on v3.3.0
./bin/docker-image-tool.sh -r yikunkero -p ./kubernetes/dockerfiles/spark/bindings/python/Dockerfile -R ./kubernetes/dockerfiles/spark/bindings/R/Dockerfile -t v3.3.0 -X -b java_image_tag=11-jre-slim push
openjdk(11-jre-slim) eclipse-temurin(11-jre-focal)
spark 376.51 MB 399.21 MB
spark-py 496.45 MB 500.79 MB
spark-r 656.88 MB 628.24 MB

All images works well, and no more image size gain (you can click each link to see detail).

So I think it's ready for reivew now.

@Yikun Yikun marked this pull request as ready for review August 30, 2022 14:07
@gengliangwang
Copy link
Member

The changes are straightforward and reasonable. Merging to master.

@dongjoon-hyun
Copy link
Member

Thank you, @Yikun , @HyukjinKwon , @gengliangwang .

pan3793 added a commit to apache/kyuubi that referenced this pull request Feb 10, 2023
### _Why are the changes needed?_

eclipse-temurin is the successor for openjdk, see apache/spark#37705

"The core change is: the OS of base image changes debian-bullseye to ubuntu-focal (based on debian bullseye)."

### _How was this patch tested?_
- [ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

- [ ] Add screenshots for manual tests if appropriate

- [ ] [Run test](https://kyuubi.readthedocs.io/en/master/develop_tools/testing.html#running-tests) locally before make a pull request

Closes #4288 from pan3793/image.

Closes #4288

b7b6190 [Cheng Pan] Use eclipse-temurin:8-jdk-focal as default base image

Authored-by: Cheng Pan <[email protected]>
Signed-off-by: Cheng Pan <[email protected]>
dongjoon-hyun pushed a commit that referenced this pull request Nov 4, 2023
### What changes were proposed in this pull request?
This pr upgrade Apache Arrow from 13.0.0 to 14.0.0.

### Why are the changes needed?
The Apache Arrow 14.0.0 release brings a number of enhancements and bug fixes.
‎
In terms of bug fixes, the release addresses several critical issues that were causing failures in integration jobs with Spark([GH-36332](apache/arrow#36332)) and problems with importing empty data arrays([GH-37056](apache/arrow#37056)). It also optimizes the process of appending variable length vectors([GH-37829](apache/arrow#37829)) and includes C++ libraries for MacOS AARCH 64 in Java-Jars([GH-38076](apache/arrow#38076)).
‎
The new features and improvements focus on enhancing the handling and manipulation of data. This includes the introduction of DefaultVectorComparators for large types([GH-25659](apache/arrow#25659)), support for extended expressions in ScannerBuilder([GH-34252](apache/arrow#34252)), and the exposure of the VectorAppender class([GH-37246](apache/arrow#37246)).
‎
The release also brings enhancements to the development and testing process, with the CI environment now using JDK 21([GH-36994](apache/arrow#36994)). In addition, the release introduces vector validation consistent with C++, ensuring consistency across different languages([GH-37702](apache/arrow#37702)).
‎
Furthermore, the usability of VarChar writers and binary writers has been improved with the addition of extra input methods([GH-37705](apache/arrow#37705)), and VarCharWriter now supports writing from `Text` and `String`([GH-37706](apache/arrow#37706)). The release also adds typed getters for StructVector, improving the ease of accessing data([GH-37863](apache/arrow#37863)).

The full release notes as follows:
- https://arrow.apache.org/release/14.0.0.html

### Does this PR introduce _any_ user-facing change?
No

### How was this patch tested?
Pass GitHub Actions

### Was this patch authored or co-authored using generative AI tooling?
No

Closes #43650 from LuciferYang/arrow-14.

Lead-authored-by: yangjie01 <[email protected]>
Co-authored-by: YangJie <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants