Карта Феникса Уменьшить - утечка соединения Zookeeper? - PullRequest
0 голосов
/ 13 января 2019

У меня есть несколько заданий по уменьшению карты, запускаемых на Hbase с использованием Apache Phoenix с использованием PhoenixMapReduceUtil. Чтобы запустить карту, уменьшающую количество заданий, я использую Java-программу, которая является длительным процессом, ожидающим триггеров для запуска карты, уменьшающей количество заданий. Проблема заключается в том, что число дескрипторов открытых файлов для программы запуска продолжает расти со временем, в конечном итоге достигая состояния, при котором больше не может быть выполнено заданий по уменьшению карты из-за ошибки «слишком много открытых файлов». Когда я проверил список открытых файлов, который накапливается, все это либо соединения Zookeeper (порт 2181), либо соединение Hbase (порт 16070). Работа создается следующим образом. Это согласно карте Apache Phoenix уменьшить образец

Configuration configuration = HBaseConfiguration.create();
Job job = Job.getInstance(configuration,appName);
PhoenixMapReduceUtil.setInput(job,PhoenixTableInput.class,inTablename,query);
PhoenixMapReduceUtil.setOutput(job, outTablename, outTableColumns);

job.setMapperClass(...);
....

TableMapReduceUtil.addDependencyJars(job);
job.waitForCompletion(true)

Пока программа запуска работает, эти соединения включены. Любые указатели о том, как очистить эти соединения без фактической остановки программы Launcher?

...