导航
导航
文章目录
  1. 集群上运行Spark
    1. 基本概念
    2. 部署应用
  2. 调优与调试

Spark快速大数据分析—读书笔记(补漏篇)

集群上运行Spark

基本概念

驱动器节点:Driver
执行器节点:executor
集群管理器:Cluster Manager

  • Application:Spark的应用程序,包含一个Driver和若干Executor
  • SparkContext:Spark应用程序的入口,负责调度各个运算资源,协调各个Worker Node上的Executor
  • Driver:运行Application的main()函数并且创建SparkContext
  • Executor:是为Application运行在Worker node上的一个进程,该进程负责运行Task,并且负责将数据存在内存或者磁盘上。每个Application都会申请各自的Executor来处理任务
  • Cluster Manager:在集群上获取资源的外部服务 (例如:Standalone、Mesos、Yarn)
  • Worker Node:集群中任何可以运行Application代码的节点,运行一个或多个Executor进程
  • Task:运行在Executor上的工作单元

三种集群模式:
1.独立集群
2.apache mesos
3.hadoop yarn

部署应用

使用spark-submit脚本提交应用
本地提交:
bin/spark-submit my_job.py

集群下提交:
bin/spark-submit –master XXXXX

调优与调试

Spark执行一个应用是由作业、任务和步骤组成。
Spark的执行流程:
1、用户定义RDD的有向无环图:RDD上的操作会创建出新的RDD,并引用它们的父节点,这样就创建出了一个图。
2、行动操作把有向无环图强制转译为执行计划:Spark调度器提交一个作业来计算所必要的RDD,这个作业包含一个或多个步骤,每个步骤就是一些并行执行的计算任务。一个步骤对应有向无环图中的一个或多个RDD(其中对应多个RDD是在”流水线执行”中发生的)
3、任务于集群中调度并执行:步骤是按顺序处理的,任务则独立启动来计算RDD的一部分。当作业的最后一个步骤结束时,一个执行操作也执行完了。

调优:
1、并行度
2、序列化格式
3、内存管理
4、硬件供给