Giter Club home page Giter Club logo

spark_scheduler_simulator's Introduction

Spark Scheduler Simulator

Background

The purpose of this project is to help understanding how the scheduling decisions are made by the task scheduling policies in Apache Spark.

Requirements

A copy of Neptune Simulator Dependencies is required in the local Maven repository.

Configuration

ALL FIELDS IN THE CONFIGURATION ARE CURRENTLY REQUIRED

The JSON configuration has the following structure:

{
  "simulatorConfiguration": {
    "executors": 4, // the number of executors to be simulated
    "coresPerExec": 1, // the number of cores per executor
    "sparkSchedulerMode": "FIFO" // the task scheduling policy (one of FIFO, FAIR or NEPTUNE)
    "sparkDefaultParallelism": 8, // the parallelism to be simulated
  },
  "jobs": [
    {
      "representation": {
        "stages": [
          {
            "id": 1, // the unique id of the stage
            "dependsOn": [] // the list of unique stage ids this stage depends on
          },
          {
            "id": 2,
            "dependsOn": [1]
          }
        ]
      },
      "properties": {
        "duration": 2, // the active task duration in simulator quantums
        "sparkSchedulerPool": "batch", // the pool this job will be assigned to if the FAIR scheduling policy is selected
        "neptunePri": 2 // the Neptune priority this job will have if the NEPTUNE scheduling policy is selected
      },
      "metaproperties": {
        "arrivesAt": 0, // defines at what quantum will a job of this type first arrive
        "repeatsEvery": 1, // defines how many quantums will pass before such a job arrives again 
        "repeatsTimes": 1 // defines how many times will a job of this type arrive
      }
    }
  ]
}

spark_scheduler_simulator's People

Contributors

clolov avatar

Stargazers

limengzhaolihai avatar

Watchers

Panagiotis Garefalakis avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.