Получить размер области Hbase через API

Я пытаюсь написать инструмент балансировки для Hbase, который мог бы балансировать регионы через regionServers для таблицы по региону и/или размеру региона (сумма размеров storeFile). Я не мог найти ни одного класса API Hbase, который возвращает размер регионов или соответствующую информацию. Я уже проверил несколько классов, которые могут быть использованы для получения другой информации о таблице/регионе, например. org.apache.hadoop.hbase.client.HTable и HBaseAdmin.

Я думаю, что это может быть реализовано с помощью одного из классов Hadoop, который возвращает размер каталогов в файловой системе, например. org.apache.hadoop.fs.FileSystem перечисляет файлы под определенным HDFS-контуром.

Какие-либо предложения ?

Я использую это для управления разделенными областями, но вы можете использовать его для балансировки нагрузки самостоятельно. Я также балансирую нагрузку, чтобы равномерно распределять регионы (данной таблицы) через наши узлы, чтобы задания MR равномерно распределялись.

Возможно, приведенный ниже фрагмент кода полезен?

```
final HBaseAdmin admin = new HBaseAdmin(conf);
final ClusterStatus clusterStatus = admin.getClusterStatus();

for (ServerName serverName : clusterStatus.getServers()) {
  final HServerLoad serverLoad = clusterStatus.getLoad(serverName);

  for (Map.Entry entry : serverLoad.getRegionsLoad().entrySet()) {
 final String region = Bytes.toString(entry.getKey());
 final HServerLoad.RegionLoad regionLoad = entry.getValue();
 long storeFileSize = regionLoad.getStorefileSizeMB();
 //other useful thing in regionLoad if you like
 }
}

```



Что случилось с параметром  [Load Balancer](https://hbase.apache.org/book/master.html#master.processes.loadbalancer) ?

Из Вики:

 *Балансир - это периодическая операция, которая запускается на сервере для перераспределения областей в кластере. Он настраивается с помощью  `hbase.balancer.period`  и по умолчанию 300000 (5 минут).* 

Если вы действительно хотите это сделать, вы действительно можете использовать  [API Hadoop](https://hadoop.apache.org/docs/stable/api/index.html)  и более конкретно, класс  `FileStatus` . Этот класс действует как интерфейс для представления информации о стороне клиента для файла.