AMPLab 将大数据分析负载分为三大类型:批量数据处理、交互式查询、实时流处理。而其中很重要的一环便是交互式查询。
大数据分析栈中需要满足用户 ad-hoc、reporting、 iterative 等类型的查询需求,也需要提供 SQL 接口来兼容原有数据库用户的使用习惯,同时也需要 SQL 能够进行关系模式的重组。完成这些重要的 SQL 任务的便是 Spark SQL 和 Shark 这两个开源分布式大数据查询引擎,它们可以理解为轻量级 Hive SQL 在 Spark 上的实现,业界将该类技术统称为 SQL on Hadoop。
在 Spark 峰 会 2014 上, Databricks 宣 布 不 再 支 持 Shark 的 开 发, 全 力 以 赴 开 发Shark 的下一代技术 Spark SQL,同时 Hive 社区也启动了 Hive on Spark 项目, 将 Spark作为 Hive(除 MapReduce 和 Tez 之外的)新执行引擎。根据伯克利的 Big Data Benchmark测试对比数据, Shark 的 In Memory 性能 可 以 达 到 Hive 的 100 倍, 即 使 是On Disk 也能达到 10 倍的性能提升,是 Hive 强有力的替代解决方案。而作为 Shark 的进化版本的 Spark SQL,在 AMPLab 最新的测试中的性能已经超过 Shark。图 1 展示了 Spark SQL和 Hive on Spark 是新的发展方向。
图 1 Spark SQL 和 Hive on Spark 是新的发展方向