gpt4 book ai didi

java - MapReduce代码清理登台区域错误

转载 作者:行者123 更新时间:2023-12-02 22:05:20 26 4
gpt4 key购买 nike

我是mapreduce的新手。我正在运行一个mapreduce程序。它可以正常编译,并且还创建了jar文件,没有任何错误,但是当我运行最终的Hadoop命令时,它显示以下错误并停止。

这是完整的日志:

    [u@h(IPC2-Gold) w]$ hadoop jar join.jar Runner -Dmapred.job.queue.name=score2 /axp/rim/score2/dev/cmc_score/rishabh/inp/file1.txt /axp/rim/score2/dev/cmc_score/rishabh/inp/file2.txt /axp/rim/score2/dev/cmc_score/rishabh/asd
14/06/19 21:28:44 INFO fs.JobTrackerWatcher: Current running JobTracker is: lgpbd1010.gso.aexp.com/10.22.45.20:9001
14/06/19 21:28:44 INFO mapred.JobClient: Cleaning up the staging area maprfs:/var/mapr/cluster/mapred/jobTracker/staging/rdwiv5/.staging/job_201405310436_72947
Exception in thread "main" org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory /axp/rim/score2/dev/cmc_score/rishabh/inp/file2.txt already exists
at org.apache.hadoop.mapreduce.lib.output.FileOutputFormat.checkOutputSpecs(FileOutputFormat.java:132)
at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:926)
at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:885)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1127)
at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:885)
at org.apache.hadoop.mapreduce.Job.submit(Job.java:536)
at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:566)
at Runner.run(Runner.java:55)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
at Runner.main(Runner.java:64)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.RunJar.main(RunJar.java:197)

最佳答案

我看到您有三个参数(两个输入文件和一个输出目录)。我认为正在发生的事情是该程序只期望两个,一个用于输入,一个用于输出。如果要将目录中的所有文件作为输入,只需使用目录作为输入,例如

/axp/rim/score2/dev/cmc_score/rishabh/inp

Hadoop将从该目录中获取所有文件。当前可能正在发生的事情是hadoop将第二个参数(这是同一目录中的另一个文件)作为输出目录,这就是为什么您会得到异常的原因

注意:检查目录,看看是否有
/axp/rim/score2/dev/cmc_score/rishabh/inp/file1.txt

目录存在。您可能意外地运行了一个以路径为输出的程序,并且还创建了 file1.txt目录(不是文件)。然后,当您再次尝试使用相同的参数时,由于目录已存在,可能会出现此异常,原因可能与上述原因相同(程序需要两个args)

关于java - MapReduce代码清理登台区域错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24320115/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com