Идентификатор файла в Hadoop

1

Я хочу сохранить некоторую информацию о файлах, обрабатываемых с HDFS. Каким будет наиболее подходящий способ прочитать местоположение файла и смещение байта в java-программе файла, хранящегося в HDFS?

Существует ли понятие уникального идентификатора файла, связанного с каждым файлом, хранящимся в Hadoop 1? Если да, то как его можно получить в программе MapReduce?

Теги:
hadoop
hdfs
mapreduce

2 ответа

2
Лучший ответ

По моему пониманию,
Вы можете использовать класс org.apache.hadoop.fs.FileSystem для всех ваших потребностей.
1.Вы можете получить каждый файл, однозначно идентифицированный с ним URI, или вы можете использовать getFileChecksum(Path path)
2. Вы можете получить все файлы со всеми getFileBlockLocations(FileStatus file,long start,long len) блока с помощью getFileBlockLocations(FileStatus file,long start,long len)
TextInputFormat дает смещение байта для начального местоположения ключа в файле, что не так, как смещение файла на HDFS.
Вы можете использовать класс org.apache.hadoop.fs.FileSystem для удовлетворения всех ваших потребностей. Существует много других доступных методов. Пожалуйста, пройдите через это для лучшего понимания.
Надеюсь, поможет.

0

В соответствии с "Окончательным руководством к Hadoop" входной формат TextInputFormat дает ключу значение смещения байта.

Для имени файла вы можете посмотреть на них:

Входной порт Mapper-Value в Hadoop

Как получить имя файла из потоковой трансляции задания в R?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню