【发布时间】:2019-01-18 08:02:29
【问题描述】:
我注意到一些特殊的行为,我有 spark 作业,它读取数据并进行一些分组排序和连接并创建一个输出文件。
问题是当我在纱线上运行相同的作业时,其内存超过了环境的内存,例如集群有 50 GB,我提交 spark-submit 时执行器内存接近 60 GB,驱动程序内存为 4 GB。 我的结果减少了,好像其中一个数据分区或任务在处理过程中丢失了。
driver-memory 4g --executor-memory 4g --num-executors 12
我还注意到驱动程序上的警告消息 -
WARN util.Utils: Truncated the string representation of a plan since it was too large. This behavior can be adjusted by setting 'spark.debug.maxToStringFields' in SparkEnv.conf.
但是当我使用有限的执行程序和内存示例 15GB 运行时,它可以工作并且我得到准确的行/数据。没有警告信息。
driver-memory 2g --executor-memory 2g --num-executors 4
我们是否缺少集群上的某些设置或其他任何建议? 请注意我的工作在这两种情况下都成功完成。 我使用的是 Spark 2.2 版。
【问题讨论】: