增加spark实例的执行者数量

时间:2017-07-24 09:31:58

标签: apache-spark

我正在通过pyspark启动一个spark实例。我使用的系统是EC2上的r3.8x,244gb ram和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我得到了这个表

enter image description here

好像只有一个执行程序正在运行。我怎样才能正确设置?

1 个答案:

答案 0 :(得分:1)

spark.master设置为h1 Select a Date .form-groups-container.-include-container .form-section .form-group .row pikaday-inputless onSelection=onSelection form-buttons [ saveLabel='Save' cancelLabel='Cancel' saveClicked='saveClicked' cancelClicked='cancelClicked' ] ,它将启动一个带有嵌入式执行程序的jvm驱动程序(这里有32个线程)。

在本地模式下,local[32]spark.executor.cores不适用。

您应该看一下在独立模式下运行,您将能够拥有一个驱动程序和不同的执行程序。

https://spark.apache.org/docs/latest/spark-standalone.html

在旁注中,当前配置将请求16个执行器,每个执行器220GB,这不能用你给出的规格来回答。