0

我正在尝试从镶木地板文件中读取元数据信息:

metaData=ParquetFileReader.readFooter(fs.getConf(),file) ;

此行在CLOSE_WAIT-state 中打开一个连接(使用lsof -p pid命令检查)。

TCP rack162-hdp26-dev:36608->rack162-hdp26-dev:1019 (CLOSE_WAIT)

在超过 65,536 个文件上,它返回“打开的文件太多”-错误(因此需要重新启动我的应用程序)。我尝试替换为:

try (ParquetFileReader r = ParquetFileReader.open(fs.getConf(), file)) {

     logger.info("Getting metadata for:" + file.toString());
     metaData = r.getFooter()

     //other code//
}

但仍然面临一个问题。我已经尝试过版本为 1.8.1、1.10.1、1.11.1 的 parquet-hadoop jar,但每个版本都面临问题。

4

0 回答 0