Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 增加火花执行器几乎不会提高性能_Apache Spark_Pyspark - Fatal编程技术网

Apache 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的性能。 我们的想法是玩:

   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命令中设置。另外,可能重复的参数是本地模式还是独立模式?如果是前者。