Я работаю над заданием, которое обрабатывает вложенную структуру каталогов, содержащую файлы на нескольких уровнях:
one/
├── three/
│ └── four/
│ ├── baz.txt
│ ├── bleh.txt
│ └── foo.txt
└── two/
├── bar.txt
└── gaa.txt
Когда я добавляю one/
в качестве входного пути, файлы не обрабатываются, так как ни один из них не доступен сразу на корневом уровне.
Я читал о job.addInputPathRecursively(..)
, но это, похоже, устарело в последних выпусках (я использую hasoop 1.0.2). Я написал некоторый код, чтобы ходить по папкам и добавлять каждый каталог с помощью job.addInputPath(dir)
, который работал до тех пор, пока задание не разбилось при попытке обработать каталог как входной файл по какой-либо причине, например. - пытается fs.open(split.getPath())
, когда split.getPath()
является каталогом (это происходит внутри LineRecordReader.java
).
Я пытаюсь убедить себя, что должен быть более простой способ предоставить работу вложенной структуре каталогов. Любые идеи?
РЕДАКТИРОВАТЬ - видимо, есть открытая ошибка.