Spark笔记-treeReduce、reduce、reduceByKey
参考资料:
http://stackoverflow.com/questions/32281417/understadning-treereduce-in-spark
http://stackoverflow.com/questions/34078430/treereduce-vs-reducebykey-in-spark
reduceByKey和treeReduce之间有一个根本区别,reduceByKey它只对key-value pair RDDs可用,而treeReduce可以对任何RDD使用,相当于是reduce操作的泛化。 reduceByKey用于实现treeReduce,但它们在任何其他意义上都不相关。
reduceByKey对每个键执行reduce,结果生成RDD; 它不是"action"操作,而是返回ShuffleRDD,是"transformation"。 这等效于groupByKey后面跟着一个map,它执行key-wise reduction(为什么使用groupByKey是低效的)。
另一方面,treeAggregate是reduce函数的泛化,灵感来自AllReduce。 这在Spark中是一个"action",将结果返回到master节点。在执行本地的reduce操作之后,普通的reduce在master上执行剩余的计算,这样的计算量可能是非常繁重的(特别是在机器学习中,reduce函数结果是大的向量或矩阵时)。 相反,treeReduce使用reduceByKey并行的执行reduction(这是通过在运行时创建key-value pair RDD,其中键由树的深度确定)
treeReduce & reduce return some result to driver
treeReduce does more work on the executors
while reduce bring everything back to the driver.
Spark笔记-treeReduce、reduce、reduceByKey的更多相关文章
- spark笔记 环境配置
spark笔记 spark简介 saprk 有六个核心组件: SparkCore.SparkSQL.SparkStreaming.StructedStreaming.MLlib,Graphx Spar ...
- 大数据学习——spark笔记
变量的定义 val a: Int = 1 var b = 2 方法和函数 区别:函数可以作为参数传递给方法 方法: def test(arg: Int): Int=>Int ={ 方法体 } v ...
- Spark笔记——技术点汇总
目录 概况 手工搭建集群 引言 安装Scala 配置文件 启动与测试 应用部署 部署架构 应用程序部署 核心原理 RDD概念 RDD核心组成 RDD依赖关系 DAG图 RDD故障恢复机制 Standa ...
- java实现spark常用算子之ReduceByKey
import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spa ...
- spark 笔记 16: BlockManager
先看一下原理性的文章:http://jerryshao.me/architecture/2013/10/08/spark-storage-module-analysis/ ,http://jerrys ...
- spark 笔记 15: ShuffleManager,shuffle map两端的stage/task的桥梁
无论是Hadoop还是spark,shuffle操作都是决定其性能的重要因素.在不能减少shuffle的情况下,使用一个好的shuffle管理器也是优化性能的重要手段. ShuffleManager的 ...
- spark 笔记 8: Stage
Stage 是一组独立的任务,他们在一个job中执行相同的功能(function),功能的划分是以shuffle为边界的.DAG调度器以拓扑顺序执行同一个Stage中的task. /** * A st ...
- spark 笔记 6: RDD
了解RDD之前,必读UCB的论文,个人认为这是最好的资料,没有之一. http://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf A Re ...
- spark 笔记 4:Apache Hadoop YARN: Yet Another Resource Negotiator
spark支持YARN做资源调度器,所以YARN的原理还是应该知道的:http://www.socc2013.org/home/program/a5-vavilapalli.pdf 但总体来说, ...
随机推荐
- [Locked] Read N Characters Given Read4 & Read N Characters Given Read4 II - Call multiple times
Read N Characters Given Read4 The API: int read4(char *buf) reads 4 characters at a time from a file ...
- 打造支持apk下载和html5缓存的 IIS(配合一个超简单的android APP使用)具体解释
为什么要做这个看起来不靠谱的东西呢? 由于刚学android开发,还不能非常好的熟练控制android界面的编辑和操作,所以我的一个急着要的运用就改为html5版本号了,反正这个运用也是须要从serv ...
- Delphi 2007体验!
Delphi 2007体验! baidu 内容摘要:CodeGear(From Borland) 公司公布了最新的Delphi 2007 For Win32版本号.作为一个 Delphi 的使用者,第 ...
- SmartFoxServer 2x的pythonclient
最近的研究SmartFoxServer 2x.这是一个对网络游戏的Web开发框架.服务器基于java netty为发展框架,client支持flash,unity, ios, android(java ...
- php导出excel不断刷新缓冲区的思路(转)
require('./db.class.php');$DB = new db();$DB->connect();//数据库链接 header("Content-Type: text/c ...
- 4道过滤菜鸟的iOS面试题
网上已经有很多针对各种知识点的面试题,面试时有些人未必真正理解也能通过背题看上去很懂.我自己总结了4道面试题,好快速的判断这个人是否是一个合格的工程师,欢迎大家点评. 1.struct和class的区 ...
- 线程、委托、lambda运算符的简单示例
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- Java基础知识强化17:JAVA不可以将所覆盖的方法的访问权限变得比父类的小
首先我们看一下下面的代码如下: interface I { void go(); } abstract class A implements I { } class C extends A { voi ...
- NYOJ 47过河问题
主要思路:先排序.有两种可能是最小的情况,一种是让最小的去带着最大的过去,然后最小的再回来,还有一种就是先最小的和第二小的一块过去, 然后最小的回来,让最大的和第二大的过去,接着第二小的回来,第二小和 ...
- maven 启动忽略test
两种方法 1,--命令 mvn install -Dmaven.test.skip=true 2.pom.xml 文件 在tomcat 下面的pom.xml 文件里面加上如下 <!-- ski ...