我使用multipleoutputs将数据输出到一些绝对路径,而不是相对于outputpath的路径。
然后,我得到一个错误:
错误:org.apache.hadoop.ipc.remoteexception(org.apache.hadoop.hdfs.protocol.alreadybeingcreatedexception):无法为客户端[192.168.7.146]上的[dfsclient\u attempt\u 142561162620\u 29142\u m\u 000035\u 1001\u-370311306\u 1]创建文件[/test/convert.bak/326/201505110030/326-m-00035],因为此文件已由[192.168.7.149]上的[dfsclient\u attempt\u 142561162620\u 29142\u m\u 000035\u 1000\u-53988495\u 1]创建,位于org.apache.hadoop.hdfs.server.namenode.fsnamesystem.recoverleaseinternal(fsnamesystem)。java:2320)位于org.apache.hadoop.hdfs.server.namenode.fsnamesystem.startfileinternal(fsnamesystem)。java:2083)在org.apache.hadoop.hdfs.server.namenode.fsnamesystem.startfileint(fsnamesystem)。java:2012)位于org.apache.hadoop.hdfs.server.namenode.fsnamesystem.startfile(fsnamesystem)。java:1963)在
3条答案
按热度按时间b5lpy0ml1#
https://issues.apache.org/jira/browse/mapreduce-6357
输出文件必须在${mapred.output.dir}中
设计和实现不支持将数据输出到${mapred.output.dir}之外的文件。
v64noz0r2#
因为它清楚地表明,你试图创造的道路已经存在。因此,在创建该路径之前,请尝试检查该路径是否存在。如果存在,请删除该路径。
30byixjq3#
通过查看堆栈跟踪错误,似乎已经创建了输出文件。
如果您想将数据写入多个文件,那么请尝试动态生成这些文件名并使用这些文件名,如hadoop指南中的代码所示
我希望这会有帮助。