如何使用mapreduce代码合并n个文件?

时间:2016-04-20 11:17:06

标签: hadoop mapreduce hadoop2

我有n个文件,我必须合并这些文件(仅使用map reduce代码) 例如,我正在拍摄2个样本文件。

  

档案1.txt

     

打开的文件是文件1.txt这是file1.txt中的数据

  

file 2.txt

     

打开的文件是文件2.txt这是file2.txt中的数据

我需要将这两个文件和预期输出合并为减速器的part_0001文件,期望它们是两者的组合

  

打开的文件是文件1.txt这是file1.txt中的数据

     

打开的文件是文件2.txt这是file2.txt中的数据

我知道这可以使用hadoop -getmerge轻松实现,但我需要一个简单的mapreduce工作来为我工作。

任何人都可以帮我解决映射器和缩减器必须遵循的逻辑(必须在mapper和reducer中设置的关键和值)?? < / p>

1 个答案:

答案 0 :(得分:0)

您可以通过多种方式执行此操作。

1)使用配置单元查询

只需在hive表中加载这些文件,然后使用create table table2作为select * from table 1创建第二个文件;如果文件的总大小小于分割大小,则无需任何其他设置即可正常工作。 如果文件大小较大,请设置以下属性并执行查询。 set mapreduce.reduce.tasks = 1; 设置hive.exec.reducers.max = 1;

2)使用mapreduce程序

在mapper类中,将键设置为1,将值设置为文本。这将确保所有数据都将转到单个reducer。然后在reducer类中,单独编写文本并省略密钥。