Apache spark Spark纱线在队列中运行1000个作业

Apache spark Spark纱线在队列中运行1000个作业,apache-spark,yarn,oozie,Apache Spark,Yarn,Oozie,我正试图在纱线集群中安排1000个工作。我想每天同时运行1000多个作业,并管理资源。对于来自hdfs的1000个不同类别的文件,我试图从python创建spark submit命令并执行。但由于使用驱动程序内存进行spark提交,导致内存不足错误 如何在spark纱线集群中安排1000个作业?我甚至还尝试了oozie作业调度框架和spark,它在HDP中并没有像预期的那样工作。实际上,您可能不需要1000个作业来读取HDFS中的1000个文件。您也可以尝试在单个RDD中加载所有内容(API支持

我正试图在纱线集群中安排1000个工作。我想每天同时运行1000多个作业,并管理资源。对于来自hdfs的1000个不同类别的文件,我试图从python创建spark submit命令并执行。但由于使用驱动程序内存进行spark提交,导致内存不足错误


如何在spark纱线集群中安排1000个作业?我甚至还尝试了oozie作业调度框架和spark,它在HDP中并没有像预期的那样工作。

实际上,您可能不需要1000个作业来读取HDFS中的1000个文件。您也可以尝试在单个RDD中加载所有内容(API支持读取多个文件和路径中的通配符)。现在,在读取单个RDD中的所有文件之后,您应该真正关注于确保是否有足够的内存、内核等分配给它,并开始查看您的业务逻辑,以避免诸如无序排列等代价高昂的操作

但是,如果您坚持需要生成1000个作业,每个文件一个作业,那么您应该查看
--executor memory
--executor cores
(以及
num executors
的并行性)。这些功能使您可以利用它们优化内存/CPU占用

同样奇怪的是,您说您在spark提交期间得到OOM(使用驱动程序内存)。驱动程序实际上根本不使用任何内存,除非您使用大型集合执行
收集
获取
之类的操作,这会将执行器中的数据带给驱动程序。您是否也在
纱线客户端
模式下启动作业?另一个预感是检查生成spark作业的框是否有足够的内存来生成第一个作业


如果您也可以在此处粘贴一些日志,则会更容易

实际上,在HDFS中读取1000个文件可能不需要1000个作业。您也可以尝试在单个RDD中加载所有内容(API支持读取多个文件和路径中的通配符)。现在,在读取单个RDD中的所有文件之后,您应该真正关注于确保是否有足够的内存、内核等分配给它,并开始查看您的业务逻辑,以避免诸如无序排列等代价高昂的操作

但是,如果您坚持需要生成1000个作业,每个文件一个作业,那么您应该查看
--executor memory
--executor cores
(以及
num executors
的并行性)。这些功能使您可以利用它们优化内存/CPU占用

同样奇怪的是,您说您在spark提交期间得到OOM(使用驱动程序内存)。驱动程序实际上根本不使用任何内存,除非您使用大型集合执行
收集
获取
之类的操作,这会将执行器中的数据带给驱动程序。您是否也在
纱线客户端
模式下启动作业?另一个预感是检查生成spark作业的框是否有足够的内存来生成第一个作业


如果您也可以在此处粘贴一些日志,则会更容易

我们知道在单个RDD中读取多个文件,但文件大小非常大,我们希望调度资源,而不是在应用程序中处理它。并行触发多个作业将提高系统性能,我们不希望使用执行器或将来的任务从应用程序级别执行/usr/hdp/2.4.2.0-258/spark/bin/spark-submit--class xxx.xxx.xxx--master warn cluster--total executor core 6--executor memory 2G--driver memory 1G--queue default xxx-1.0.0.jar,您是否在驱动程序上得到OOM异常?如果您在executor上得到它,您需要给它更多的内存或检查分区大小。我们增加了内存和分区大小仍然不起作用。我们知道在单个RDD中读取多个文件,但文件大小很大。我们希望调度资源,而不是在应用程序中处理它。并行触发多个作业将提高系统性能,我们不希望使用执行器或将来的任务从应用程序级别执行/usr/hdp/2.4.2.0-258/spark/bin/spark-submit--class xxx.xxx.xxx--master warn cluster--total executor core 6--executor memory 2G--driver memory 1G--queue default xxx-1.0.0.jar,您是否在驱动程序上得到OOM异常?如果您在executor上获得它,您需要给它更多的内存或检查分区大小。我们增加了内存,分区大小仍然不起作用。我们使用python脚本生成的命令如下所示/usr/hdp/2.4.2.0-258/spark/bin/spark-submit--class xxx.xxx.xxx--master warn cluster--total executor core 6--executor memory 2G--driver memory 1G--queue default xxx-1.0.0.jar命令,我们使用python脚本生成,如下所示/usr/hdp/2.4.2.0-258/spark/bin/spark-submit--class xxx.xxx.xxx--master warn cluster--total executor core 6--executor memory 2G--driver memory 1G--queue default xxx-1.0.0.jar