Skip to content

Latest commit

 

History

History
60 lines (44 loc) · 2.95 KB

File metadata and controls

60 lines (44 loc) · 2.95 KB

Project Guide

In the root directory Swallow-master, three subprojects are contained: swallow, swallow-sim, and swallow-benchmark.

swallow

Efficient flow scheduling system in data-intensive clusters, based on Akka.
Development Language: Scala.
Full Project: swallow.

swallow-sim

Trace-driven simulator for flow scheduling used in swallow.
Development Language: Scala.
Full project: swallow-sim.

swallow-benchmark

Synthesized data from real-world traces of data-intensive clusters.
Full project: swallow-benchmark.

Prerequisites

How to Download

  1. Download from https://github.com/kimihe/Swallow or use git clone git@github.com:kimihe/Swallow.git.

  2. Extract the zip file to a convenient location:

  • On Linux and OSX systems, open a terminal and use the command unzip Swallow-master.zip.
  • On Windows, use a tool such as File Explorer to extract the project.

How to Complile and Run

Take Swallow-master/swallow as an example:

  • In a console, change directories to the top level of the unzipped project. For example, if you used the default project name, Swallow-master, and extracted the project to your root directory, from the root directory, enter: cd Swallow-master/swallow.

  • In the above directory, enter sbt compile to compile the source codes and enter sbt run to execute the program. sbt will download project dependencies, build the project and compile the archived package. Output looks like this:

Multiple main classes detected, select one to run:

 [1] examples.ExampleClusterApp
 [2] examples.ExampleMaster
 [3] examples.ExampleReceiver
 [4] examples.ExampleSender
 [5] examples.KMActorAggregation
 [6] examples.KMClusterApp
 [7] examples.KMLocalActor
 [8] examples.KMMasterActor
 [9] examples.KMRemoteActor

Enter number: 
  • For example: enter 1 and select to run [1] examples.ExampleClusterApp . Then, you can start three new terminals to run [2] examples.ExampleMaster, [4] examples.ExampleSender and [3] examples.ExampleReceiver.

  • These four processes simulate a simplest distributed scheduling system. In this example, all of them are run on the same machine, you can modify the application.conf in directory resources to respectively configure their IP address and communication port. Swallow can be deployed on different machines and run as a real distributed scheduling system.

About Intellij IDEA

You can also organize this project with Intellij IDEA, just open from the root directory Swallow-master/swallow.

More

This project is still in development, welcome any contributions to help make it better. :)