Hadoop MapReduce 提供嵌套目录作为作业输入

标签 hadoop nested mapreduce directory-walk

我正在处理一个嵌套目录结构的工作,其中包含多个级别的文件:

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).

我试图说服自己必须有一种更简单的方法来提供具有嵌套目录结构的作业。有什么想法吗?

编辑 - 显然有一个 open bug对此。

最佳答案

我没有找到关于此的任何文档,但 */* 有效。所以它是 -input 'path/*/*'

关于Hadoop MapReduce 提供嵌套目录作为作业输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10210713/

相关文章:

Hadoop - 组合键

c++ - 嵌套类崩溃 C++

Python - 动态嵌套列表

java - 我应该如何克隆嵌套 ArrayList?

java - 将 Elasticsearch DSL 查询与 Hadoop Mapreduce 结合使用

mongodb - 在 MongoDB mapreduce 中,如何展平值对象?

scala - Spark 使用相同的键创建字段数组

hadoop - 如何在 EC2 实例上设置具有单独 IP 地址的 Docker 容器?

hadoop - Hive 加入设置的 reducer 数量

hadoop - hadoop mapreduce处理