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.1.tar.gz (14.8 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.1-py3-none-any.whl (17.6 kB view details)

Uploaded Python 3

File details

Details for the file simplespark-0.2.1.tar.gz.

File metadata

  • Download URL: simplespark-0.2.1.tar.gz
  • Upload date:
  • Size: 14.8 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.1.tar.gz
Algorithm Hash digest
SHA256 4165b460b8159b9795fcce287ba3578823aa35908940bc7e96f4503b568d5369
MD5 e2251adea8ee971016529f0fe7ea2a2f
BLAKE2b-256 41e78de36311a58e52bdc0724ff406778330fdcd12942d2572ec4553484b9c37

See more details on using hashes here.

File details

Details for the file simplespark-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: simplespark-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 17.6 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ddfb68c17d144c651c5cf163bd1a3753452913c343ad783c0de91d7b93d6eff9
MD5 43ed95b63a9f3b335a5cc9c4082c6bd1
BLAKE2b-256 7a2782e3ab25664428b5924401092e19d28c4b0e8c34b168283352ba2ea485de

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