Joshfischer/eco config (#2658)

* initial addition of directory structure

* clean up

* adding base config for build file \
fixing linting issues

* saving progress.  Still need to fix missing class definition on ParseException

* fixing shaded dependency issue

* starting experimentation on how to approach loading config from yaml file

* experimenting with snake yaml to extract topology defintion

* adding start of topology and component definitions

* refactor

* successfully populating ecoTopologyDefinition from yaml

* clean up

* clean up

* fixed versioning error

* saving progress, still working through building topology from yaml

* saving progress

* cleaning up styles

* checking default config values

* adding test for customized config map

* transitioning to support heron api

* removing last of streamlet api from eco

* making a pivot to match storm flux behavior better

* saving before chaos

* saving progress, running into issue with verifying the toplogy

* adding some logging for debugging

* printing topology definition.  Adding tests

* saving with failing test, still working through investigation

* back to working

* saving progress

* finishing eco parser test

* handling exception

* package change

* package change

* adding missed id

* MVP of ECO at this commit

* fixing styles, pulling topology name from topology definition file

* fixing spelling

* clean up

* clean up

* refatoring eco builder package

* start to removing static calls

* removing static calls

* still working through linting errors

* fixing lint errors

* fixing setter

* adding test

* start to verfiying bean references

* verifying components

* fixing tests

* worked passed constructor argument issue.  Now need to deal with backtypes from Storm

* saving before restructure

* building kafka topology

* fixing imports for test

* fixing folder structure

* refactor for testability

* removing more statics

* cleaning up eco builders

* confirmation config builder maps as expected

* finishing configBuilder test

* cleaning up BoltBuilder

* verfiying component builder

* replacing java logger

* adding tests

* adding verification of building implementations of IRichBolts

* clean up

* adding mocks for testing

* fixing classNotFound errors

* coverage on all of stream bulder

* need to refactor ObjectBuilder

* moving static call

* adding verifcation to test

* clean up

* clean up

* verifying path of building objects with args

* covering other path

* starting on builder utility

* verifying className

* adding test

* adding test

* clean up

* adding test

* clean up

* clean up

* fixing checkstyle errors

* fixing linting issues

* fixing linting issues

* fixing linting issues

* fixing linting issues

* linting issues

* fixing checkstyle

* fixing checkstyle

* saving progress

* adding simple wordcount eco example

* adding examples

* checkstyles
48 files changed
tree: ca251977a2006a108d2b020b2db9e100b1cd9db4
  1. config/
  2. deploy/
  3. docker/
  4. examples/
  5. heron/
  6. heronpy/
  7. integration_test/
  8. release/
  9. scripts/
  10. storm-compatibility/
  11. storm-compatibility-examples/
  12. third_party/
  13. tools/
  14. vagrant/
  15. website/
  16. .gitignore
  17. .gitmodules
  18. .travis.yml
  19. ADOPTERS.md
  20. bazel_configure.py
  21. LICENSE
  22. NOTICE
  23. README.md
  24. WORKSPACE
README.md

Build Status

Heron

Heron is realtime analytics platform developed by Twitter. It is the direct successor of Apache Storm, built to be backwards compatible with Storm's topology API but with a wide array of architectural improvements.

For more information:

Update

We recently merged updates to run Heron natively using Mesos in AWS, Mesos/Aurora in AWS, and locally on a laptop.

We also added beta testing for Apache YARN support using Apache REEF, in addition to the Simple Linux Utility for Resource Management (SLURM).

We are working to add support for Mesosphere DC/OS and Kubernetes. We will continue to post updates as we progress.

Documentation

The official documentation for Heron is located at heronstreaming.io. To contribute to documentation, build and run the documentation locally. More information can be found in the documentation README.