Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.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
Java 在拼花地板上运行SQL时,为什么Spark驱动程序缓存那么多hadoop LocatedFileStatus_Java_Apache Spark_Apache Spark Sql_Parquet - Fatal编程技术网

Java 在拼花地板上运行SQL时,为什么Spark驱动程序缓存那么多hadoop LocatedFileStatus

Java 在拼花地板上运行SQL时,为什么Spark驱动程序缓存那么多hadoop LocatedFileStatus,java,apache-spark,apache-spark-sql,parquet,Java,Apache Spark,Apache Spark Sql,Parquet,我在纱线簇上运行spark作业,从拼花地板文件读取数据,并在分析后写回。运行一段时间后,驱动程序将得到OOM并退出。我发现驱动程序中有很多hadoop元数据(jmap-histo:live$PID | head-30) 我在hdfs拼花文件上运行sql,sql如下 "SELECT * FROM parquet.`/warehouse/TMP/USER`". 该作业将读取约1440000个hdfs文件。我建议spark将所有hdfs文件meta加载到驱动程序momery中的/warehouse/

我在纱线簇上运行spark作业,从拼花地板文件读取数据,并在分析后写回。运行一段时间后,驱动程序将得到OOM并退出。我发现驱动程序中有很多hadoop元数据(jmap-histo:live$PID | head-30)

我在hdfs拼花文件上运行sql,sql如下

"SELECT * FROM parquet.`/warehouse/TMP/USER`".
该作业将读取约1440000个hdfs文件。我建议spark将所有hdfs文件meta加载到驱动程序momery中的/warehouse/TMP/USER下,这样做之后,spark executor将从驱动程序中搜索hdfs块元数据,而不是hdfs namenode,并加快数据读取速度。 我必须删除一些hdfs文件来完成我的工作,我想知道,为什么spark驱动程序一直保存这些元数据,我如何控制spark驱动程序中的内存使用

"SELECT * FROM parquet.`/warehouse/TMP/USER`".