Apache Hive: It is a data warehouse software project built on top of Apache Hadoop for providing data query and analysis. Hive gives a SQL-like interface to query data stored in various databases and file systems that integrate with Hadoop.
It is an advanced analytics language that would allow you to leverage your familiarity with SQL (without writing MapReduce jobs separately) then Apache Hive is definitely the way to go. HiveQL queries anyway get converted into a corresponding MapReduce job which executes on the cluster and gives you the final output. Hive (and its underlying SQL like language HiveQL) does have its limitations though and if you have a really fine-grained, complex processing requirements at hand you would definitely want to take a look at MapReduce.
Apache Impala: It is an open-source massively parallel processing SQL query engine for data stored in a computer cluster running Apache Hadoop. Impala has been described as the open-source equivalent of Google F1, which inspired its development in 2012.
Cloudera Impala is an excellent choice for programmers for running queries on HDFS and Apache HBase as it doesn’t require data to be moved or transformed prior to processing. Cloudera Impala easily integrates with the Hadoop ecosystem, as its file and data formats, metadata, security, and resource management frameworks are the same as those used by MapReduce, Apache Hive, Apache Pig, and other Hadoop software.
Below is a table of differences between Apache Hive and Apache Impala:
|S.No.||Apache Hive||Apache Impala|
|1.||Hive is perfect for those project where compatibility and speed are equally important||Impala is an ideal choice when starting a new project|
|2.||Hive translates queries to be executed into MapReduce jobs||Impala responds quickly through massively parallel processing|
|3.||Versatile and plug-able language||Used for brute force processing|
|4.||Every hive query has this problem of “cold start”||It avoids startup overhead as daemon processes are started at boot time|
|5.||It has SQL like queries||It provides HDFS and apache HBase storage support|
|6.||Use familiar built in user defined functions(UFFDs) to manipulate the data||Can easily read metadata using driver and SQL syntax from apache hive|
|7.||It is data warehouse infrastructure build over hadoop platform||It doesn’t require data to be moved or transformed|
|8.||Used for analysis processing and visualization||Used by programmers for running queries on HDFS and apache HBase|