Apache spark Spark sql非常慢-几个小时后失败-执行器丢失

Apache spark Spark sql非常慢-几个小时后失败-执行器丢失,apache-spark,pyspark,apache-spark-sql,Apache Spark,Pyspark,Apache Spark Sql,我正在一个约16Tb的数据集上尝试Spark Sql,该数据集包含大量文件(~50K)。每个文件大约有400-500兆 我在数据集上发布了一个相当简单的配置单元查询,只使用了过滤器(没有groupBy和Join),而这项工作非常缓慢。它运行7-8小时,在一个12节点集群上处理大约80-100 Gig 我尝试了从20到4000的spark.sql.shuffle.partitions的不同值,但没有看到太大的差异 从日志中,我在[1]末尾附加了纱线错误。我已为该工作获得以下spark配置[2] 是

我正在一个约16Tb的数据集上尝试Spark Sql,该数据集包含大量文件(~50K)。每个文件大约有400-500兆

我在数据集上发布了一个相当简单的配置单元查询,只使用了过滤器(没有groupBy和Join),而这项工作非常缓慢。它运行7-8小时,在一个12节点集群上处理大约80-100 Gig

我尝试了从20到4000的
spark.sql.shuffle.partitions
的不同值,但没有看到太大的差异

从日志中,我在[1]末尾附加了纱线错误。我已为该工作获得以下spark配置[2]

是否有任何其他调整我需要研究。任何提示都将不胜感激

谢谢

2. Spark config - 
spark-submit
--master yarn-client
--driver-memory 1G
--executor-memory 10G
--executor-cores 5
--conf spark.dynamicAllocation.enabled=true
--conf spark.shuffle.service.enabled=true
--conf spark.dynamicAllocation.initialExecutors=2
--conf spark.dynamicAllocation.minExecutors=2


1. Yarn Error:

16/04/07 13:05:37 INFO yarn.YarnAllocator: Container marked as failed: container_1459747472046_1618_02_000003. Exit status: 1. Diagnostics: Exception from container-launch.
Container id: container_1459747472046_1618_02_000003
Exit code: 1
Stack trace: ExitCodeException exitCode=1: 
        at org.apache.hadoop.util.Shell.runCommand(Shell.java:538)
        at org.apache.hadoop.util.Shell.run(Shell.java:455)
        at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:715)
        at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:211)
        at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302)
        at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:82)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)

Container exited with a non-zero exit code 1
我已经浏览了容器日志,但没有从中获得很多信息

我已经看到了一些容器的错误日志,但不确定其原因

1. java.lang.NullPointerException  at org.apache.spark.storage.DiskBlockManager.org$apache$spark$storage$DiskBlockManager$$doStop(DiskBlockManager.scala:167)
2. java.lang.ClassCastException: Cannot cast org.apache.spark.scheduler.cluster.CoarseGrainedClusterMessages$RegisterExecutorFailed to org.apache.spark.scheduler.cluster.CoarseGrainedClusterMessages$RegisteredExecutor$

你能描述一下你的集群规范吗?我想知道可能出了什么问题。这是一个像样的集群-12节点集群,C3.4x大。那么你实际上是在EMR上吗?你能描述一下你的集群规范吗?我想知道可能出了什么问题。这是一个像样的集群-12节点集群,C3.4x大。那么你实际上是在EMR上吗?