Spark environment manager and job orchestrator
Project description
Simple-Spark
Open source data platform for managing Apache Spark resources and job orchestration.
Project Goals
- Provide a single CLI tool to perform all functions:
- Orchestrate Spark clusters
- Manage metastore / data warehouse
- Run jobs and keep history
- Setup notebook server with access to data warehouse
- Compile all required configurations in single JSON/YAML file
- Improve Spark job development:
- Use same toolset to run jobs locally as on a cluster
- Keep all resources in central directory for transparency and customization
- Provide
SimpleSparkobject for easy access to easy access to all resources in codebase - Connect to remote resources through single API
Features
Modes
local: Single node cluster setup on local machinestandalone: Multi node cluster using Spark's standalone setupyarn: Multi node cluster built using Hadoop YARN setup (in development)kubernetes: Multi node cluster built Kubernetes setup (In development)
Services
- Cluster manager: Start/stop clusters, Spark UI for cluster
- Metastore: Central SQL server managing HIVE metastore (in development)
- Job orchestrator: Job scheduler via cron (in development)
- History server: SparkUI for past runs (in development)
Quick Start Guide
Once installed, the simplespark command can be used to
create and switch between different Spark environments.
Each environment contains a single cluster and a collection
of resources to run on the cluster.
Install
The CLI tool is hosted on PyPi and can be installed using pip
pip install simplespark
Create Configuration
The configuration can be expressed in a single JSON file or be defined in multiple files which are merged on import.
Each mode will require different configuration proprieties
to be defined and within each mode there are optional settings
for specific add ins.
Templates
The easiest way to start is to create a template for the specific mode by running the command below:
simplespark template <mode> <file-path>
Required Properties
For all configurations, the following proprieties must be defined.
name: Identifier of simplespark "environment"simplespark_home: Full path to directory used by simplespark to:- Store environment configurations
- Store any required libraries
- Store any scripts or custom modifications
bash_profile_file: Full path to bash profile file used to setSIMPLESPARK_HOMEenvironment variablepackages: TODOdriver: TODO
Import Configuration
TODO
Activate Environment
Activating a specific environment sets the JAVA/SCALA/SPARK_HOME variables
for a shell session to point to that environment, as well as any other
required setup.
This is done by calling an "activation" script generated in the import step:
source <environment-name>.sh
The environment will only be activated for the session in which this command called so that it is possible to interact with multiple environments at once.
The following native Spark commands will automatically connect to the activated environment:
spark-shellspark-submitpysparkspark-sql
Start/Stop Clusters
A cluster can be started / stopped by running the command below. Once started, a cluster will stay up until stopped, even if a user switches to another environment.
simplespark start <environment-name>
simplespark stop <environment-name>
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file simplespark-0.2.0.tar.gz.
File metadata
- Download URL: simplespark-0.2.0.tar.gz
- Upload date:
- Size: 14.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.12.3 Linux/6.11.0-17-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ebecbdd5c34357ab54c14086a9c9e4cf32131f37bb9e00e1f92c16b7000bbb9
|
|
| MD5 |
b4ee7f3226bee808b818c8ce463db3e0
|
|
| BLAKE2b-256 |
61a745e7d5b76cd5714ffb3c5ca1f7ce6ac6189f0b23f045d13540060d9204fb
|
File details
Details for the file simplespark-0.2.0-py3-none-any.whl.
File metadata
- Download URL: simplespark-0.2.0-py3-none-any.whl
- Upload date:
- Size: 17.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.12.3 Linux/6.11.0-17-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
361b6f861f85a4f5bd6781de0425cdd531b4940368b478347df709321f749c7d
|
|
| MD5 |
55cf3c06bbcea2dd9b61abdaaf12bde5
|
|
| BLAKE2b-256 |
c190a60cd8a0ea279fbc81171211d0468759ee45a62649aa15f6a7ce1122bda2
|