Таблицы HBase не уменьшаются, как ожидалось

#java #hbase

#java #hbase

Вопрос:

У меня есть отдельный экземпляр HBase (без hadoop), работающий на одной машине.

Первоначально он был 32G, после обновления некоторых определений столбцов из оболочки:

 alter 'table', {NAME =>'mycol', TTL => <two_months>}
alter 'table', {NAME =>'mycol', COMPRESSION => 'GZ'}
  

Хранилище данных выросло за ночь с 32G до 51G (не из-за новых данных!). Я ожидаю, что таблица уменьшится, поскольку большинство записей старше two_months. Кроме того, я запросил сжатие столбца.

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

Я ожидал, что он уменьшится при следующем крупном уплотнении, прошло> 24 часов, и я удивлен, что этого еще не произошло.

Комментарии:

1. Вы пробовали вручную выполнить значительное сжатие таблицы? Также вы можете просмотреть страницы администрирования html

Ответ №1:

Для проблемы TTL просто принудительно выполните значительное уплотнение, как заявил Юханич. Сжатие сложнее, хотя, поскольку в hbase пока нет метода автоматического объединения блоков (в jira есть проблемы с этим), ваше количество блоков (регионов) не изменится. Когда я переключаю сжатие, я предпочитаю экспортировать -> усекать -> повторно импортировать данные.

Небольшая подсказка: если размер является проблемой, самая простая оптимизация — это снижение значения ВЕРСИЙ (до 1, если это возможно). Я думаю, вы это уже сделали.

Комментарии:

1. Спасибо, использование версий — это вариант, ttl предпочтительнее.