我正在从事一项处理嵌套目录结构的工作,其中包含多个级别的文件:
one/
├── three/
│ └── four/
│ ├── baz.txt
│ ├── bleh.txt
│ └── foo.txt
└── two/
├── bar.txt
└── gaa.txt
当我添加one/
为输入路径时,不会处理任何文件,因为在根级别没有立即可用的文件。
我读到了job.addInputPathRecursively(..)
,但这似乎在最近的版本中已被弃用(我使用的是 hadoop 1.0.2)。我编写了一些代码来遍历文件夹并添加每个目录job.addInputPath(dir)
,这一直有效,直到由于某种原因尝试将目录作为输入文件处理时作业崩溃,例如 - 尝试fs.open(split.getPath())
,何时split.getPath()
是目录(这发生在里面LineRecordReader.java
) .
我试图说服自己必须有一种更简单的方法来提供具有嵌套目录结构的作业。有任何想法吗?
编辑- 显然有一个开放的错误。