120、Spark核心编程进阶之Spark的核心术语

术语讲解.png

基于上面这张图,来看下Spark的核心术语

  1. Application
    spark应用程序,说白了,就是用户基于spark api开发的程序,一定是通过一个有main方法的类执行的,比如java开发spark,就是在eclipse中,建立的一个工程
  2. Application Jar
    这个就是把写好的spark工程,打包成一个jar包,其中包括了所有的第三方jar依赖包,比如java中,就用maven+assembly插件打包最方便
  3. Driver Program
    说白了,就是运行程序中main方法的进程,这就是driver,也叫driver进程
  4. Cluster Manager
    集群管理器,就是为每个spark application,在集群中调度和分配资源的组件,比如Spark Standalone、YARN、Mesos等
  5. Deploy Mode
    部署模式,无论是基于哪种集群管理器,spark作业部署或者运行模式,都分为两种,client和cluster,client模式下driver运行在提交spark作业的机器上;cluster模式下,运行在spark集群中
  6. Worker Node
    集群中的工作节点,能够运行executor进程,运行作业代码的节点
    standalone模式下,基于spark的Master进程和Worker进程组成的集群,Worker进程所在节点,也就是Worker节点
    yarn模式下,yarn的nodemanager进程所在的节点,也就叫做worker node,工作节点
  7. Executor
    集群管理器为application分配的进程,运行在worker节点上,负责执行作业的任务,并将数据保存在内存或磁盘中,每个application都有自己的executor
  8. Job
    每个spark application,根据你执行了多少次action操作,就会有多少个job
  9. Stage
    每个job都会划分为多个stage(阶段),每个stage都会有对应的一批task,分配到executor上去执行
    分解的标准,你在job的代码中,执行了几次shuffle操作(reduceByKey、groupByKey、countByKey),执行一次shuffle操作,job中就会有两个stage,如果一次shuffle都没执行,那就只有一个stage
  10. Task
    driver发送到executor上执行的计算单元,每个task负责在一个阶段(stage),处理一小片数据,计算出对应的结果
    任务,最小的计算单元,每个stage会对应一批task,具体的数量,是可以spark自动计算,根据底层的文件(hdfs、hive、本地文件)大小来划分,默认一个hdfs block对应一个task;也可以自己手动通过spark.default.parallelism参数来设置;每个task就处理一小片数据
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AM...
    大佛爱读书阅读 7,934评论 0 20
  • spark-submit的时候如何引入外部jar包 在通过spark-submit提交任务时,可以通过添加配置参数...
    博弈史密斯阅读 7,895评论 1 14
  • Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架,最初在2009年由加州大学伯克利分校...
    三万_chenbing阅读 3,826评论 0 5
  • Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架,最初在2009年由加州大学伯克利分校...
    达微阅读 3,767评论 0 0
  • 跑步和写作完美结合的一点就是:每周我参加完比赛,可以把赛记作为一篇作业上交。反正我不知道主编大人是否介意,至少我有...
    云紫烟阅读 2,958评论 5 4

友情链接更多精彩内容