zoukankan      html  css  js  c++  java
  • Spark源码分析

    名词解释

    RDD
    全称为ResilientDistributedDataset,弹性分布式数据集。
    就是分布在集群节点上的数据集,这些集合可以用来进行各种操作。最重要的一点是,某个操作计算后的数据集可以缓存在内存中,然后给其他计算使用,这种在迭代计算中很常见。比如:我们可以从hdfs文件里创建一个数据集,然后经过filter后,会生成一个新的数据集,还可以进行groupby,map函数等操作,得到另一个数据集。

    Iterator
    迭代器,即是提供一级接口给其他人来访问RDD中的数据集。

    Job
    一道作业,即指应用完成某项需求所需要一系列工作,统一称为作业。

    DAG
    有向无环图,将作业分解成若干个阶段,每个阶段都是由若干个task组成,而这些阶段都是有先后顺序的,故将这些阶段组织成DAG,来表示其先后顺序。

    Stage
    阶段,是指job中的一个结点。

    Taskset

    每个阶段将由若干个task组成,这些task统一称为taskset。

    Task
    Task是指最终在slave结点上运行的工作。

    与MR的区别

    MR的缺点:
    1.Shuffle的性能。Map到reduce之间数据多次需要IO操作。

    2.当有多个MR时,每轮的MR之间需要将结果写到hdfs上。

    3.只有map,reduce二种计算模型,无法建立一组DAG操作,来减少中间的一些操作开销。

    以上的缺点都是spark的优点。

    相关知识

    Scala

    Scala是运行在JVM之上的编程语言。集成了面向对象和函数式语言的特点,代码量比java要少2-3倍。

    Akka

    是轻量级异步事件处理的消息系统。

  • 相关阅读:
    NOI2010 能量采集
    NOI2011 兔兔与蛋蛋游戏
    动态规划——min/max的单调性优化总结
    NOI2011 NOI嘉年华
    NOI2011 阿狸的打字机
    NOI2011 智能车比赛
    NOI2011 兔农
    NOI2012 魔幻棋盘
    NOI2012 美食节
    NOI2012 迷失游乐园
  • 原文地址:https://www.cnblogs.com/gaopeng527/p/4316786.html
Copyright © 2011-2022 走看看