The global Hadoop market is expected to expand at an average compound annual growth rate (CAGR) of 26.3% between now and 2023, a testimony to how aggressively companies have been adopting this big data software framework for storing and processing the gargantuan files that characterize big data. But to turbo-charge this processing so that it performs faster, additional engine software is used in concert with Hadoop.
AtScale, a business intelligence (BI) Hadoop solutions provider, periodically performs BI-on-Hadoop benchmarks that compare the performances of various Hadoop engines to determine which engine is best for which Hadoop processing scenario. The benchmark results assist systems professionals charged with managing big data operations as they make their engine choices for different types of Hadoop processing deployments.
SEE: How to optimize Hadoop performance by getting a handle on processing demands (TechRepublic)
Recently, AtScale published a new survey that I discussed with Josh Klahr, AtScale’s vice president of product management.
“In this benchmark, we tested four different Hadoop engines,” said Klahr. “The engines were Spark, Impala, Hive, and a newer entrant, Presto. We used the same cluster size for the benchmark that we had used in previous benchmarking.”
What AtScale found is that there was no clear engine winner in every case, but that some engines outperformed others depending on what the big data processing task involved. In one case, the benchmark looked at which Hadoop engine performed best when it came to processing large SQL data queries that involved big data joins.
“There are companies out there that have six billion row tables that they have to join for a single SQL query,” said Klahr. “The data architecture that these companies use include runtime filtering and pre-filtering of data based upon certain data specifications or parameters that end users input, and which also contribute to the processing load. In these cases, Spark and Impala performed very well. However, if it was a case of many concurrent users requiring access to the data, Presto processed more data.”
The AtScale benchmark also looked at which Hadoop engine had attained the greatest improvement in processing speed over the past six months.
“The most noticeable gain that we saw was with Hive, especially in the process of performing SQL queries,” said Klahr. “In the past six months, Hive has moved from release 1.4 to 2.1–and on an average, is now processing data 3.4 times faster.”
Other Hadoop engines also experienced processing performance gains over the past six months. Spark was processing data 2.4 times faster than it was six months ago, and Impala had improved processing over the past six months by 2.8%. In all cases, better processing speeds were being delivered to users.
“What we found is that all four of these engines are well suited to the Hadoop environment and deliver excellent performance to end users, but that some engines perform in certain processing contexts better than others,” said Klahr. “For instance, if your organization must support many concurrent users of your data, Presto and Impala perform best. However, if you are looking for the greatest amount of stability in your Hadoop processing engine, Hive is the best choice. And if you are faced with billions of rows of data that you must combine in complicated data joins for SQL queries in your big data environment, Spark is the best performer.”
Klahr said that many sites seems to be relatively savvy about Hadoop performance and engine options, but that a majority really hadn’t done much benchmarking when it came to using SQL.
“The best news for users is that all of these engines perform capably with Hadoop,” sad Klahr. “Now that we also have benchmark information on SQL performance, this further enables sites to make the engine choices that best suit their Hadoop processing scenarios.”