[REEF-1658] Gracefully shut down all threads at the end of the REEF job

This work is part of "REEF as a library" project
[REEF-1561](https://issues.apache.org/jira/browse/REEF-1561)

Summary of changes:
  * Close the `EvaluatorIdlenessThreadPool` in `DriverRuntimeStopHandler`
  * Make `EvaluatorIdlenessThreadPool` `AutoCloseable` to close the local thread
    pool
  * Implement `EvaluatorManager.shutdown()` method and call it when removing
    evaluator from `Evaluators`
  * Make sure `.close()` methods never throw in `DispatchingEStage` and
    `EvaluatorMessageDispatcher`
  * Give better thread names in `EvaluatorIdlenessThreadPool`
  * Improve logging and error handling in `.close()` methods in all path of the
    driver shutdown

JIRA:
  [REEF-1658](https://issues.apache.org/jira/browse/REEF-1658)

Pull Request:
  This closes #1175
6 files changed
tree: d6070d7dfbbee4d4fa6443ca4ae3f720af7f4f3b
  1. bin/
  2. dev/
  3. lang/
  4. website/
  5. .gitattributes
  6. .gitignore
  7. .travis.yml
  8. appveyor.yml
  9. Doxyfile
  10. HEADER
  11. LICENSE
  12. NOTICE
  13. pom.xml
  14. README.md
README.md

Apache REEF™

Apache REEF™ (Retainable Evaluator Execution Framework) is a library for developing portable applications for cluster resource managers such as Apache Hadoop YARN or Apache Mesos. For example, Microsoft Azure Stream Analytics is built on REEF and Hadoop.

Online Documentation

Detailed information on REEF can be found in the following places:

The developer mailing list is the best way to reach REEF‘s developers when the above aren’t sufficient.

Build Status

ComponentOSStatus
REEF JavaUbuntuBuild Status
REEF.NETWindowsBuild status

Building REEF

Java.NET
Build & run unit testsjava\BUILD.mdcs\BUILD.md

Releases

downloads NuGet package

License

Apache 2.0