2016-11-14 18 views
1

В Hbase, я настроил hbase.hregion.max.filesize как 10GB. Если одиночная строка превышает размер 10 ГБ, то строка не будет находиться в двух областях, так как разделение Hbase выполняется на основе строки строкиОшибка производительности, когда одна строка в Hbase превышает hbase.hregion.max.filesize

Например, если у меня есть строка, которая имеет 1000 столбцов, и каждый столбец варьируется от 25 МБ до 40 МБ. Таким образом, есть шанс превысить определенный размер региона. Если это так, как это повлияет на производительность при чтении данных с использованием rowkey или row-key с классификатором столбцов?

ответ

2

Прежде всего, Hbase НЕ предназначен для хранения столь больших данных 10 ГБ в одном ряду (его довольно гипотетический).

Я надеюсь, что вы еще не сохранили 10GB в одной строке (только думать о спасении, что)

Это отрицательно скажется на производительности. Вы рассматриваете другие способы хранения таких данных в hdfs в многораздельной структуре.

В целом, они являются tips for generally applicable batch clients like Mapreduce Hbase jobs

Scan scan = new Scan(); 
scan.setCaching(500); //1 is the default in Scan, which will be bad for MapReduce jobs 
scan.setCacheBlocks(false); // don't set to true for MR jobs 

Может иметь вид на Performance

+0

Оптимальный размер для одной строки в Hbase. Исходя из этого, я создам свой ключ строки. И где я могу получить эту информацию? – Roshan

+0

AFAIK, нет оптимального размера, но мы сохранили прото-сообщения до 10 мб на строку и обрабатывались с помощью mapreduce, но затем нам нужно уменьшить размер кеша (количество предварительно записанных записей), от 500 до 200. Но определенно это может быть в mbs не GB –

 Смежные вопросы

  • Нет связанных вопросов^_^