Skip to main content

Spark environment manager and job orchestrator

Project description

Simple-Spark

Open source data platform for managing Apache Spark resources and job orchestration.

Project Goals

  1. 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
  2. Compile all required configurations in single JSON/YAML file
  3. 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 SimpleSpark object 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 machine
  • standalone: Multi node cluster using Spark's standalone setup
  • yarn: 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 set SIMPLESPARK_HOME environment variable
  • packages: TODO
  • driver: 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-shell
  • spark-submit
  • pyspark
  • spark-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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

simplespark-0.2.0.tar.gz (14.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

simplespark-0.2.0-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

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

Hashes for simplespark-0.2.0.tar.gz
Algorithm Hash digest
SHA256 4ebecbdd5c34357ab54c14086a9c9e4cf32131f37bb9e00e1f92c16b7000bbb9
MD5 b4ee7f3226bee808b818c8ce463db3e0
BLAKE2b-256 61a745e7d5b76cd5714ffb3c5ca1f7ce6ac6189f0b23f045d13540060d9204fb

See more details on using hashes here.

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

Hashes for simplespark-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 361b6f861f85a4f5bd6781de0425cdd531b4940368b478347df709321f749c7d
MD5 55cf3c06bbcea2dd9b61abdaaf12bde5
BLAKE2b-256 c190a60cd8a0ea279fbc81171211d0468759ee45a62649aa15f6a7ce1122bda2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page