There are multiple tools built to access data from Hadoop.
Very popular amongst them are Hive and Impala. While Impala was built to address batch nature of Hive (for low cost SQLs), Impala cannot eliminate MapReduce completely as its really great a framework for dealing with batch data.
For low cost SQLs Impala gives dramatically great performance as it skips MapReduce jobs.
What exactly causes Impala to be faster than Hive? Is it in memory execution? Or is efficient and intelligent usage of existing hardware (named nodes and data nodes)?