Skip to content

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

Closed
Yikun wants to merge 1 commit into
apache:masterfrom
Yikun:switch-temurin
Closed

[SPARK-40256][BUILD][K8S] Switch base image from openjdk to eclipse-temurin#37705
Yikun wants to merge 1 commit into
apache:masterfrom
Yikun:switch-temurin

Conversation

@Yikun

@YikunYikun commented Aug 29, 2022

Copy link
Copy Markdown
Member

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

Yikun commented Aug 29, 2022

Copy link
Copy Markdown
MemberAuthor

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

Yikun commented Aug 29, 2022

Copy link
Copy Markdown
MemberAuthor

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

@YikunYikun 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-temurinAug 29, 2022

@dongjoon-hyundongjoon-hyun left a comment

Copy link
Copy Markdown
Member

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.

@gengliangwanggengliangwang left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

+1

@Yikun

Copy link
Copy Markdown
MemberAuthor

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

@Yikun

Yikun commented Aug 30, 2022

Copy link
Copy Markdown
MemberAuthor

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)
spark376.51 MB399.21 MB
spark-py496.45 MB500.79 MB
spark-r656.88 MB628.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
Copy Markdown
Member

The changes are straightforward and reasonable. Merging to master.

@dongjoon-hyun

Copy link
Copy Markdown
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#4288b7b6190 [Cheng Pan] Use eclipse-temurin:8-jdk-focal as default base image
Authored-by: Cheng Pan <chengpan@apache.org>
Signed-off-by: Cheng Pan <chengpan@apache.org>
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 <yangjie01@baidu.com>
Co-authored-by: YangJie <yangjie01@baidu.com>
Signed-off-by: Dongjoon Hyun <dhyun@apple.com>
Sign up for freeto 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

@Yikun@gengliangwang@dongjoon-hyun@HyukjinKwon