Java Spark服用了20G+;写入140MB拼花地板文件的内存
我有一个spark作业,它在一个较小的拼花文件中读取,并对列名进行一些更改,然后将其重新分区到稍大的文件中,并在分区中进行排序 最终以拼花格式写入HDFS 但根据纱线容器日志: 2018-10-10 20:51:19397信息 org.apache.hadoop.warn.server.nodemanager.containermanager.monitor.ContainerMonitorImpl:ProcessTree 13331对容器id容器的内存使用:使用了26.9 GB的35.5 GB物理内存;使用了35.0 GB的74.5 GB虚拟内存 其中文件大小仅为145MB 代码如下:Java Spark服用了20G+;写入140MB拼花地板文件的内存,java,apache-spark,memory-management,apache-spark-sql,parquet,Java,Apache Spark,Memory Management,Apache Spark Sql,Parquet,我有一个spark作业,它在一个较小的拼花文件中读取,并对列名进行一些更改,然后将其重新分区到稍大的文件中,并在分区中进行排序 最终以拼花格式写入HDFS 但根据纱线容器日志: 2018-10-10 20:51:19397信息 org.apache.hadoop.warn.server.nodemanager.containermanager.monitor.ContainerMonitorImpl:ProcessTree 13331对容器id容器的内存使用:使用了26.9 GB的35.5 GB
df.repartition(32, columns)
.sortWithinPartitions(columns)
.write().parquet(PATH)
这项工作的每项任务都需要25GB+的物理内存使用率有趣的观察,但你的问题是什么?请具体说明你的问题。此外,请添加有关如何提交spark作业的详细信息。你给驱动程序和执行器多少内存?我给每个执行器32GB内存。我的问题是,是什么占用了如此多的内存,以至于数据量相对较小