【Spark】Spark集群模式

1. 组件

在这里插入图片描述
Spark applications 是在运行在集群上一系列独立的进程集合,由SparkContext进行调度。

SparkContext 能够连接以下几种集群管理:standlone cluster manafer,Mesos,Yarn。这些集群管理负责资源的分配。

  • 一旦SparkContex连接上集群管理,Spark要求集群中的节点分配executors,executors 是服务于applications进行计算和存储数据的进程。
  • 然后,SparkContext把application的code 发送给executors。
  • 最后,SparkContext把task 发送给executors去运行。

这有一些关于这个结构很有意思的事情。

  • 每一个appplication 拥有自己的 executor, executor 伴随着application整个生命周期,在多个线程中运行task。这样的好处是,把各个application隔离开来,不仅表现在调度端而且在执行端有所体现。在调度端,每个driver调度自己的tasks。在执行端,不同application的task在不同的JVM中运行。同时这也意味着,不同application的数据只能通过外部发的存储系统进行共享。
  • Spark 对于底层的资源管理器是不可知的。一旦spark拥有executor 进程 以及它们之间的通信,那么它能够很容易的在另一个资源管理器中运行(Mesos,Yarn)。
  • Driver Program 在生命周期内监听和接收来自executors的连接。因此,Driver Program 对于work node 来说是可寻址的。
  • 因为driver在集群中调度task,因此它需要和work node 尽可能近,建议是在同一个局域网中。如果你想远程发送一个请求,最好是通过RPC的方式提交给最近的driver来提交操作。而不是在远离work node上driver 提交。

2. 资源管理器的种类

  • standlone
  • Apache Mesos
  • Hadoop YARN
  • Kubernetes

3. 关键术语

术语含义
Application构建在Spark之上的用户程序。包含一个driver program和集群上的executors
Application.jar包含用户程序的jar包,用户程序的jar包不包含Hadoop 和 Spark的依赖,这些在运行期间会被添加
Driver Program运行application的main()函数的进程,创建SparkContext
Cluster Manager用于在外部分配资源的服务,例如 standlone manager,Mesos,YARN
Deploy mode用于区分driver process 在哪里运行。在cluster 模式下,框架在集群内部运行driver。在client模式下,任务的提交者在集群之外运行driver。
Work node在集群中,能够运行application 代码的节点
Executor在工作节点上运行的为application服务的进程。Executor 运行task,在内存或磁盘中存储数据。每个application 有自己的executors。
Task一系列工作的集合,被分发到一个executor中。
Job一个并行的计算,包含多个task,由Spark action 产生,在driver 的log会看到。
Stage每个job被分割成更小集合的task,被称作stage。stage之间互相依赖,在driver的日志中,你能够看到它们
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值