Spree

screenshot of Spree

Live-updating Spark UI built with Meteor

Overview

SpreeGitter ChatSpree is an innovative web UI developed for Spark, leveraging the power of Meteor and React to provide a seamless and real-time experience. This platform redefines how users interact with Spark by offering an interface that combines both currently-running and historical applications in one unified screen. The design is intuitive, allowing users to monitor Spark jobs effortlessly while benefiting from enhancements in usability and performance.

What sets Spree apart is its capacity for real-time updates and a structured approach to data management, making it not only user-friendly but also scalable. With a persistent connection to MongoDB, users can access extensive data about Spark applications without the frustrations often associated with traditional Spark web UI elements.

Features

  • Real-time Updating: Experience instant updates across all pages, ensuring that the latest data is always displayed thanks to the Meteor framework.

  • Persistence & Scalability: Combines functionalities of Spark's web UI and history server into a single interface that stores application data in MongoDB for efficient archival.

  • Pagination and Sorting: Delegates management tasks to Mongo, allowing for better handling of large data volumes and enhancing performance compared to Spark's traditional methods.

  • Toggle-able Columns: Easily customize which columns are displayed in tables to focus on the most relevant data for your needs.

  • Collapsible Tables: Gain quick access to detailed information with easy-to-manage table collapsing, making navigation more efficient.

  • Persistent Preferences: All user settings are saved in cookies, maintaining your customization across sessions, including column visibility and table states.

  • Extensibility & Modularity: Spree allows users to create custom adaptations without impacting others’ experiences and offers two standalone modules for additional data handling.

  • Structured Usage Components: Consists of a web-app, a Node server for statistics aggregation, and a SparkListener for efficient data serialization, all working together for a cohesive experience.