[
https://issues.apache.org/jira/browse/SPARK-18700?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Li Yuanjian updated SPARK-18700:
--------------------------------
Description:
In our spark sql platform, each query use same HiveContext and independent
thread, new data will append to tables as new partitions every 30min. After a
new partition added to table T, we should call refreshTable to clear T’s cache
in cachedDataSourceTables to make the new partition searchable.
For the table have more partitions and files(much bigger than
spark.sql.sources.parallelPartitionDiscovery.threshold), a new query of table T
will start a job to fetch all FileStatus in listLeafFiles function. Because of
the huge number of files, the job will run several seconds, during the time,
new queries of table T will also start new jobs to fetch FileStatus because of
the function of getCache is not thread safe. Final cause a driver OOM.
was:
In our spark sql platform, each query use same HiveContext and independent
thread, new data will append to tables as new partitions every 30min. After a
new partition added to table T, we should call refreshTable to clear T’s cache
in cachedDataSourceTables
to make the new partition searchable.
For the table have more partitions and files(much bigger than
spark.sql.sources.parallelPartitionDiscovery.threshold), a new query of table T
will start a job to fetch all FileStatus in listLeafFiles function. Because of
the huge number of files, the job will run several seconds, during the time,
new queries of table T will also start new jobs to fetch FileStatus because of
the function of getCache is not thread safe. Final cause a driver OOM.
> getCached in HiveMetastoreCatalog not thread safe cause driver OOM
> ------------------------------------------------------------------
>
> Key: SPARK-18700
> URL: https://issues.apache.org/jira/browse/SPARK-18700
> Project: Spark
> Issue Type: Bug
> Components: SQL
> Affects Versions: 1.6.1, 2.0.0
> Reporter: Li Yuanjian
>
> In our spark sql platform, each query use same HiveContext and
> independent thread, new data will append to tables as new partitions every
> 30min. After a new partition added to table T, we should call refreshTable to
> clear T’s cache in cachedDataSourceTables to make the new partition
> searchable.
> For the table have more partitions and files(much bigger than
> spark.sql.sources.parallelPartitionDiscovery.threshold), a new query of table
> T will start a job to fetch all FileStatus in listLeafFiles function. Because
> of the huge number of files, the job will run several seconds, during the
> time, new queries of table T will also start new jobs to fetch FileStatus
> because of the function of getCache is not thread safe. Final cause a driver
> OOM.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]