颠覆大数据分析之Shark:分布式系统上的SQL接口

内存计算已经成为了海量数据分析的一个重要范式。这一点可以从两个方面来进行理解。一方面,尽管当要查询的数据达到了PB级,但是由于时间和空间的局限性,在一个集群环境上仅需64GB的缓存就能够满足绝大多数的查询(95%)。Ananthanarayanan等人在一次研究中发现了这点。另一方面,由于机器学习算法需要在数据的工作集上进行迭代,如果工作数据集在内存中,它的实现会变得非常高效。Shark本质上可以看作是一个内存型的分布式SQL系统。

Shark基于Spark提供了SQL接口。Shark的主要特性就是它的SQL接口以及它能够基于机器学习来进行分析的能力,同时还有它为SQL查询和机器学习算法所提供的细粒度的容错性。对于查询而言,即使是粗粒度的RDD也能工作得很好,因为Shark可以从失败中进行恢复,它会去重新构造集群中丢失的RDD分区。这个恢复是细粒度的,这意味着它可以在查询的过程中进行恢复,并不像并行数据库系统那样得重新执行整个查询。

时间: 2024-09-15 12:06:00

颠覆大数据分析之Shark:分布式系统上的SQL接口的相关文章

颠覆大数据分析之结论

颠覆大数据分析之结论 译者:吴京润    购书 随着Hadoop2.0到来--被称作YARN的Hadoop新版本--超越Map-Reduce的思想已经稳固下来.就像本章要解释的,Hadoop YARN将资源调度从MR范式分离出来.需要注意的是在Hadoop1.0,Hadoop第一代,调度功能是与Map-Reduce范式绑定在一起的--这意味着在HDFS上惟一的处理方式就是Map-Reduce或它的业务流程.这一点已在YARN得到解决,它使得HDFS数据可以使用非Map-Reduce范式处理.其含

颠覆大数据分析之Spark弹性分布式数据集

颠覆大数据分析之Spark弹性数据集 译者:黄经业    购书 Spark中迭代式机器学习算法的数据流可以通过图2.3来进行理解.将它和图2.1中Hadoop MR的迭代式机器学习的数据流比较一下.你会发现在Hadoop MR中每次迭代都会涉及HDFS的读写,而在Spark中则要简单得多.它仅需从HDFS到Spark中的分布式共享对象空间的一次读入--从HDFS文件中创建RDD.RDD可以重用,在机器学习的各个迭代中它都会驻留在内存里,这样能显著地提升性能.当检查结束条件发现迭代结束的时候,会将

颠覆大数据分析之第二章结束语

颠覆大数据分析之第二章结束语 译者:黄经业    购书 本章讨论了一些业务场景,以及它们在BDAS框架中的实现.同时还介绍了什么是BDAS框架,并重点介绍了Spark, Shark,以及Mesos.Spark在那些涉及到优化的场景中非常有用--比如说Ooyala希望基于约束条件来动态地选择最优的CDN,以便提升视频的用户体验.必须注意的是,正如第一章所说的,众所周知,约束及变量过多的优化问题是很难在Hadoop MR中解决的.随机法要更适合Hadoop.不过你应当时刻牢记一点,Hadoop很难解

颠覆大数据分析之Storm简介

颠覆大数据分析之Storm简介 译者:吴京润    购书 之前我们已经极为简单的介绍了Storm.现在我们要对它做一个更详细的了解.Storm是一个复杂事件处理引擎(CEP),最初由Twitter实现.在实时计算与分析领域,Storm正在得到日益广泛的应用.Storm可以辅助基本的流式处理,例如聚合数据流,以及基于数据流的机器学习(译者注:原文是ML,根据上下文判断,此处应是指机器学习,下文相同不再缀述).通常情况,数据分析(译者注:原文为prestorage analytics,意义应是保存分

颠覆大数据分析之Storm的设计模式

颠覆大数据分析之Storm的设计模式 译者:吴京润    购书 我们将要学习如何实现基于Storm的一些通用设计模式.设计模式,我们也称之为软件工程意识,是在给定上下文环境中,针对觉设计问题的可重用的通常解决方案.(Gamma et al. 1995).它们是分布式远程过程调用(DRPCs),持续计算,以及机器学习. 分布式远程过程调用 过程调用为单机运行的程序提供了一个传输控制与数据的灵巧机制.把这一概念扩展到分布式系统中,出现了远程过程调用(RPC)--过程调用的概念可以跨越网络边界.客户机

颠覆大数据分析之Mesos:集群调度及管理系统

颠覆大数据分析之Mesos:集群调度及管理系统 译者:黄经业    购书 正如前面"Mesos:动机"一节中所述,Mesos的主要目标就是去帮助管理不同框架(或者应用栈)间的集群资源.比如说,有一个业务需要在同一个物理集群上同时运行Hadoop,Storm及Spark.这种情况下,现有的调度器是无法完成跨框架间的如此细粒度的资源共享的.Hadoop的YARN调度器是一个中央调度器,它可以允许多个框架运行在一个集群里.但是,要使用框架特定的算法或者调度策略的话就变得很难了,因为多个框架间

颠覆大数据分析之Spark VS分布式共享内存系统

颠覆大数据分析之Spark VS分布式共享内存系统 译者:黄经业    购书 Spark可以看作是一个分布式共享集合系统,和Stumm和Zhou (1990)以及Nitzber和Lo (1991)所提到的传统的分布式共享内存(DSM)系统则略有不同.DSM系统允许单独读写内存,而Spark只允许进行粗粒度的RDD转换.尽管这限制了能够使用Spark的应用种类,但它对于实现高效的容错性却很有帮助.DSM系统可能会需要检查点相互协作来完成容错,比如说使用Boukerche等人(2005)所提出的协议

颠覆大数据分析之Spark为Shark所提供的扩展

在Spark的RDD上执行SQL查询遵循的是传统并行数据库的三步流程: 查询解析 逻辑计划的生成 将逻辑计划映射为物理的执行计划 Shark使用Hive查询编译器来进行查询语句的解析.它会生成一棵抽象语法树,然后再将它转化成一个逻辑计划.Shark中逻辑计划的生成方式也类似于Hive中的.但两者的物理计划的生成方式则不尽相同.Hive中的物理计划是一系列的MR作业,而Shark中的则是分阶段RDD转换的一个有向无环图.由于Shark的高工作负荷的这个性质(通常在Hive中机器学习及用户定义函数(

《Spark大数据分析实战》——3.1节SQL on Spark

3.1 SQL on Spark AMPLab将大数据分析负载分为三大类型:批量数据处理.交互式查询.实时流处理.而其中很重要的一环便是交互式查询.大数据分析栈中需要满足用户ad-hoc.reporting.iterative等类型的查询需求,也需要提供SQL接口来兼容原有数据库用户的使用习惯,同时也需要SQL能够进行关系模式的重组.完成这些重要的SQL任务的便是Spark SQL和Shark这两个开源分布式大数据查询引擎,它们可以理解为轻量级Hive SQL在Spark上的实现,业界将该类技术