Skip to content

Commit 3c61314

Browse files
committed
[CELEBORN-2239] Support Spark 4.1
1 parent 526f7bb commit 3c61314

File tree

10 files changed

+168
-2
lines changed

10 files changed

+168
-2
lines changed

.github/workflows/deps.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ jobs:
129129
matrix:
130130
module:
131131
- 'spark-4.0'
132+
- 'spark-4.1'
132133
steps:
133134
- uses: actions/checkout@v4
134135
- name: Setup JDK 17

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ Celeborn worker's slot count decreases when a partition is allocated and increme
4646

4747
Build Celeborn via `make-distribution.sh`:
4848
```shell
49-
./build/make-distribution.sh -Pspark-2.4/-Pspark-3.0/-Pspark-3.1/-Pspark-3.2/-Pspark-3.3/-Pspark-3.4/-Pspark-3.5/-Pspark-4.0/-Pflink-1.16/-Pflink-1.17/-Pflink-1.18/-Pflink-1.19/-Pflink-1.20/-Pflink-2.0/-Pflink-2.1/-Pflink-2.2/-Pmr
49+
./build/make-distribution.sh -Pspark-2.4/-Pspark-3.0/-Pspark-3.1/-Pspark-3.2/-Pspark-3.3/-Pspark-3.4/-Pspark-3.5/-Pspark-4.0/-Pspark-4.1/-Pflink-1.16/-Pflink-1.17/-Pflink-1.18/-Pflink-1.19/-Pflink-1.20/-Pflink-2.0/-Pflink-2.1/-Pflink-2.2/-Pmr
5050
```
5151

5252
Package `apache-celeborn-${project.version}-bin.tgz` will be generated.
@@ -63,6 +63,7 @@ Package `apache-celeborn-${project.version}-bin.tgz` will be generated.
6363
| Spark 3.4 | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
6464
| Spark 3.5 | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
6565
| Spark 4.0 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔ |
66+
| Spark 4.1 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔ |
6667
| Flink 1.16 | ❌ | ✔ | ✔ | ❌ | ❌ | ❌ | ❌ |
6768
| Flink 1.17 | ❌ | ✔ | ✔ | ❌ | ❌ | ❌ | ❌ |
6869
| Flink 1.18 | ❌ | ✔ | ✔ | ❌ | ❌ | ❌ | ❌ |

build/make-distribution.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,7 @@ if [ "$SBT_ENABLED" == "true" ]; then
356356
sbt_build_client -Pspark-3.5
357357
export JAVA_HOME=$JAVA17_HOME
358358
sbt_build_client -Pspark-4.0
359+
sbt_build_client -Pspark-4.1
359360
export JAVA_HOME=$JAVA8_HOME
360361
sbt_build_client -Pflink-1.16
361362
sbt_build_client -Pflink-1.17
@@ -399,6 +400,7 @@ else
399400
build_spark_client -Pspark-3.5
400401
export JAVA_HOME=$JAVA17_HOME
401402
build_spark_client -Pspark-4.0
403+
build_spark_client -Pspark-4.1
402404
export JAVA_HOME=$JAVA8_HOME
403405
build_flink_client -Pflink-1.16
404406
build_flink_client -Pflink-1.17

build/release/release.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ upload_nexus_staging() {
115115

116116
export JAVA_HOME=$JAVA17_HOME
117117
echo "Deploying celeborn-client-spark-4-shaded_2.13"
118-
${PROJECT_DIR}/build/sbt -Pspark-4.0 "clean;celeborn-client-spark-4-shaded/publishSigned"
118+
${PROJECT_DIR}/build/sbt -Pspark-4.1 "clean;celeborn-client-spark-4-shaded/publishSigned"
119119
export JAVA_HOME=$JAVA8_HOME
120120

121121
echo "Deploying celeborn-client-flink-1.16-shaded_2.12"
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
#
2+
# Licensed to the Apache Software Foundation (ASF) under one or more
3+
# contributor license agreements. See the NOTICE file distributed with
4+
# this work for additional information regarding copyright ownership.
5+
# The ASF licenses this file to You under the Apache License, Version 2.0
6+
# (the "License"); you may not use this file except in compliance with
7+
# the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
#
17+
18+
RoaringBitmap/1.0.6//RoaringBitmap-1.0.6.jar
19+
commons-crypto/1.0.0//commons-crypto-1.0.0.jar
20+
commons-io/2.17.0//commons-io-2.17.0.jar
21+
commons-lang3/3.17.0//commons-lang3-3.17.0.jar
22+
commons-logging/1.1.3//commons-logging-1.1.3.jar
23+
failureaccess/1.0.2//failureaccess-1.0.2.jar
24+
guava/33.1.0-jre//guava-33.1.0-jre.jar
25+
hadoop-client-api/3.3.6//hadoop-client-api-3.3.6.jar
26+
hadoop-client-runtime/3.3.6//hadoop-client-runtime-3.3.6.jar
27+
jackson-annotations/2.15.3//jackson-annotations-2.15.3.jar
28+
jackson-core/2.15.3//jackson-core-2.15.3.jar
29+
jackson-databind/2.15.3//jackson-databind-2.15.3.jar
30+
jackson-module-scala_2.13/2.15.3//jackson-module-scala_2.13-2.15.3.jar
31+
jcl-over-slf4j/1.7.36//jcl-over-slf4j-1.7.36.jar
32+
jsr305/1.3.9//jsr305-1.3.9.jar
33+
jul-to-slf4j/1.7.36//jul-to-slf4j-1.7.36.jar
34+
leveldbjni-all/1.8//leveldbjni-all-1.8.jar
35+
lz4-java/1.8.0//lz4-java-1.8.0.jar
36+
metrics-core/4.2.25//metrics-core-4.2.25.jar
37+
metrics-graphite/4.2.25//metrics-graphite-4.2.25.jar
38+
metrics-jvm/4.2.25//metrics-jvm-4.2.25.jar
39+
netty-all/4.1.118.Final//netty-all-4.1.118.Final.jar
40+
netty-buffer/4.1.118.Final//netty-buffer-4.1.118.Final.jar
41+
netty-buffer/4.2.7.Final//netty-buffer-4.2.7.Final.jar
42+
netty-codec-base/4.2.7.Final//netty-codec-base-4.2.7.Final.jar
43+
netty-codec-compression/4.2.7.Final//netty-codec-compression-4.2.7.Final.jar
44+
netty-codec-dns/4.1.118.Final//netty-codec-dns-4.1.118.Final.jar
45+
netty-codec-dns/4.2.7.Final//netty-codec-dns-4.2.7.Final.jar
46+
netty-codec-haproxy/4.1.118.Final//netty-codec-haproxy-4.1.118.Final.jar
47+
netty-codec-http/4.1.118.Final//netty-codec-http-4.1.118.Final.jar
48+
netty-codec-http/4.2.7.Final//netty-codec-http-4.2.7.Final.jar
49+
netty-codec-http2/4.1.118.Final//netty-codec-http2-4.1.118.Final.jar
50+
netty-codec-http2/4.2.7.Final//netty-codec-http2-4.2.7.Final.jar
51+
netty-codec-marshalling/4.2.7.Final//netty-codec-marshalling-4.2.7.Final.jar
52+
netty-codec-memcache/4.1.118.Final//netty-codec-memcache-4.1.118.Final.jar
53+
netty-codec-mqtt/4.1.118.Final//netty-codec-mqtt-4.1.118.Final.jar
54+
netty-codec-protobuf/4.2.7.Final//netty-codec-protobuf-4.2.7.Final.jar
55+
netty-codec-redis/4.1.118.Final//netty-codec-redis-4.1.118.Final.jar
56+
netty-codec-smtp/4.1.118.Final//netty-codec-smtp-4.1.118.Final.jar
57+
netty-codec-socks/4.1.118.Final//netty-codec-socks-4.1.118.Final.jar
58+
netty-codec-socks/4.2.7.Final//netty-codec-socks-4.2.7.Final.jar
59+
netty-codec-stomp/4.1.118.Final//netty-codec-stomp-4.1.118.Final.jar
60+
netty-codec-xml/4.1.118.Final//netty-codec-xml-4.1.118.Final.jar
61+
netty-codec/4.1.118.Final//netty-codec-4.1.118.Final.jar
62+
netty-codec/4.2.7.Final//netty-codec-4.2.7.Final.jar
63+
netty-common/4.1.118.Final//netty-common-4.1.118.Final.jar
64+
netty-common/4.2.7.Final//netty-common-4.2.7.Final.jar
65+
netty-handler-proxy/4.1.118.Final//netty-handler-proxy-4.1.118.Final.jar
66+
netty-handler-proxy/4.2.7.Final//netty-handler-proxy-4.2.7.Final.jar
67+
netty-handler/4.1.118.Final//netty-handler-4.1.118.Final.jar
68+
netty-handler/4.2.7.Final//netty-handler-4.2.7.Final.jar
69+
netty-resolver-dns-classes-macos/4.1.118.Final//netty-resolver-dns-classes-macos-4.1.118.Final.jar
70+
netty-resolver-dns-native-macos/4.1.118.Final/osx-aarch_64/netty-resolver-dns-native-macos-4.1.118.Final-osx-aarch_64.jar
71+
netty-resolver-dns-native-macos/4.1.118.Final/osx-x86_64/netty-resolver-dns-native-macos-4.1.118.Final-osx-x86_64.jar
72+
netty-resolver-dns/4.1.118.Final//netty-resolver-dns-4.1.118.Final.jar
73+
netty-resolver-dns/4.2.7.Final//netty-resolver-dns-4.2.7.Final.jar
74+
netty-resolver/4.1.118.Final//netty-resolver-4.1.118.Final.jar
75+
netty-resolver/4.2.7.Final//netty-resolver-4.2.7.Final.jar
76+
netty-transport-classes-epoll/4.1.118.Final//netty-transport-classes-epoll-4.1.118.Final.jar
77+
netty-transport-classes-epoll/4.2.7.Final//netty-transport-classes-epoll-4.2.7.Final.jar
78+
netty-transport-classes-kqueue/4.1.118.Final//netty-transport-classes-kqueue-4.1.118.Final.jar
79+
netty-transport-classes-kqueue/4.2.7.Final//netty-transport-classes-kqueue-4.2.7.Final.jar
80+
netty-transport-native-epoll/4.1.118.Final/linux-aarch_64/netty-transport-native-epoll-4.1.118.Final-linux-aarch_64.jar
81+
netty-transport-native-epoll/4.1.118.Final/linux-riscv64/netty-transport-native-epoll-4.1.118.Final-linux-riscv64.jar
82+
netty-transport-native-epoll/4.1.118.Final/linux-x86_64/netty-transport-native-epoll-4.1.118.Final-linux-x86_64.jar
83+
netty-transport-native-epoll/4.2.7.Final/linux-aarch_64/netty-transport-native-epoll-4.2.7.Final-linux-aarch_64.jar
84+
netty-transport-native-epoll/4.2.7.Final/linux-riscv64/netty-transport-native-epoll-4.2.7.Final-linux-riscv64.jar
85+
netty-transport-native-epoll/4.2.7.Final/linux-x86_64/netty-transport-native-epoll-4.2.7.Final-linux-x86_64.jar
86+
netty-transport-native-kqueue/4.1.118.Final/osx-aarch_64/netty-transport-native-kqueue-4.1.118.Final-osx-aarch_64.jar
87+
netty-transport-native-kqueue/4.1.118.Final/osx-x86_64/netty-transport-native-kqueue-4.1.118.Final-osx-x86_64.jar
88+
netty-transport-native-kqueue/4.2.7.Final/osx-aarch_64/netty-transport-native-kqueue-4.2.7.Final-osx-aarch_64.jar
89+
netty-transport-native-kqueue/4.2.7.Final/osx-x86_64/netty-transport-native-kqueue-4.2.7.Final-osx-x86_64.jar
90+
netty-transport-native-unix-common/4.1.118.Final//netty-transport-native-unix-common-4.1.118.Final.jar
91+
netty-transport-native-unix-common/4.2.7.Final//netty-transport-native-unix-common-4.2.7.Final.jar
92+
netty-transport-rxtx/4.1.118.Final//netty-transport-rxtx-4.1.118.Final.jar
93+
netty-transport-sctp/4.1.118.Final//netty-transport-sctp-4.1.118.Final.jar
94+
netty-transport-udt/4.1.118.Final//netty-transport-udt-4.1.118.Final.jar
95+
netty-transport/4.1.118.Final//netty-transport-4.1.118.Final.jar
96+
netty-transport/4.2.7.Final//netty-transport-4.2.7.Final.jar
97+
paranamer/2.8.3//paranamer-2.8.3.jar
98+
paranamer/2.8//paranamer-2.8.jar
99+
protobuf-java/3.25.5//protobuf-java-3.25.5.jar
100+
scala-library/2.13.17//scala-library-2.13.17.jar
101+
scala-reflect/2.13.17//scala-reflect-2.13.17.jar
102+
slf4j-api/1.7.36//slf4j-api-1.7.36.jar
103+
snakeyaml/2.2//snakeyaml-2.2.jar
104+
snappy-java/1.1.10.5//snappy-java-1.1.10.5.jar
105+
zstd-jni/1.5.7-6//zstd-jni-1.5.7-6.jar

dev/reformat

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ else
3535
${PROJECT_DIR}/build/mvn spotless:apply -Pspark-3.3
3636
${PROJECT_DIR}/build/mvn spotless:apply -Pspark-3.5
3737
${PROJECT_DIR}/build/mvn spotless:apply -Pspark-4.0
38+
${PROJECT_DIR}/build/mvn spotless:apply -Pspark-4.1
3839
${PROJECT_DIR}/build/mvn spotless:apply -Paws
3940
${PROJECT_DIR}/build/mvn spotless:apply -Paliyun
4041
${PROJECT_DIR}/build/mvn spotless:apply -Pmr

docs/developers/sbt.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ The following table indicates the compatibility of Celeborn Spark and Flink clie
3636
| Spark 3.4 | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
3737
| Spark 3.5 | ❌ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
3838
| Spark 4.0 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔ |
39+
| Spark 4.1 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔ |
3940
| Flink 1.16 | ❌ | ✔ | ✔ | ❌ | ❌ | ❌ | ❌ |
4041
| Flink 1.17 | ❌ | ✔ | ✔ | ❌ | ❌ | ❌ | ❌ |
4142
| Flink 1.18 | ❌ | ✔ | ✔ | ❌ | ❌ | ❌ | ❌ |

pom.xml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1581,6 +1581,25 @@
15811581
</properties>
15821582
</profile>
15831583

1584+
<profile>
1585+
<id>spark-4.1</id>
1586+
<modules>
1587+
<module>client-spark/common</module>
1588+
<module>client-spark/spark-3</module>
1589+
<module>client-spark/spark-3-columnar-common</module>
1590+
<module>client-spark/spark-4-columnar-shuffle</module>
1591+
<module>client-spark/spark-4-shaded</module>
1592+
<module>tests/spark-it</module>
1593+
</modules>
1594+
<properties>
1595+
<lz4-java.version>1.8.0</lz4-java.version>
1596+
<scala.version>2.13.17</scala.version>
1597+
<scala.binary.version>2.13</scala.binary.version>
1598+
<spark.version>4.1.0</spark.version>
1599+
<zstd-jni.version>1.5.7-6</zstd-jni.version>
1600+
</properties>
1601+
</profile>
1602+
15841603
<profile>
15851604
<id>jdk-8</id>
15861605
<activation>

project/CelebornBuild.scala

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,7 @@ object Utils {
494494
case Some("spark-3.4") => Some(Spark34)
495495
case Some("spark-3.5") => Some(Spark35)
496496
case Some("spark-4.0") => Some(Spark40)
497+
case Some("spark-4.1") => Some(Spark41)
497498
case _ => None
498499
}
499500

@@ -942,6 +943,23 @@ object Spark40 extends SparkClientProjects {
942943
override val sparkColumnarShuffleVersion: String = "4"
943944
}
944945

946+
object Spark41 extends SparkClientProjects {
947+
948+
val sparkClientProjectPath = "client-spark/spark-3"
949+
val sparkClientProjectName = "celeborn-client-spark-4"
950+
val sparkClientShadedProjectPath = "client-spark/spark-4-shaded"
951+
val sparkClientShadedProjectName = "celeborn-client-spark-4-shaded"
952+
953+
val lz4JavaVersion = "1.8.0"
954+
val sparkProjectScalaVersion = "2.13.17"
955+
956+
val sparkVersion = "4.1.0"
957+
val zstdJniVersion = "1.5.7-6"
958+
val scalaBinaryVersion = "2.13"
959+
960+
override val sparkColumnarShuffleVersion: String = "4"
961+
}
962+
945963
trait SparkClientProjects {
946964

947965
val sparkClientProjectPath: String

tests/spark-it/pom.xml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,5 +328,23 @@
328328
</dependency>
329329
</dependencies>
330330
</profile>
331+
<profile>
332+
<id>spark-4.1</id>
333+
<dependencies>
334+
<dependency>
335+
<groupId>org.apache.celeborn</groupId>
336+
<artifactId>celeborn-client-spark-3_${scala.binary.version}</artifactId>
337+
<version>${project.version}</version>
338+
<scope>test</scope>
339+
</dependency>
340+
<dependency>
341+
<groupId>org.apache.celeborn</groupId>
342+
<artifactId>celeborn-client-spark-3_${scala.binary.version}</artifactId>
343+
<version>${project.version}</version>
344+
<type>test-jar</type>
345+
<scope>test</scope>
346+
</dependency>
347+
</dependencies>
348+
</profile>
331349
</profiles>
332350
</project>

0 commit comments

Comments
 (0)