У меня есть один файл 300MB
. Размер block
составляет 128MB
. Таким образом, входной файл делится на следующие куски и помещается в HDFS.У блоков HDFS есть информация о смещении байтов, хранящаяся в Hadoop?
Block1: 128MB
Block2: 128MB
Block3: 64MB.
В настоящее время данные каждого блока содержат byte offset
информацию, содержащуюся в нем. То есть, блоки имеют следующие offset
информации?
Block1: 0-128MB of File
Block2 129-256MB of File
Block3: 257MB-64MB of file
Если да, то как я могу получить информацию байтового смещения для block2 (То есть начинается 129MB) в Hadoop. Это только для понимания. Любые инструменты командной строки hadoop для получения таких метаданных о блоках?
EDIT
Если информация байтового смещения нет, картостроитель выполняет свою карту задание на блоке начнет потреблять строки с самого начала. Если присутствует информация о смещении, то он будет пропустить, пока не найдет следующий EOL, а затем начнет обработку записей. Итак, я думаю, что информация о смещении байтов присутствует внутри блоков.
Идею не знаю, но я бы начал с написания небольшого сценария, который генерирует файл размером 300 МБ. – admdrew
@admdrew: Меня не интересует получение 300 МБ файла. но больше на внутренностях того, как хранятся метаданные блока (внутри блока) –
Согласовано. Отмеченный; Надеюсь, кто-то ответит! – admdrew