Comments 5
bulkload, по сути своей — перемещение HFile-ов из входной директории в хранилище HBase (+ инициализация новых файлов, + проверка на то, что не изменились границы регионов, пока эти HFile-ы создавались). Это во много раз быстрее, многочисленных Put-ов…
Единственное, надо иметь ввиду, что при загрузке данных сразу в несколько семейств колонок, происходит попытка заблокировать очередной регион на запись. В случае, если идут какие-то другие опреации (например какая-то MR-задача читает данные из HBase или идёт процесс компакшена), попытка получить write lock может затянуться.
Время, которое тратится на формирование HFile-ов из сходных CSV файлов (по сути, время MR-задачи) можно попытаться оптимизировать настройками.
Единственное, надо иметь ввиду, что при загрузке данных сразу в несколько семейств колонок, происходит попытка заблокировать очередной регион на запись. В случае, если идут какие-то другие опреации (например какая-то MR-задача читает данные из HBase или идёт процесс компакшена), попытка получить write lock может затянуться.
Время, которое тратится на формирование HFile-ов из сходных CSV файлов (по сути, время MR-задачи) можно попытаться оптимизировать настройками.
bulkload, по сути своей — перемещение HFile-ов из входной директории в хранилище HBase
Это верно.
Но файлы всёравно подготавливать надо. Мне было необходимо понять, на сколько это продуктивно работает с сырыми данными…
У bluck load есть одна проблема, если произошел split одного из регионов, то часть данных может не загрузится. Это происходит потому, что то HFiles формируются по заранее известным регионам.
Там есть проверка на то, что границы регионов могли измениться, в т.ч. за счёт сплита.
Sign up to leave a comment.
HBase, загрузка больших массивов данных через bulk load