我正在尝试从Parquet文件中读取元数据信息:
metaData=ParquetFileReader.readFooter(fs.getConf(),file) ;
这条线在中打开一个连接 CLOSE_WAIT
-状态(使用 lsof -p pid
命令)。
TCP rack162-hdp26-dev:36608->rack162-hdp26-dev:1019 (CLOSE_WAIT)
对于超过65536个文件,它返回“打开的文件太多”错误(因此需要重新启动我的应用程序)。我试着替换为:
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版本的Parquethadoop jar,但是每个版本都有问题。
暂无答案!
目前还没有任何答案,快来回答吧!