我正在实施 Hadoop mapreduce。我对 map 的输入是一个表格,如下所示:
客户ID、IP、属性、日期
客户 1、IP1、属性 1、日期 1
客户2,IP2,属性1,日期2
映射器的输出应该是多个文件
文件 1:IP-m-00000
核心价值
客户1_IP1,日期1
客户2_IP2,日期2
文件 2:Attr-m-00000
核心价值
客户1_attr1,日期1
客户 2_attr1 ,日期 2
我已经安装了 hadoop 2.2.0,我正在使用以下代码
MultipleOutputs.addMultiNamedOutput (job, "IP", TextOutputFormat.class, Text.class, Text.class); // in the Driver.class
MultipleOutputs.getCollector("IP", context).collect(txtKey, txtValue); // in the Mapper.class
我的 txtKey 是 customerid_$Attribute,txtValue 是日期。
我在另一台个人机器上安装了 2.8.0,MultipleOutputs 对象具有非常容易实现的写入功能。hadoop-2.8.0 中的 MultipleOutputs.write() 在 hadoop-2.2.0 中没有实现。
关于如何在我们没有 MultipleOutputs.write() 功能的 hadoop-2.2.0 中编写 multipleOutput 文件的任何想法?
如果这个问题需要任何修改,请您评论而不是关闭问题!
谢谢,大师