1.1 Spark SQL背景

在2011年之前,Hive是SQL on Hadoop领域的唯一选择。那时的Hive虽然实现了通过SQL语句处理Hadoop上的数据,但计算时仍然采用MapReduce框架。由于MapReduce框架本身性能不好,因此Hive的性能也不好,为此Spark团队在2011年启动了新的SQL on Hadoop项目——Shark。此时的Shark是基于Hive改造和优化而来的,所以对Hive的依赖较强。经过两三年的不断发展,Shark逐步成熟,其数据处理性能大大超越了基于MapReduce框架的Hive。然而,Shark对Hive的依赖阻碍了它的进一步发展,因此,2014年7月,Databricks宣布终止对Shark的开发,并重新开发了一套基于Spark框架的组件——Spark SQL。