Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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 spark tuning使用执行器优化运行时间_Apache Spark_Spark Streaming - Fatal编程技术网

Apache spark spark tuning使用执行器优化运行时间

Apache spark spark tuning使用执行器优化运行时间,apache-spark,spark-streaming,Apache Spark,Spark Streaming,当我运行spark streaming应用程序时,4个执行器的运行时间是否可能比1、2、6、10个执行器的运行时间更好?如果您使用4个执行器(4个不同的Java进程)运行spark作业,并且每个执行器都配置为有1 GB内存,并且只有1个内核(-executor memory 1g--executor cores 1),那就意味着一次只能运行一个辅助任务。增加使用相同配置的执行器的数量将产生更好的结果 如果您只想使用4个执行器来提高性能,那么增加内核的数量将提高并行级别(更多的辅助任务同时运行)。

当我运行spark streaming应用程序时,4个执行器的运行时间是否可能比1、2、6、10个执行器的运行时间更好?

如果您使用4个执行器(4个不同的Java进程)运行spark作业,并且每个执行器都配置为有1 GB内存,并且只有1个内核(-executor memory 1g--executor cores 1),那就意味着一次只能运行一个辅助任务。增加使用相同配置的执行器的数量将产生更好的结果

如果您只想使用4个执行器来提高性能,那么增加内核的数量将提高并行级别(更多的辅助任务同时运行)。但是,随着内核数量的增加,您很可能需要更多的内存,并且随着内存使用量的增加,您需要确保不会遇到Java性能问题(垃圾收集)

因此,在没有任何其他细节的情况下简单回答您的问题,从理论上讲,使用4个执行器,每个执行器具有3或4个核心(并行运行12或16个任务),可以获得更好的结果,而不是使用6或10个执行器,每个执行器仅具有1个核心(一次运行6或10个任务)

编辑:


我忽略了你在这里关于“Spark Streaming”的陈述。除了执行者的数量之外,还有很多因素会影响Spark Streaming应用程序的性能。在某些情况下,例如使用direct API仅从一个Kafka主题分区读取数据,增加执行器和核心的数量不会产生任何影响。

您的群集配置是什么?/bin/spark submit--class myApp--master thread--num executors 4--驱动程序内存1024m--执行器内存1024m--执行器核心1需要群集配置(如节点数量、ram、每个节点中的核心等)。不是您现有的spark配置。您的意思是:3 x Dell PowerEdge R320 Intel Xeon E5-2430 v2 2.50GHz,32GB RAM,1TB HDD cpu核心数至关重要,请提供该值