marchboy / marchboy.github.io

0 stars 0 forks source link

Spark笔记-Spark任务提交方式 | ComputerScience #19

Open marchboy opened 3 years ago

marchboy commented 3 years ago

https://marchboy.github.io/2020/10/11/Spark%E7%AC%94%E8%AE%B0-Spark%E4%BB%BB%E5%8A%A1%E6%8F%90%E4%BA%A4%E6%96%B9%E5%BC%8F/

Spark任务提交方式Standalone模式两种提交任务方式Standalone-client提交方式提交命令:

marchboy commented 3 years ago

Spark输出WARNING:

WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources

即初始化job时没有获取到任何资源;提示检查集群,确保workers可以被注册并有足够的内存资源。

逐个排查:

1、主机名、IP是否配置正确

2、内存不足,在conf目录下补充export SPARK_EXECUTOR_MEMORY=500M

3、是否存在端口为被占用的情况

marchboy commented 3 years ago

常用的重要参数详解:

1)–master MASTER_URL: 指定要连接的集群模式(集群资源管理器)

standalone模式: spark://host:port, 如:spark://192.168.1.10:7077

Spark On Mesos模式 : mesos://host:port

Spark On YARN模式: yarn://host:port

本地模式:local

2) – deploy-mode DEPLOY_MODE : 指定任务的提交方式(client 和cluster) client: 本地客户端模式(默认方式),一般会在集群主节点安装客户端

cluster: 集群工作节点模式 任务最终都会提交给主节点处理,所以在指定任务提交方式时,考虑本地客户端和集群工作节点对主节点的网络开销问题即可。

3)–name appName :设置任务的名称,方便在webUI查看

4)–py-files PY_FILES :加载Python外部依赖文件

5)–driver-memory MEM:设置driver的运行内存(占用客户端内存,用于通信及调度开销,默认为1G)

6)–executor-memory MEM:设置每一个executor的运行内存(占用工作节点内存,主要用于执行任务的内存开销),executor代表work节点上的一个进程。

7)–total-executor-cores NUM:设置任务占用的总CPU核数(即任务的并发量),由主节点指定各个工作节点CPU的使用数。 注意:该参数选项只在Spark standalone and Mesos 模式下有效

8)–executor-cores NUM:设置执行任务的每一个executor的CPU核数(yarn模式有效,默认为1)或者工作节点的总CPU核数(standalone模式有效)

9)–num-executors NUM:设置任务的executor进程数(yarn模式下有效)

10)–conf PROP=VALUE:设置Spark的属性参数

–conf spark.default.parallelism=1000 设置RDD分区大小,系统默认为200

–conf spark.storage.memoryFraction=0.5 设置内存分配大小(存储),系统默认为0.6

–conf spark.shuffle.memoryFraction=0.3 设置shuffle上限内存空间,系统默认为0.2