Такой файл не существует при запуске Had oop каналов с использованием c ++ - PullRequest
1 голос
/ 12 июля 2020

Во время работы программы has oop map reduce с использованием каналов had oop файл, который присутствует в hdfs, не найден с помощью map reduce. Если программа выполняется без каналов oop, файл легко найти библиотекой libhdfs, но при запуске программы с командой

hadoop pipes -input i -ouput o -program p 

файл не найден библиотеками libhdfs и java .io.exception выбрасывается. Пытались включить в команду параметр -fs, но результаты все те же. Я также включил hdfs: // localhost: 9000 / с файлами, но все равно никаких результатов. Параметр файла находится внутри кода c как:

file="/path/to/file/in/hdfs" or "hdfs://localhost:9000/path/to/file"
hdfsFS fs = hdfsConnect("localhost", 9000);
hdfsFile input=hdfsOpenFile(fs,file,O_RDONLY,0,0,0);

1 Ответ

0 голосов
/ 13 июля 2020

Нашел проблему. Файлы в hdfs недоступны для узла задачи mapreduce. Поэтому вместо этого пришлось передавать файлы в распределенный кеш через тег архива, сжимая файлы в один файл tar. Этого также можно добиться, написав собственный класс формата ввода и предоставив файлы во входном параметре.

...