Java 为什么Hadoop无法在本地模式下找到此文件,即使它存在?

Java 为什么Hadoop无法在本地模式下找到此文件,即使它存在?,java,hadoop,mapreduce,hdfs,yarn,Java,Hadoop,Mapreduce,Hdfs,Yarn,当通过maven在本地模式下运行Hadoop时,我遇到了这个错误 15/03/24 12:45:24 INFO mapred.MapTask: Map output collector class = org.apache.hadoop.mapred.MapTask$MapOutputBuffer 15/03/24 12:45:24 INFO mapred.MapTask: (EQUATOR) 0 kvi 26214396(104857584) 15/03/24 12:45:24 INFO m

当通过maven在本地模式下运行Hadoop时,我遇到了这个错误

15/03/24 12:45:24 INFO mapred.MapTask: Map output collector class = org.apache.hadoop.mapred.MapTask$MapOutputBuffer

15/03/24 12:45:24 INFO mapred.MapTask: (EQUATOR) 0 kvi 26214396(104857584)
15/03/24 12:45:24 INFO mapred.MapTask: mapreduce.task.io.sort.mb: 100
15/03/24 12:45:24 INFO mapred.MapTask: soft limit at 83886080
15/03/24 12:45:24 INFO mapred.MapTask: bufstart = 0; bufvoid = 104857600
15/03/24 12:45:24 INFO mapred.MapTask: kvstart = 26214396; length = 6553600
15/03/24 12:45:25 INFO mapreduce.Job: Job job_local977124269_0001 running in uber mode : false
15/03/24 12:45:25 INFO mapreduce.Job:  map 0% reduce 0%
15/03/24 12:45:26 INFO mapred.MapTask: Starting flush of map output
15/03/24 12:45:26 INFO mapred.LocalJobRunner: Map task executor complete.
15/03/24 12:45:26 WARN mapred.LocalJobRunner: job_local977124269_0001
java.lang.Exception: java.io.FileNotFoundException: file:<home_dir>/src/test/data/doc/<file> (No such file or directory)
    at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:403)
Caused by: java.io.FileNotFoundException: file:<home_dir>/src/test/data/doc/<file> (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:146)
    at package.DocumentRecordReader.parseDocument(DocumentRecordReader.java:186)
    at package.DocumentRecordReader.nextKeyValue(DocumentRecordReader.java:130)
    at org.apache.hadoop.mapreduce.lib.input.CombineFileRecordReader.nextKeyValue(CombineFileRecordReader.java:69)
    at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:532)
    at org.apache.hadoop.mapreduce.task.MapContextImpl.nextKeyValue(MapContextImpl.java:80)
    at org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.nextKeyValue(WrappedMapper.java:91)
    at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:763)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:339)
    at org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:235)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
15/03/24 12:45:26 INFO mapreduce.Job: Job job_local977124269_0001 failed with state FAILED due to: NA
15/03/24 12:45:26 INFO mapreduce.Job: Counters: 0
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Command execution failed.
15/03/24 12:45:24 INFO mapred.MapTask:Map output collector class=org.apache.hadoop.mapred.MapTask$MapOutputBuffer
15/03/24 12:45:24 INFO mapred.MapTask:(赤道)0千伏26214396(104857584)
15/03/24 12:45:24信息mapred.MapTask:mapreduce.task.io.sort.mb:100
15/03/24 12:45:24 INFO mapred.MapTask:软限制83886080
15/03/24 12:45:24 INFO mapred.MapTask:bufstart=0;bufvoid=104857600
15/03/24 12:45:24 INFO mapred.MapTask:kvstart=26214396;长度=6553600
15/03/24 12:45:25信息mapreduce.作业:作业本地977124269\u 0001在uber模式下运行:false
15/03/24 12:45:25信息mapreduce。作业:映射0%减少0%
15/03/24 12:45:26信息映射。映射任务:开始刷新映射输出
15/03/24 12:45:26信息映射。LocalJobRunner:映射任务执行器已完成。
15/03/24 12:45:26警告映射。本地JobRunner:job_local977124269_0001
java.lang.Exception:java.io.FileNotFoundException:file:/src/test/data/doc/(没有这样的文件或目录)
位于org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:403)
原因:java.io.FileNotFoundException:file:/src/test/data/doc/(无此类文件或目录)
在java.io.FileInputStream.open(本机方法)
位于java.io.FileInputStream。(FileInputStream.java:146)
位于package.DocumentRecordReader.parseDocument(DocumentRecordReader.java:186)
位于package.DocumentRecordReader.nextKeyValue(DocumentRecordReader.java:130)
位于org.apache.hadoop.mapreduce.lib.input.CombineFileRecordReader.nextKeyValue(CombineFileRecordReader.java:69)
位于org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:532)
位于org.apache.hadoop.mapreduce.task.MapContextImpl.nextKeyValue(MapContextImpl.java:80)
位于org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.nextKeyValue(WrappedMapper.java:91)
位于org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
位于org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:763)
位于org.apache.hadoop.mapred.MapTask.run(MapTask.java:339)
位于org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:235)
位于java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
在java.util.concurrent.FutureTask.run(FutureTask.java:262)处
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
运行(Thread.java:745)
15/03/24 12:45:26信息mapreduce.Job:Job Job_local977124269_0001失败,状态失败,原因是:NA
15/03/24 12:45:26信息mapreduce。作业:计数器:0
[信息]------------------------------------------------------------------------
[错误]生成错误
[信息]------------------------------------------------------------------------
[INFO]命令执行失败。
正如您所见,maven验证目标失败,因为Hadoop无法在src/test/data/doc目录中找到该文件。我可以手动查看路径是否正确,文件是否确实存在


有人能告诉我到底是什么问题吗?

我想file:home\u dir没有设置在您的环境变量中。

您能详细说明一下吗?我需要设置的确切变量是什么?您正在Windows或linux上运行。请访问下面的Windows()和linux()链接,我正在linux上运行它,并且设置了所有环境变量。请尝试使用绝对路径并检查。