Установите "hbase.server.keyvalue.maxsize" программно через Java - PullRequest
0 голосов
/ 29 ноября 2018

Я выполнял операции hbase через загрузку Java Spring.Я получаю сообщение об ошибке "Ячейка размером 10762275 превышает ограничение в 10485760 байт" .

Где-то я узнал об увеличении размера ячейки, т.е. мне нужно установить «hbase.server.keyvalue.maxsize» на требуемый размер в hbase-site.xml, чтобы решить эту проблему.Я добавил это свойство, и проблема решена.

Однако я хочу добавить это свойство через код Java, поскольку у меня может не быть доступа к hbase-site.xml в рабочей среде.

Моя конфигурацияметод установки свойств:

public Configuration createHbaseConfiguration() {
        Configuration conf = HBaseConfiguration.create();
        conf.clear();
        conf.set("hbase.master.port", hbaseConnectionPortNum);
        conf.set("hbase.master", hbaseConnectionIpAddr);
        conf.set("hbase.zookeeper.quorum", zookeeperConnectionIpAddr);
        conf.set("hbase.zookeeper.property.clientPort", zookeeperConnectionPortNum);
        conf.setInt("hbase.client.retries.number", 2);
        conf.setInt("hbase.client.keyvalue.maxsize", 0);
        conf.setInt("hbase.server.keyvalue.maxsize", 0);
        return conf;
    }

Я могу подключиться к hbase, также я могу выполнять все другие операции hbase через java с этими проэпритами, однако я получаю ту же проблему, что и размер ячейки.

Примечание: установка "hbase.server.keyvalue.maxsize" на 0 снимает все ограничения размера ячейки.

Суммируйте: Если яустановить свойство "hbase.server.keyvalue.maxsize" в hbae-site.xml, оно прекрасно работает, однако, если я пытаюсь добавить его программно через Java, оно не работает.

Пожалуйста, дайтея знаю причину и решение проблемы?

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

hbase.server.keyvalue.maxsize защищает ваш рабочий сервер от недобросовестных клиентов, которые пытаются загрузить большие ячейки.Это свойство не может быть переопределено клиентом, это противоречит его первоначальной цели.

hbase.client.keyvalue.maxsize используется для проверки размера ячейки на стороне клиента без запроса к серверу.Обычно оно имеет то же значение, что и hbase.server.keyvalue.maxsize .

Это плохая идея для загрузки ячейки, размер которой превышает 10 МБ (значение по умолчанию).Попробуйте прочитать о MOB функции в HBase, она разработана для вашего случая использования.

0 голосов
/ 29 ноября 2018

Сомневаюсь, если есть какое-либо свойство с именем " hbase.server.keyvalue.maxsize ".
Это свойство " hbase.client.keyvalue.maxsize ", котороеотключает ограничение для экземпляра Keyvalue.

Вот hbase-default.xml: https://svn.apache.org/repos/asf/hbase/hbase.apache.org/trunk/hbase-default.xml

Да, вы можете установить это свойство в Java-программе, как указано ниже.

conf.set("hbase.client.keyvalue.maxsize","0");
...