1、任务提交流程:
①spark-submit提交任务给Master;
②Master收到任务请求后,通过LaunchDriver向Worker请求启动Driver;
③Worker收到请求后,启动Driver;
④Driver启动后,向Master注册应用(Application)信息;
⑤Master收到注册Application信息后,根据资源情况向Worker发送LaunchExecutor启动Executor;
⑥Worker收到Master的请求后,启动相应的Executor;
⑦Executor启动后负责与Driver通信,执行相关任务。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190922185534347.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1JvbmdfUm9ib3Q=,size_16,color_FFFFFF,t_70)
2、配置环境变量(路径:spark/conf/spark-env.sh)
Environment Variable | Meaning |
---|
SPARK_MASTER_HOST | 将主机绑定到特定的主机名或IP地址,例如公共主机名或IP地址 |
SPARK_MASTER_PORT | 在另一个端口上启动主机(默认:7077) |
SPARK_MASTER_WEBUI_PORT | 主节点的Web UI端口 |
SPARK_MASTER_OPTS | 主节点的配置属性 |
SPARK_LOCAL_DIRS | 用于Spark中“临时”空间的目录,包括映射输出文件和存储在磁盘上的RDD。 |
SPARK_WORKER_CORES | 允许Spark应用程序在计算机上使用的内核总数(默认:所有可用内核) |
SPARK_WORKER_MEMORY | 允许Spark应用程序在机器上使用的总内存量(默认:总内存减去1 GB) |
SPARK_WORKER_PORT | 在特定端口上启动Spark worker(默认:随机) |
SPARK_WORKER_WEBUI_PORT | 工作节点的Web UI端口(默认:8081) |
SPARK_WORKER_DIR | 运行应用程序的目录,其中将包括日志和暂存空间(默认:SPARK_HOME/work) |
SPARK_WORKER_OPTS | 工作节点的配置属性 |
SPARK_DAEMON_MEMORY | 分配给Spark主节点和工作节点守护进程的内存(默认:1GB) |
SPARK_DAEMON_JAVA_OPTS | Spark主节点和工作节点守护进程的JVM选项(默认:无)。 |
SPARK_DAEMON_CLASSPATH | Spark主节点和工作节点守护进程的类路径(默认:无) |
SPARK_PUBLIC_DNS | Spark Master和Workers的公共DNS名称(默认:无) |
3、SPARK_MASTER_OPTS的系统属性配置
Property Name | Default | Meaning |
---|
spark.deploy.retainedApplications | 200 | 显示已完成申请的最大数量。旧的应用程序将从UI中删除以保持此限制。 |
spark.deploy.retainedDrivers | 200 | 显示已完成Driver的最大数目。旧的Driver将从UI中删除以保持此限制。 |
spark.deploy.spreadOut | true | 独立的集群管理器是否应该将应用程序分散到各个节点上,或者尝试将它们整合到尽可能少的节点上。扩展通常对hdfs中的数据局部性更好,但合并对于计算密集型工作负载更有效。 |
spark.deploy.defaultCores | (infinite) | 如果未设置spark.cores.max,则以Spark独立模式提供给应用程序的默认内核数。 如果未设置,则应用程序始终会获取所有可用的内核,除非它们自己配置spark.cores.max。 在共享群集上将此值设置得较低,以防止用户默认情况下抓取整个群集。 |
spark.deploy.maxExecutorRetries | 10 | 限制在独立群集管理器删除故障应用程序之前可能发生的背对背执行器故障的最大数量。如果应用程序有任何正在运行的执行程序,则永远不会删除该应用程序。如果应用程序连续重试失败次数超过spark.deploy.maxecutor,则没有执行程序在这些失败之间成功地开始运行,并且应用程序没有正在运行的执行程序,则独立群集管理器将删除该应用程序并将其标记为失败。要禁用此自动删除,请将spark.deploy.maxecutorretries设置为-1。 |
spark.worker.timeout | 60 | 如果独立部署主服务器未接收到心跳信号,则该秒数之后将认为工作进程已丢失。 |
4、SPARK_WORKER_OPTS的系统属性配置
Property Name | Default | Meaning |
---|
spark.worker.cleanup.enabled | false | 启用工作节点/应用程序的定期清理。注意,这只影响独立模式,并不影响YARN模式。 |
spark.worker.cleanup.interval | 1800(30minutes) | 控制工作节点清理本地计算机上旧应用程序工作目录的时间间隔(秒)。 |
spark.worker.cleanup.appDataTtl | 604800(7days,7243600) | 在每个工作机上保留应用程序工作目录的秒数。这是一个生存的时间,应该取决于你有多少可用的磁盘空间。应用程序日志和jar被下载到每个应用程序工作目录。随着时间的推移,工作目录可以快速填充磁盘空间,特别是如果频繁地运行作业时。 |
spark.storage.cleanupFilesAfterExecutorExit | true | 在Executor程序退出后启用工作目录的清理非混洗文件。注意,这与spark.worker.cleanup.enabled 不重叠,因为这可以清除死掉Executor的本地目录中的非随机文件,而spark.worker.cleanup.enabled 则可以清除所有文件。 |
spark.worker.ui.compressedLogFileLengthCacheSize | 100 | 对于压缩日志文件,只能通过解压缩文件来计算未压缩文件。 Spark缓存压缩日志文件的未压缩文件大小。 此属性控制缓存大小。 |