具有MultipleOutputs

时间:2015-04-27 17:07:23

标签: java hadoop mapreduce

我在Ubuntu 14.04上使用Hadoop 2.5.1

现在我正在尝试使用MultipleOutputs类。作业可以在8行输入等小数据上正常运行。但是当我尝试运行1000多行的数据时(不是那个叫做big但大于8的数据),任务失败并抛出异常说

org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.fs.FileAlreadyExistsException): /out/_temporary/1/_temporary/attempt_1430139159731_0055_m_000000_0/MYFOLDERNAME-m-00000 for client MY_MASTER/SLAVE_IP already exists

我正在运行2个节点的完全分布式模式。

我还在运行那些没有现有文件的作业之前仔细检查hdfs。

请提出任何建议。

1 个答案:

答案 0 :(得分:0)

我相信你正在初始化reduce方法中的MultipleOutputs。使用小输入reduce方法只调用一次,因此您不会遇到此问题。当使用不同的键在同一任务中多次调用reduce方法时,多次输出会被多次初始化,从而产生错误。

尝试在configure()方法中初始化MultipleOutput。

还尝试注释掉组合器类。