理解Spark.PDFVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
理解Spark

理解Spark Lijie Xu@ISCAS csxulijie@ created 2012-08-13 modified 2012-09-10 1. 编程范型 经过实践检验,MapReduce 的“Divide and conquer”编程范型在处理大数据时显得简 单有效。Key, Value的数据处理与传输模式也大获全胜。经典虽然难以突破,但总会有 后继者。微软的Dryad 使用DAG 式、子任务自由组合的范型。该范型虽然复杂了点,但更 为灵活。Pig 也针对大关系表的处理提出了很多有创意的处理方式,如FLATTEN 、COGROUP 。 Spark 站在巨人的肩膀上,依靠Scala 强有力的函数式编程、Actor 通信模式、闭包、 惊艳的容器、泛型,借助统一资源分配调度框架Mesos ,融合了MapReduce 和Dryad , 最后产生了一个简单、简洁、直观、灵活、高效的大数据分布式处理框架。 与Hadoop 不同,Spark 一开始就瞄准性能,将数据(包括部分中间数据)放在内存, 在内存中计算。用户将重复利用的数据cache 到内存,提高下次的计算效率,因此Spark 尤其适合迭代型和交互型任务。Spark 需要大量的内存,但性能可随着机器数目增多线性 增长。 2. 数据模型分析 核心数据模型是RDD ,但RDD 是个抽象类(也就是说RDD 是个抽象概念),具体的实 现由各种子类如:MappedRDD 、ShuffledRDD 决定。Spark 将常用的大数据操作都表示成了 RDD 的子类。 各种RDD Spark 解释 RDD 对应到Hadoop 中是已经划分成split 的输入数据 + RecordReader FilteredRDD[T] T = selected(T),T 是RDD 存放的内容,可以是String 或(K,V) FlatMappedRDD[U,T] Split1[T1], Split2[T2], Split3[T3] = T1 + T2 + T3 GlommedRDD[T] Array[split1[T1], split2[T2], split3[T3]] MapPartitionsRDD[T] 用给定的f 函数 = f(split[T]) MappedRDD[T] split.map(f),对split 中每个T 执行f 函数 CartesianRDD[Pair[T, U]] (K1,V1) from split1 × (K2,V2) from split2 CoGroupedRDD (K1,V1) from split1,(K2,V2) from split2 = (K,(Seq[V1], Seq[V2])) [(K, Seq[Seq[_]])] HadoopRDD[K,V] 与Hadoop 一样,使用RecordReader 读取Split 的(K,V) NewHadoopRDD [K,V] 与上面一样,只是使用新API PipedRDD[T] T = Linux Command(T) = String ,T 是文本行 SampledRDD[T] T = filter = Selected(T) from sample ShuffledRDD[K, V, C] [K, V, C] = aggregate V to C = [(K, C)] UnionRDD[T] [K1,V1] + [K2,V2] = [(K1,V1), (K2,V2)] 基本Transformations 的图解释 Transformations 返回一个新RDD map (f: T = U): 直接

文档评论(0)

ldj215323 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档