Skip to content
This repository has been archived by the owner on Dec 20, 2022. It is now read-only.

Commit

Permalink
Spark-2.4 support
Browse files Browse the repository at this point in the history
In spark-2.4 mapOutputTracker.getMapSizesByExecutorId returns iterator, rather then seq.

Change-Id: I4a65a6e66af34792e29ed758fe81281df2cb908b
  • Loading branch information
petro-rudenko committed Nov 26, 2018
1 parent 616834d commit 4545823
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 4 deletions.
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Mellanox ConnectX-5 network adapter with 100GbE RoCE fabric, connected with a Me
For more information on configuration, performance tuning and troubleshooting, please visit the [SparkRDMA GitHub Wiki](https://github.com/Mellanox/SparkRDMA/wiki)

## Runtime requirements
* Apache Spark 2.0.0/2.1.0/2.2.0/2.3.0
* Apache Spark 2.0.0/2.1.0/2.2.0/2.3.0/2.4.0
* Java 8
* An RDMA-supported network, e.g. RoCE or Infiniband

Expand All @@ -49,14 +49,15 @@ The pre-built binaries are packed as an archive that contains the following file
* spark-rdma-3.1-for-spark-2.1.0-jar-with-dependencies.jar
* spark-rdma-3.1-for-spark-2.2.0-jar-with-dependencies.jar
* spark-rdma-3.1-for-spark-2.3.0-jar-with-dependencies.jar
* spark-rdma-3.1-for-spark-2.4.0-jar-with-dependencies.jar
* libdisni.so

libdisni.so **must** be in `java.library.path` on every Spark Master and Worker (usually in /usr/lib)

### Configuration

Provide Spark the location of the SparkRDMA plugin jars by using the extraClassPath option. For standalone mode this can
be added to either spark-defaults.conf or any runtime configuration file. For client mode this **must** be added to spark-defaults.conf. For Spark 2.0.0 (Replace with 2.1.0, 2.2.0 or 2.3.0 according to your Spark version):
be added to either spark-defaults.conf or any runtime configuration file. For client mode this **must** be added to spark-defaults.conf. For Spark 2.0.0 (Replace with 2.1.0, 2.2.0, 2.3.0, 2.4.0 according to your Spark version):
```
spark.driver.extraClassPath /path/to/SparkRDMA/target/spark-rdma-3.1-for-spark-2.0.0-jar-with-dependencies.jar
spark.executor.extraClassPath /path/to/SparkRDMA/target/spark-rdma-3.1-for-spark-2.0.0-jar-with-dependencies.jar
Expand All @@ -76,7 +77,7 @@ Building the SparkRDMA plugin requires [Apache Maven](http://maven.apache.org/)

1. Obtain a clone of [SparkRDMA](https://github.com/Mellanox/SparkRDMA)

2. Build the plugin for your Spark version (either 2.0.0, 2.1.0, 2.2.0 or 2.3.0), e.g. for Spark 2.0.0:
2. Build the plugin for your Spark version (either 2.0.0, 2.1.0, 2.2.0, 2.3.0, 2.4.0), e.g. for Spark 2.0.0:
```
mvn -DskipTests clean package -Pspark-2.0.0
```
Expand Down
6 changes: 6 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,12 @@
<spark.version>2.3.0</spark.version>
</properties>
</profile>
<profile>
<id>spark-2.4.0</id>
<properties>
<spark.version>2.4.0</spark.version>
</properties>
</profile>
</profiles>

<dependencies>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ private[spark] class RdmaShuffleReader[K, C](
startPartition,
endPartition,
handle.shuffleId,
mapOutputTracker.getMapSizesByExecutorId(handle.shuffleId, startPartition, endPartition))
mapOutputTracker.getMapSizesByExecutorId(handle.shuffleId,
startPartition, endPartition).toSeq)

val dummyShuffleBlockId = ShuffleBlockId(0, 0, 0)
// Wrap the streams for compression based on configuration
Expand Down

0 comments on commit 4545823

Please sign in to comment.