Giter Club home page Giter Club logo

shridoop's Introduction

Shridoop

Codacy Badge

General Information

This is an attempt to recreate a resilient distributed file-system like Apache's HDFS. This was undertaken to try to better understand both a network-based file-system, and distributed-networks as a whole.

In order to achieve its resiliency, the file-system utilizes both regular heartbeats to detect failures, and Reed-Solomon code algorithms to repair corruptions upon detection.

It should be noted that this was developed locally, without access to a network cluster. The system still leverages TCP and an event-driven API to communicate between logically independent nodes. The 'Distributed' part is simulated, with each node having its own local filesystem, given via a relative home path specified in the 'chunkServers' config file. A minimum (if any, really) amount of changes should be necessary to convert this to a true local cluster.

As a side note, the name comes combining an awesome professor who taught me about all of this stuff during my last year in college, with the software this repo is attempting to replicate some features of (HDFS). A minimum amount of 3rd party libraries were used, and only to simplify extra stuff like terminal auto-complete, and string formatting.


Requirements

Note: Any operating system should work given that this is Java.


Setup

  1. Clone the Repository
  2. While inside the Distributed_File_System directory, run maven compile to compile and bundle into a fat jar inside of ./target
  3. Edit chunkServers_[OS]. File line format: [serverName] [Port] [dynamicPath]
    Note: The start-up script terminal_setup.sh uses this file
  4. java -cp /target/Distributed_File_System-1.0.jar fileSystem.node.Controller [PORT]


Screenshots

Controller

Client

ChunkHolder

Filesystem

shridoop's People

Contributors

codacy-badger avatar reeceasharp avatar

Watchers

 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.