Как разделены ключи, значения и записи в потоковой передаче Hadoop, типизированных байтах и ​​/ или необработанных байтах

Я понимаю, что текстовые записи в потоковой передаче Hadoop отделяются символом новой строки и что между ключами и значениями есть настраиваемый разделитель (по умолчанию tab).

1) Структура формата rawbytes предполагает отсутствие необходимости в разделителях записей или ключей / значений, но может ли кто-нибудь подтвердить, что это так?

2) Как разделены ключи и значения в формате typedbytes и как разделены записи?

3) Кроме того, как ключи сортируются в формате typedbytes и rawbytes?

1 ответ

  1. Правильный
  2. Информация о длине в заголовке делает разделители ненужными, и на самом деле они не используются в спецификации, за одним исключением, список с разделителями 255, typecode 9
  3. Порядок сортировки не указан. По моему опыту компаратор по умолчанию в mapreduce сортирует их как необработанные байты, численно для каждого байта и лексикографически для массивов. Это подключаемый модуль, так что вы можете изменить это с помощью своего собственного класса Java.

См. https://hadoop.apache.org/docs/current2/api/org/apache/hadoop/typedbytes/package-summary.html

Антонио

Другие вопросы по тегам