Support generic shuffle service as set of two plugins: ShuffleProvider & ShuffleConsumer.
This will satisfy the following needs:
- Better shuffle and merge performance. For example: we are working on shuffle plugin that performs shuffle over RDMA in fast networks (10gE, 40gE, or Infiniband) instead of using the current HTTP shuffle. Based on the fast RDMA shuffle, the plugin can also utilize a suitable merge approach during the intermediate merges. Hence, getting much better performance.
- Satisfy MAPREDUCE-3060 - generic shuffle service for avoiding hidden dependency of NodeManager with a specific version of mapreduce shuffle (currently targeted to 0.24.0).
- Hadoop Acceleration through Network Levitated Merging, by Prof. Weikuan Yu from Auburn University with others, http://pasl.eng.auburn.edu/pubs/sc11-netlev.pdf
- I am attaching 2 documents with suggested Top Level Design for both plugins (currently, based on 1.0 branch)
- I am providing link for downloading UDA - Mellanox's open source plugin that implements generic shuffle service using RDMA and levitated merge. Note: At this phase, the code is in C++ through JNI and you should consider it as beta only. Still, it can serve anyone that wants to implement or contribute to levitated merge. (Please be advised that levitated merge is mostly suit in very fast networks) - http://www.mellanox.com/content/pages.php?pg=products_dyn&product_family=144&menu_section=69