我正在尝试建立一个完全分布式的 Hadoop/MapReduce 实例,其中每个节点将在某些输入上运行一系列 C++ Hadoop 流任务。但是我不想将所有输入任务移动到 HDFS 上——相反,我想看看是否有办法从每个节点的本地文件夹中读取输入数据。
有没有办法做到这一点?
编辑: 我想运行的 hadoop 命令示例类似于:
hadoop jar $HADOOP_STREAM/hadoop-streaming-0.20.203.0.jar \
-mapper map_example \
-input file:///data/ \
-output /output/ \
-reducer reducer_example \
-file map_example \
-file reducer_example
在这种情况下,我每个节点中存储的数据都在 /data/ 目录中,我希望输出到每个单独节点的 /output/ 目录中。map_example 和 reducer_example 文件在所有节点本地可用。
我将如何实现一个 Hadoop 命令,如果它在主节点上运行,那么所有从节点基本上将在 x 个节点上运行相同的任务,从而在每个节点中生成一个本地输出文件(基于本地输入文件)?
谢谢