Description
Many hive operators make runtime decisions based on memory usage. For getting the memory usage, Runtime.getUsed() or MemoryMXBean methods are used. This works fine for MR or Tez but for LLAP the entire memory is shared among multiple executors and each executors can have different memory usage. HIVE-15503 assumes the memory usage is shared across all executors. If we track memory usage per executor, also memory usage by on-heap cache better decisions can be made by the operators.