Может ли наличие большой таблицы в hbase влиять на производительность других меньших таблиц? - PullRequest
1 голос
/ 03 февраля 2020

В нашей более низкой среде у нас есть одна таблица с 100 000 000 строк, и прямое сканирование этой таблицы может возвращать около 2 800 строк в секунду. В нашей производственной среде у нас есть таблица из 100 000 000 строк и еще около 4 миллиардов строк, а сканирование таблицы меньшего размера дает только 1 000 строк в секунду. В обоих случаях никаких других действий не происходит, поэтому наличие большой таблицы объясняет снижение производительности?

Обе таблицы имеют одно семейство столбцов, а большая таблица имеет 400 столбцов, но запись будет иметь только 1 из них заполнены. Меньшая таблица содержит один столбец, и этот столбец всегда заполняется.

1 Ответ

0 голосов
/ 05 февраля 2020

Вы можете попытаться указать, сколько ресурсов HBase выделяет для сканирования в hbase-site.xml. Это можно сделать в два этапа: 1. Указать процент ресурсов, выделенных для чтения (в отличие от записи) 2. Указать процент ресурсов READS, выделенных для сканирования (а не для получения)

В приведенном ниже примере вы иметь 96 процессоров во всем кластере. Вы выделяете 80% их внимания на чтение, а затем 80% этого внимания на сканирование.

Посмотрите, имеет ли это какое-то значение для вас.

   <property>
        <name>hbase.regionserver.handler.count</name>
        <value>96</value> <!-- roughly # of CPUs in the whole cluster -->
    </property>
    <property>
        <name>hbase.ipc.server.callqueue.read.ratio</name>
        <value>0.8</value>
    </property>
    <property>
        <name>hbase.ipc.server.callqueue.scan.ratio</name>
        <value>0.8</value>
    </property>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...