并行写入Hadoop文件系统

时间:2016-08-03 09:13:00

标签: java hadoop hdfs

我对Hadoop很新,我有一个问题......

我有一个输出文件(任务的结果),我想修改它。由于它可能是非常大文件,我想在parralel中执行此操作。

注意:我不想简单地附加数据,我想在结构上修改(甚至是大小),所以我必须完全阅读并将其写回来

读取文件不是问题,我给每个工人一个文件的一部分,他们只需要阅读它并进行他们想要的更改。

但是为了将新文件写回hdfs,这似乎更棘手。

我的问题是:我怎样才能在hdfs中创建一个大文件并让我的工作人员同时写入它(我知道每个部分的大小,所以两个工人永远不会尝试写入相同的位置)。

提前致谢:)

1 个答案:

答案 0 :(得分:0)

由于作业是读取输入文件并将输入文件中的选择内容并行写入输出位置,因此这只是一个映射器作业。

  1. 创建一个Mapper类来读取文件并执行操作 文件。
  2. 在驱动程序类中设置映射器的编号。

      job.setNumMapTasks(n); n-number of mappers