[Spark]Spark、Yarn 入门

Spark在集群上的运行模式

链接:

http://spark.apache.org/docs/latest/cluster-overview.html Component章节

总结:

1 Each application gets its own executor processes,所以各application间是独立的。
2 spark可以使用多种 cluster manager,包括 Spark’s own standalone cluster manager, Mesos or YARN。
3 driver program 需要监听和接收its executors,所以driver对于各executers必须是网络可达的。
4 因为driver调度tasks on the cluster, 所以driver节点和worker节点最好在一个局域网中。

Spark重要概念
  • Driver:这是监督Spark作业或程序端到端执行的主程序。 它与集群的资源管理器进行资源的协商,并将程序编排成尽可能小的数据本地并行编程单元。
  • Executors:在任何Spark任务中,可以有一个或多个executor,即执行由drive委派的较小任务的进程。 executor处理数据,最好是本地节点的,并将结果存储在内存和/或磁盘中。
  • Job:这是对任何一组数据执行的操作的集合。 典型的word count job涉及从任意来源读取文本文件,然后分离(splitting)并聚合(aggregating)这些字。
  • Task:一个job可以拆分成更小的单位,以被称为task的孤立任务进行操作。 每个task由executor在一个数据分区上执行。
  • DAG:Spark引擎中的任何Spark工作都由DAG的操作代表。 DAG按顺序表示Spark操作的逻辑执行。
  • Stages:Spark作业可以按逻辑划分为多个stage,每个stage代表一组具有相同的shuffle依赖关系的任务,即发生数据shuffle的任务。注:shuffle 是划分 DAG 中 stage 的标识,同时影响 Spark 执行速度的关键步骤.

Spark on Yarn

Yarn
  • yarn最基本的思想是分离资源管理和job调度/监管。

  • yarn三大组件:

    • ResourceManager :负责整个集群的资源管理和分配,是一个全局的资源管理系统
      • 两个核心组件:Scheduler 、ApplicationsManager。
      • 调度器负责根据熟悉的容量、队列等约束,将资源分配给各种正在运行的应用程序。调度器不执行应用程序状态的监视或跟踪。
      • 应用程序管理器负责接受作业提交,协商第一个容器以执行特定于应用程序的应用程序主机,并提供用于在失败时重新启动应用程序主容器的服务。每个应用程序管理器负责从调度程序协商适当的资源容器,跟踪其状态并监视进度。
    • NodeManager:是每个节点上的资源和任务管理器,它是管理这台机器的代理,负责该节点程序的运行,以及该节点资源的管理和监控
    • ApplicationMaster: 用 户 提 交 的 每 个 应 用 程 序 均 包 含 一 个 ApplicationMaster , 它 可 以 运 行 在ResourceManager 以外的机器上。负责与 RM 调度器协商以获取资源(用 Container 表示)。
  • yarn 只提供运算资源的调度(用户程序向 yarn 申请资源,yarn 就负责分配资源)

  • yarn与运行的用户程序完全解耦,意味着yarn上可以运行各种类型的分布式运算程序,比如 mapreduce、storm,spark,

Spark on Yarn

参考链接

https://blog.csdn.net/qq_33624952/article/details/79341034
https://blog.csdn.net/minge_se/article/details/79137085

posted on 2019-10-04 21:18  coding_gaga  阅读(301)  评论(0编辑  收藏  举报

导航