Соединения с HBase и ZooKeeper управляются для вас статическим HConnectionManager объектом. Этот объект представляет собой карту объектов конфигурации (в действительности HBaseConfiguration ) и объектов HConnection .
HConnectionManager позволяет очищать соединения для экземпляра конфигурации, вызывая его метод deleteConnection .
Итак, если вы хотите принудительно закрыть свои соединения, вы можете просто добавить следующую строку в конец вашего сегмента кода:
//free resources and close connections
HConnectionManager.deleteConnection(config,true);
Однако ...
HBase API предназначен для мультиплексирования клиентских транзакций по одному HConnection, и если несколько экземпляров HTable совместно используют один и тот же объект конфигурации, они будут использовать один и тот же HConnection. Это сохраняет все настройки соединения и снижает накладные расходы для повторных транзакций.
Что это значит?
Это означает, что, если возможно, вы действительно хотите ограничить количество экземпляров HBaseConfiguration для процесса, даже если они совместно используются несколькими потоками. Однако имейте в виду, что экземпляры HBaseConfiguration не являются потокобезопасными , поэтому их не следует изменять несколькими потоками.