异常现象:
jdbc报socket is closed by peer
异常原因:
impala的jdbc连接只能保持连接时的底层存储快照,如果使用连接池,那么当impala底层数据存储更改后,jdbc执行sql查询时会报异常
出现问题场景:
我遇到的问题场景是在spark通过hive直接写入parquet文件,用impala jdbc的方式进行INVALIDATE METADATA table,查询报链接异常,此问题是因为我使用了链接池,链接是在spark写入文件前建立的,因此impala底层日志报找不到文件的错,jdbc报socket is closed by peer
结论:
如果impala的底层存储文件通过spark或者hive直接写入文件,最好不要用连接池,每次查询建立新的链接。