[英]Increase Number of Executors for a spark instance
我正在通过pyspark启动一个spark实例。 我正在使用的系统是EC2上的r3.8x,具有244GB内存和32个vCPU。 我正在使用的代码是
#Import Packages
import os
import sys
import pandas as pd
import numpy as np
import glob
import shutil
#Initialize Spark Environment
spark_path = "C:\spark"
os.environ['SPARK_HOME'] = spark_path
os.environ['HADOOP_HOME'] = spark_path
sys.path.append(spark_path + "/bin")
sys.path.append(spark_path + "/python")
sys.path.append(spark_path + "/python/pyspark/")
sys.path.append(spark_path + "/python/lib")
sys.path.append(spark_path + "/python/lib/pyspark.zip")
sys.path.append(spark_path + "/python/lib/py4j-0.10.4-src.zip")
from pyspark import SparkContext
from pyspark import SparkConf
sc = SparkContext("local", "test")
#sc = SparkContext("local", "test")
sc.defaultParallelism
1
我使用spark-defaults.conf文件设置了一些参数,如下所示
spark.driver.memory 20g
spark.executor.cores 2
spark.executor.instances 16
spark.executor.memory 220g
spark.memory.fraction 0.07
spark.worker.cleanup.enabled true
pyspark中的此代码对此进行了确认
> sc._conf.getAll()
[('spark.executor.memory', '220g'),
('spark.app.id', 'local-1500885816084'),
('spark.app.name', 'test'),
('spark.executor.id', 'driver'),
('spark.driver.port', '61076'),
('spark.executor.instances', '16'),
('spark.executor.cores', '2'),
('spark.master', 'local[32]'),
('spark.driver.memory', '20g'),
('spark.rdd.compress', 'True'),
('spark.serializer.objectStreamReset', '100'),
('spark.submit.deployMode', 'client'),
('spark.memory.fraction', '0.07'),
('spark.worker.cleanup.enabled', 'true')]
现在,当我使用localhost:4041检查资源管理器时,将获得此表
似乎只有一个执行程序正在运行。 我该如何正确设置?
spark.master设置为local[32]
,它将使用嵌入式执行程序(此处具有32个线程)启动单个jvm驱动程序。
在本地模式下, spark.executor.cores
和spark.executor.instances
不适用。
您应该考虑以独立模式运行,在那里您将能够拥有驱动程序和不同的执行程序。
https://spark.apache.org/docs/latest/spark-standalone.html
顺便提一句,当前配置将请求16个执行器,每个执行器具有220GB,这不能用您给出的规范来回答。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.