简介
Shark是一个新的数据分析系统,在集群上进行查询处理和复杂分析。Shark使用一种新的分布式内存抽象,为SQL查询和复杂分析函数提供了统一的运行引擎,并能够有效的容错。这种新的分布式内存抽象使得shark执行SQL查询的速度比Hive快100倍,执行机器学习算法比Hadoop快100倍。与之前的系统不同,shark在取得如此良好性能的同时尽可能的保留了类似于mapreduce的执行框架,以及细粒度的容错特性。为了有效的执行SQL查询,shark提供了面向列存储,查询中重计划等机制。Shark在速度上能够与MPP分析数据库相当,同时又具有MPP分析数据库不具备的容错和复杂分析的能力。
Shark基本上就是在Spark的框架基础上提供和Hive一样的HiveQL命令接口,为了最大程度的保持和Hive的兼容性,Shark使用了Hive的API来实现query Parsing和Logic Plan generation,最后的PhysicalPlan execution阶段用Spark代替Hadoop MapReduce。通过配置Shark参数,Shark可以自动在内存中缓存特定的RDD,实现数据重用,进而加快特定数据集的检索。同时,Shark通过UDF用户自定义函数实现特定的数据分析学习算法,使得SQL数据查询和运算分析能结合在一起,最大化RDD的重复使用。
系统概述
Shark既支持SQL查询处理,也支持机器学习函数。Shark是与Hive兼容的,用户可以无需修改Hive的查询以及数据就能在shark上执行。
由于与Hive的兼容,shark