zoukankan      html  css  js  c++  java
  • spark简单总结—短小精悍

    Spark是基于内存计算的大数据并行计算框架。因为其基于内存计算,较Hadoop中MapReduce计算框架具有更高的实时性,同时保证了高效容错性和可伸缩性。从2009年诞生于AMPLab到现在已经成为Apache顶级开源项目,并成功应用于商业集群中。学习Spark就需要了解其架构及运行机制。

    Spark架构Spark架构使用了分布式计算中master-slave模型,master是集群中含有master进程的节点,slave是集群中含有worker进程的节点。
    master作为整个集群的控制器,负责整个集群的正常运行。
    worker相当于计算节点,接受主节点命令与状态汇报。
    executor负责任务的执行。
    client作为用户的客户端负责提交应用。
    driver负责控制一个应用的执行。

    下图为Spark架构图


    <ignore_js_op> 





    Spark集群部署后,需要在主节点和从节点分别启动master进程和worker进程来控制集群。在一个应用执行中,driver是应用逻辑执行的起点,负责作业的调度,即Task任务的分发,而多个worker用来管理计算节点和创建executor并行处理任务。在执行阶段,driver会将task和其依赖的文件传递给worker机器,同时executor对相应数据分区的任务进行处理。


    SparkContext: 整个应用的上下文,控制应用的生命周期。
    RDD: Spark的基本计算单元,一组RDD可执行的有向无环图RDD Graph。
    DAGScheduler: 根据作业构建基于Stage的DAG,并提交给Stage的TaskScheduler。
    TaskScheduler: 将任务分给executor执行。

    SparkEnv: 线程级别的上下文,存储运行时的重要组件的引用。


    Spark的运行流程: Client提交应用,master找到一个worker启动driver,driver向master请求资源,之后将应用转化为RDD Graph,再由DAGScheduler将RDD Graph转换为stage的DAG提交给TaskScheduler,由TaskScheduler提交任务给executor。

  • 相关阅读:
    一天进步一点点
    Flask
    Sqlalchemy 设置表编码及引擎
    threading.local
    xshell配置密码公钥登录
    linux 系统优化+定时任务
    linux命令
    xshell连接及优化
    linux前奏
    Vue Devtools--vue调式工具
  • 原文地址:https://www.cnblogs.com/tonychai/p/4646278.html
Copyright © 2011-2022 走看看