Spark学习2

1.Spark程序监控端口Spark学习2_第1张图片
  • 4040:运行的Application临时绑定的端口,多个程序同时运行会顺延
  • 8080:在StandAlone下,Master角色的Web端口
  • 18080:历史服务器的端口,可以查看历史任务的运行状态
2.Spark程序运行的四个层级

Spark学习2_第2张图片

  • 4040端口查看的是一个运行的程序的页面。相当于Application
  • 每个Application中都至少有一个子任务Job
  • 每个子任务Job会分成多个阶段Stage
  • 每个阶段Stage会有多个线程Task来完成
3.StandAlone原理
  • Master和Worker角色以独立进程的形式存在,并组成Spark运行时环境(集群); 而在Local模式中,Master、Worker和Driver都是一体的,都是Local进程本身
4.Spark角色在StandAlone中的分布
  • Master角色:Master进程,管理整个集群的资源
  • Worker角色:Worker进程,管理单台服务器的资源
  • Driver角色:在任务运行时,Driver角色以线程方式运行在Master中,用于管理任务的执行
  • Executor角色:在任务进行时,Executor角色以线程方式运行在Worker内,用于真正执行任务
5.高可用性集群(Highly Available)
  • 目的:解决单点故障
  • 方案:留几个备选(StandBy)的Master,Master要想从Standby转化为Active,必须向zookeeper注册;主备切换不会影响正在运行的Job,只会影响新Job的提交
  • 基于zookeeper做状态的维护,开启多个Master进程,一个作为活跃,其他的作为备份,当活跃的Master宕机后,备份Master进行接管
6.Spark On Yarn
  • 让Spark的计算任务运行在YARN的容器内部,资源管理交由YARN完成
  • spark不再进行资源的管理,只进行计算任务的管理和执行
  • 集群资源管理由Yarn的ResourceManager担任
  • 单机资源管理由Yarn的NodeManager担任
  • Driver角色运行在Yarn容器内,或者提交任务的客户端进程
  • 真正干活的Executor运行在YARN提供的容器内
    Spark学习2_第3张图片
7.Spark On Yarn需要什么
  • Yarn集群
  • Spark客户端工具,如spark-submit:用于将Spark程序提交到YARN中
  • 需要被提交的代码程序
8.Spark On Yarn的两种部署模式

一种是Cluster模式,一种是Client模式。区别在于:Driver运行的位置。

  • Cluster模式:Driver运行在YARN容器内部,和ApplicationMaster在同一个容器内
  • Client模式:Driver运行在客户端进程中,比如Driver运行在spark-submit程序的进程中


Spark学习2_第4张图片

9.两种模式的任务提交流程

Client模式:

Cluster模式:

  • 容器不是一起构建的,不管是哪个模式,第一个被构建的容器永远是ApplicationMaster所在的容器;然后ApplicationMaster通过向Driver询问需要多少executor,然后向ResourceManager询问资源够不够,然后再向NodeManager分配容器用于运行executor
10.编程入口SparkContext对象

Spark Application的程序入口为SparkContext,创建过程如下:

  • 第一步:创建SparkConf对象
    • 用于设置Application的基本信息,比如应用的名称AppName和应用的运行Master
  • 第二步:基于SparkConf对象,创建SparkContext对象
conf = SparkConf().setAppName(appName).setMaster(master)
sc = SparkContext(conf=conf)

你可能感兴趣的:(spark,学习,大数据)