Получение слишком большого количества таблиц из Hive с использованием драйвера JDB C вызывает исключение времени ожидания чтения - PullRequest
0 голосов
/ 05 мая 2020

У меня возникла исключительная ситуация, связанная с тайм-аутом чтения при выборке таблиц из 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);

Есть ли лучший способ реализовать это или увеличить тайм-аут? Я выполняю активную загрузку вместо отложенной загрузки из-за других проблем.

Спасибо за вашу помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...