#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 предпочтительнее.