Вы должны получить доступ к файлу с помощью Hadoop API . Вы, вероятно, ищете open . Это даст вам поток, который действует как общий открытый файл. File
не знает, как обращаться с файлами в HDFS.
Я нашел пример кода , который показывает, как это сделать.
Редактировать: После прочтения вашего вопроса я заметил, что вы получаете доступ к нему из задания MapReduce. Если файл достаточно мал (может находиться на диске одного компьютера), вам настоятельно рекомендуется использовать DistributedCache . Это передает файл на каждый узел, выполняющий задание, чтобы к нему можно было быстро получить доступ. Считывание HDFS с помощью нескольких картографических устройств может стать причиной узких мест в полосе пропускания сети в вашей работе.