Как определить размеры таблицы в hbase между длиной строк, форматом KeyValue и HDFS? - PullRequest
0 голосов
/ 15 мая 2019

Свойство "hbase.cluster.distribute" в "hbase-site.xml" имеет значение "true". Чтобы объединить размеры всех таблиц, нужно ли просто добавлять длины всех строк?С другой стороны, в некоторых статьях говорится, что данные в HBase сохраняются в HFile в формах формата KeyValue, который имеет больше переменных и имеет гораздо большую длину, чем сама строка.А в hdfs некоторые узлы данных дублируют данные.размер данных в формате hdf будет умножен.Если бы мы могли сказать о размере данных в HBase, который является более надежным и точным среди добавления длины строк, добавления размера HFile и умноженного размера?

Я сравнил длину всех строк с размером файла, которыйявляется результатом "hdfs dfs -du".Есть некоторые отличия.Кажется, потому что в Ambari есть пара папок и файлов.

for (TableDescriptor tblDescriptor : tblDescriptors) {
    TableName tableName = tblDescriptor.getTableName();     
    Table table = connection.getTable(tableName);
    Scan scan = new Scan();
    if (scan.getAllowPartialResults()) 
    { scan.setAllowPartialResults(false); }

    for (Result rs : table.getScanner(scan)) {
    List<Cell> cells = rs.listCells();

    for (Cell cell : cells) {
        totalSize += KeyValue.KEY_LENGTH_SIZE
            + KeyValue.ROW_LENGTH_SIZE
            + KeyValue.FAMILY_LENGTH_SIZE
            + KeyValue.TIMESTAMP_SIZE
            + KeyValue.TYPE_SIZE
            + KeyValue.ROW_LENGTH_SIZE
            + cell.getRowLength()
            + cell.getFamilyLength()
            + cell.getQualifierLength()
            + cell.getValueLength();
    }
    }
}

длина всех строк: 114709 размер файла в hdfs: 135675

Должен ли я повторить эту вещь не сдлина строк, но с форматом KeyValue?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...