Как разделены ключи, значения и записи в потоковой передаче Hadoop, типизированных байтах и / или необработанных байтах
Я понимаю, что текстовые записи в потоковой передаче Hadoop отделяются символом новой строки и что между ключами и значениями есть настраиваемый разделитель (по умолчанию tab).
1) Структура формата rawbytes предполагает отсутствие необходимости в разделителях записей или ключей / значений, но может ли кто-нибудь подтвердить, что это так?
2) Как разделены ключи и значения в формате typedbytes и как разделены записи?
3) Кроме того, как ключи сортируются в формате typedbytes и rawbytes?
1 ответ
- Правильный
- Информация о длине в заголовке делает разделители ненужными, и на самом деле они не используются в спецификации, за одним исключением, список с разделителями 255, typecode 9
- Порядок сортировки не указан. По моему опыту компаратор по умолчанию в mapreduce сортирует их как необработанные байты, численно для каждого байта и лексикографически для массивов. Это подключаемый модуль, так что вы можете изменить это с помощью своего собственного класса Java.
См. https://hadoop.apache.org/docs/current2/api/org/apache/hadoop/typedbytes/package-summary.html
Антонио