颠覆大数据分析之RDD的表达性

正如前面在比较Spark及DSM系统时所提到的,由于RDD只支持粗粒度的操作,因此它有一定的局限性。但是RDD的表达性对于大多数程序而言其实已经足够好了。AMPLabs团队他们仅花了数百行代码就开发出了整个Pregel,这是Spark上的一个小的库。可以通过RDD及相关的操作来表示的集群计算模型列举如下:

  • Map-Reduce:如果存在混合器的话,这个可以使用RDD上的flatMap和reduceByKey操作来表示。简单点的话可以表示成flatMap和groupByKey操作。运算符则对应于Spark中的转换操作。
  • DryadLINQ:DryadLINQ(Yu等2008)通过结合了声明性及命令式编程提供了MR所没有的操作。大多数操作符都能对应上Spark中的转换操作。Dryad中的apply结构就类似于RDD的map转换,而Fork结构则类似于flatMap转换。
  • 整体同步并行(BSP):Pregel (Malewicz等 2010)中的计算由一系列称为超步骤的迭代所组成。图中的每个顶点都关联上一个用户定义的计算函数;Pregel会确保在每一个超步骤中,用户定义的函数都会并行地在每一条边上执行。顶点可以通过边来发送消息并与其它的顶点交互数据。同样的,还会有一个全局的栅栏——当所有的计算函数都终止的时候它就会向前移动。熟悉BSP的读者可能会知道,Pregel是一个完美的BSP的典范——一组实体在并行地计算用户定义的函数,它们有全局的同步器并可以交换消息。由于同一个用户函数会作用于所有的顶点,这种情况可以这样实现,将所有顶点存储在一个RDD中并在上面运行flatMap操作来生成一个新的RDD。把它和跟顶点的RDD连接到一块,这样就可以实现消息传递了。
  • 迭代式Map-Reduce:HaLoop项目也同样扩展了Hadoop来支持迭代式机器学习算法。HaLoop不仅为迭代式应用提供了编程抽象,同时它还用到了缓存的概念来在迭代间进行数据共享和固定点校验(迭代的终止)以便提升效率。Twister (Ekanayake等2010)是另一个类似HaLoop的尝试。这些在Spark中都可以很容易实现,因为它本身非常容易进行迭代式计算。AMPLabs团队实现HaLoop仅花了200行代码。
  • 转载自 并发编程网 - ifeve.com
时间: 2024-09-28 13:11:23

颠覆大数据分析之RDD的表达性的相关文章

颠覆大数据分析之结论

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

颠覆大数据分析之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弹性分布式数据集

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

颠覆大数据分析之Storm简介

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

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

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

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

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

颠覆大数据分析之实时分析的应用

在这一节,我们将看到构建两个应用的步骤:一个工业日志分类系统和一个互联网流量过滤应用. 工业日志分类 随新旧生产工程系统的自动化以及电子工程的发展,大量的机器之间(M2M)的数据正在被生成出来.机器之间的数据可以来自多个不同的源头,包括无线传感器,电子消费设备,安全应用,还有智能家居设备.举个例子,2004年的地震和随后的海啸造就了由海洋传感器构成的海啸预警系统.自2011年的日本东北地区的地震以来,日本已经沿火车轨道安装了许多传感器,帮助探测不寻常的地震活动以便及时关闭火车运行.GE和其它大电