У меня есть файл .txt
следующим образом:
Это xyz
Это мой дом
Это мой компьютер
Это моя комната
Это компьютер ubuntu xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxxxxxxxxxxxxxxxxxxx
(игнорируя пустую строку после каждой записи)
Я установил размер блока как 64 байта. Я пытаюсь проверить, существует ли ситуация, когда одна запись разбита на два блока или нет.
Теперь логически, поскольку размер блока 64 байта, после загрузки файла в HDFS он должен создать 3 блока размером 64,64,27 байт соответственно, который он делает. Кроме того, поскольку размер первого блока составляет 64 байта, он должен содержать только следующие данные:
Это xyz
Это мой дом
Это мой компьютер
Это моя комната
ЧТ
Теперь я хочу посмотреть, нравится ли первый блок или нет, если я просматриваю HDFS через браузер и загружаю файл, он загружает весь файл не одним блоком.. p >
Итак, я решил запустить работу по уменьшению карты, которая будет отображать только значения записи. (Настройка reducers=0
и вывод отображения в качестве context.write(null,record_value)
, также изменяя разделитель по умолчанию на ""
)
Теперь при запуске задания счетчики заданий показывают 3 раскола, что очевидно, но после завершения, когда я проверяю выходной каталог, он показывает 3 выходных файла карты из которых 2 пустые, и первый выходной файл картографа имеет все содержимое файла, как оно есть.
Может ли кто-нибудь помочь мне с этим? Возможно ли, что новые версии hadoop автоматически обрабатывают неполные записи?