A high-performance alternative to spark-submit
for launching Spark applications via the Spark Operator in Kubernetes clusters. This plugin eliminates the JVM spin-up overhead associated with traditional spark-submit
commands, providing faster application startup times.
- 🚀 Native implementation bypassing JVM overhead
- ⚡ Faster Spark application startup
- 🔧 Flexible configuration options
- 🔒 Secure execution environment
- 📊 Resource management and optimization
- 🔄 Support for various Spark application types (Java, Scala, Python, R)
- Kubernetes cluster
- Spark Operator installed in the cluster
- kubectl configured to access the cluster
-
Clone the repository:
git clone https://github.com/your-org/native-submit-plugin.git cd native-submit-plugin
-
Build the plugin:
go build -buildmode=plugin -o plugin.so ./main
-
Deploy the plugin to your cluster:
kubectl apply -f deploy/
native-submit will be plugin to spark operator.
The plugin consists of several components:
common/
: Shared utilities and constantsdriver/
: Driver pod managementservice/
: Core service implementationconfigmap/
: Configuration managementmain/
: Plugin entry point
# Build the plugin
go build -buildmode=plugin -o plugin.so ./main
# Run tests
go test -v ./...
# Run unit tests
go test -v ./...
# Run tests with coverage
go test -cover ./...
# Run specific package tests
go test -v ./pkg/...