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