У меня возникла исключительная ситуация, связанная с тайм-аутом чтения при выборке таблиц из Hive. Hive содержит около 30 схем, каждая из которых содержит 10 тыс. Таблиц. Я написал программу JDB C для получения всех таблиц из Hive. Однако через ~ 7-8 минут я вижу следующее сообщение об ошибке.
org.apache.hive.service.cli.HiveSQLException: MetaException(message:Got exception: org.apache.thrift.transport.TTransportException java.net.SocketTimeoutException: Read timed out)
at org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:264)
at org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:255)
at org.apache.hive.jdbc.HiveDatabaseMetaData.getTables(HiveDatabaseMetaData.java:692)
at HiveConnection.HiveJDBC.main(HiveJDBC.java:27)
Время ожидания следующего вызова истекло. Поскольку мне нужно получить все таблицы из всей схемы, я должен передать null в качестве аргумента.
DatabaseMetaData dbMeta = con.getMetaData();
ResultSet rs = dbMeta.getTables(null, null, null, null);
Есть ли лучший способ реализовать это или увеличить тайм-аут? Я выполняю активную загрузку вместо отложенной загрузки из-за других проблем.
Спасибо за вашу помощь.