Apache spark 增加火花执行器几乎不会提高性能
我试图根据执行器和内核的数量来衡量Spark的性能。 我们的想法是玩:Apache spark 增加火花执行器几乎不会提高性能,apache-spark,pyspark,Apache Spark,Pyspark,我试图根据执行器和内核的数量来衡量Spark的性能。 我们的想法是玩: spark.conf.set("spark.executor.instances", "x") spark.conf.set('spark.cores.max', 'x') 当我改变执行器和内核的数量时,测试Spark性能的影响。 数据为1.66GB Twitter files.json 我正在使用电脑hp: Prozessor:IntelR CoreTM i7-8650U CPU@1.90Ghz 2.11GH
spark.conf.set("spark.executor.instances", "x")
spark.conf.set('spark.cores.max', 'x')
当我改变执行器和内核的数量时,测试Spark性能的影响。
数据为1.66GB Twitter files.json
我正在使用电脑hp:
Prozessor:IntelR CoreTM i7-8650U CPU@1.90Ghz 2.11GHz
//16GB内存
import time
st = time.time()
print("start time: ", st)
#### Code ####
elapsed_time = time.time() - st
print("...Elapsed time SPARK: %.2fs" % elapsed_time)
我发现如果我在executors 1、3、5中使用,性能几乎没有变化
比如说
import time
st = time.time()
print("start time: ", st)
spark = SparkSession.builder.appName('Basics').getOrCreate()
spark.conf.set("spark.executor.instances", "1")
spark.conf.set('spark.cores.max', '1')
df = spark.read.json(mount + '/*/*.json.bz2' )
elapsed_time = time.time() - st
print("...Elapsed time SPARK: %.2fs" % elapsed_time)
1:1执行器,1堆芯开始时间:1549530285.584573
…经过的时间火花:315.52秒
2:3执行器,3芯启动时间:1549528358.4399529
…经过的时间火花:308.30s
3:5执行器,5芯启动时间:1549528690.1516254
…经过的时间火花:289.28s
这正常吗?我期待着更重要的事情。Spark性能取决于不同的因素,如工作负载类型、分区方案、数据倾斜、内存消耗等。您可以查看以了解更多信息 其次,您不能动态更改执行器计数。在as中说明 火花特性主要可分为两类:一类是相关的 部署,如“spark.driver.memory”、“spark.executor.instances”, 设置时,此类属性可能不受影响 在运行时通过SparkConf以编程方式进行,或者行为是 取决于您选择的群集管理器和部署模式,因此 建议通过配置文件或spark提交进行设置 命令行选项;另一个主要与Spark运行时有关 控件,如“spark.task.maxFailures”,此类属性可以 以任何一种方式设置
您好,Sgungormus,您是什么意思?您不能动态更改执行器计数我正在使用hist own Sparksession进行不同的项目。@Enrique我不知道您的确切配置,但一旦Sparksession初始化,执行器计数就不能通过设置conf参数进行更改。这些参数应该在spark submit或spark shell命令中设置。另外,可能重复的参数是本地模式还是独立模式?如果是前者。