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