zoukankan      html  css  js  c++  java
  • Spark核心概念

    1、Application
        基于spark的用户程序,包含了一个Driver Program以及集群上中多个executor;
        spark中只要有一个sparkcontext就是一个application
        启动一个spark-shell也是一个application,因为在启动shark-shell时就内置了一个sc(SparkContext的实例);
     
    2、Driver Program
        运行Application的main()函数并且创建SparkContext的程序。通常用SparkContext代表Driver Program;
     
    3、Cluster Manager
        在集群上获取资源的外部服务。如:standalone、yarn、mesos;
      各种不同的集群的区别:只是任务调度的粗细粒度不同,对学习spark没有影响,自己在学习时使用standalone即可;
     
    4、Worker Node
        集群中任何一个可以运行Application代码的节点
        可以在Worker Node启动Executor进程;
     
    5、Executor
        在Worker Node上为某Application启动一个进程,该进程负责运行任务,并且负责将数据存在硬盘或者内存中;每个Application都有各自独立的executors
        比如:应用A在一个Node上启动Executor,B应用也在同一个Node上启动Executor,他们各自的Executor是相互隔离的,运行在不同的JVM上。不同的应用对应不同的Executor;
     
    6、Job
        包含很多task的并行计算,spark中的一个action对应一个job,如:collect、count、saveAsTextFile;
        用户提交的Job会提交给DAGScheduler,Job会被分解成Stage(TaskSet) DAG
        RDD的transformation只会记录对元数据的操作(map/filter),而并不会真正执行,只有action触发时才会执行job;
     
    7、Stage
        个Job会被拆分成多组任务,每组任务被称为一个Stage,可称为TaskSet
        一个stage的边界往往是从某个地方取数据开始(如:sc.readTextFile),在shuffle时(如:join、reduceByKey等)终止
        一个job的结束(如:count、saveAsTextFile等)往往也是一个stage的边界;
        有两种类型的Stage:shuffle和result;
     
    8、Task
        被送到executor上的工作单元
        spark分为2类task:
        在Spark中有两类Task:shuffleMapTask和ResultTask,第一类Task的输出是shuffle所需数据,第二类task的输出是result;
      stage的划分也以此为依据,shuffle之前的所有变换是一个stage,shuffle之后的操作是另一个stage;
        比如:rdd.parallize(1 to 10).foreach(println)这个操作没有shuffle,直接就输出了,那么它的task就是resulttask,stage也只有一个;
        如果rdd.map((x,1)).reduceByKey(_+_).foreach(println),这个job因为有reduce,所以有个一shuffle过程,那么reduceByKey之前是一个stage,执行shuffleMapTask,输出shuffle所需要的数据,reduceByKey到最后是一个stage,直接就输出结果了。
        如果一个job中有多次shuffle,那么每个shuffle之前都是一个stage;
     
    9、Partition
        partition类似hadoop的split,计算是以partition为单位进行的

    详细信息参见官方文档:http://spark.apache.org/docs/latest/cluster-overview.html

  • 相关阅读:
    Leetcode NO.110 Balanced Binary Tree 平衡二叉树
    Leetcode NO.226 Invert Binary Tree 翻转二叉树
    Leetcode NO.215 Kth Largest Element In An Array 数组中的第K个最大元素
    根据特征的浏览器判断
    Cygwin在打开在当前目录
    【转帖】科学对待 健康养猫 打造快乐孕妇
    解决chrome浏览器安装扩展、应用程序一直处在“检查中”的问题
    对【SQL SERVER 分布式事务解决方案】的心得补充
    关于“点击这里继续访问您选择的百度XXX”
    VBA一例:如何保持文本框焦点
  • 原文地址:https://www.cnblogs.com/luogankun/p/3801142.html
Copyright © 2011-2022 走看看