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

lg40wkob  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(389)

我有n个文件,我必须合并这些文件(仅使用map reduce代码)例如,我采取了2个样本文件。
文件1.txt
打开的文件是文件1.txt这是文件1.txt中的数据
.
文件2.txt
打开的文件是文件2.txt这是文件2.txt中的数据
我需要合并这两个文件和预期的输出是一部分0001文件的减速器预期是两者的结合
打开的文件是文件1.txt这是文件1.txt中的数据
打开的文件是文件2.txt这是文件2.txt中的数据
我知道使用hadoop-getmerge很容易实现,但我需要一个简单的mapreduce工作。
有人能帮我解释一下Map器和reducer必须遵循的逻辑吗(Map器和reducer中必须设置的键和值是什么)??

snz8szmq

snz8szmq1#

你可以用多种方法来做。
1) 使用配置单元查询
只需将这些文件加载到配置单元表中,并使用create table table2作为select*from table 1创建第二个文件;如果文件的总大小小于拆分大小,则无需任何其他设置,这将很好地工作。如果文件大小较大,请设置以下属性并执行查询。设置mapreduce.reduce.tasks=1;设置hive.exec.reducers.max=1;
2) 使用mapreduce程序
在mapper类中,将键设置为1,将值设置为文本。这将确保所有数据都将进入一个reducer。然后在reducer类中,单独编写文本并省略键。

相关问题