Here's a couple of customizations we made at Yahoo with Hive Tez AMs:
- When calculating splits, HiveSplitGenerator takes the entire queue's capacity as available, and generates splits accordingly. While this greedy algorithm might be acceptable for exclusive queues, on a shared queue, greedy queries will hold other queries up. The algorithm that calculates the queue's headroom should be pluggable. The greedy version can be the default.
- TEZ_AM_VERTEX_MAX_TASK_CONCURRENCY and the AM's heap-size can be tuned separately from the AM's container size. We found that users who attempt to increase vertex concurrency tend to forget to bump AM memory/container sizes. It would be handier if those values were derived from the container size.
I'm combining these into a single patch, for easier review.
(Note to self: YHIVE-840)