Hadoop:java.io.IOException:属性mapred.local.dir中没有有效的本地目录

Hadoop:java.io.IOException:属性mapred.local.dir中没有有效的本地目录,hadoop,mapreduce,Hadoop,Mapreduce,当我运行hadoop作业时,它会失败,原因如下: 11/10/06 13:12:49 INFO mapred.FileInputFormat: Total input paths to process : 1 11/10/06 13:12:49 INFO mapred.JobClient: Cleaning up the staging area hdfs://localhost:54310/app/hadoop/tmp/mapred/staging/Har/.staging/job_20111

当我运行hadoop作业时,它会失败,原因如下:

11/10/06 13:12:49 INFO mapred.FileInputFormat: Total input paths to process : 1
11/10/06 13:12:49 INFO mapred.JobClient: Cleaning up the staging area hdfs://localhost:54310/app/hadoop/tmp/mapred/staging/Har/.staging/job_201110051450_0007
11/10/06 13:12:49 ERROR streaming.StreamJob: Error Launching job : java.io.IOException: java.io.IOException: No valid local directories in property: mapred.local.dir
    at org.apache.hadoop.mapred.JobTracker.submitJob(JobTracker.java:3923)
    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.ipc.RPC$Server.call(RPC.java:523)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1383)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1379)
    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:1059)
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1377)
Caused by: java.io.IOException: No valid local directories in property: mapred.local.dir
    at org.apache.hadoop.conf.Configuration.getLocalPath(Configuration.java:948)
    at org.apache.hadoop.mapred.JobConf.getLocalPath(JobConf.java:457)
    at org.apache.hadoop.mapred.JobInProgress.<init>(JobInProgress.java:401)
    at org.apache.hadoop.mapred.JobTracker.submitJob(JobTracker.java:3921)
    ... 11 more

Streaming Job Failed!
11/10/06 13:12:49信息映射。文件输入格式:进程的总输入路径:1
11/10/06 13:12:49信息映射。作业客户端:清理临时区域hdfs://localhost:54310/app/hadoop/tmp/mapred/staging/Har/.staging/job_201110051450_0007
11/10/06 13:12:49错误streaming.StreamJob:启动作业时出错:java.io.IOException:java.io.IOException:属性:mapred.local.dir中没有有效的本地目录
位于org.apache.hadoop.mapred.JobTracker.submitJob(JobTracker.java:3923)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中
位于java.lang.reflect.Method.invoke(Method.java:597)
位于org.apache.hadoop.ipc.RPC$Server.call(RPC.java:523)
位于org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1383)
位于org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1379)
位于java.security.AccessController.doPrivileged(本机方法)
位于javax.security.auth.Subject.doAs(Subject.java:396)
位于org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059)
位于org.apache.hadoop.ipc.Server$Handler.run(Server.java:1377)
原因:java.io.IOException:属性:mapred.local.dir中没有有效的本地目录
位于org.apache.hadoop.conf.Configuration.getLocalPath(Configuration.java:948)
位于org.apache.hadoop.mapred.JobConf.getLocalPath(JobConf.java:457)
在org.apache.hadoop.mapred.JobInProgress.(JobInProgress.java:401)
位于org.apache.hadoop.mapred.JobTracker.submitJob(JobTracker.java:3921)
... 还有11个
流作业失败!
我如何解决这个问题


谢谢

需要正确配置mapred.local.dir。检查是否在mapred站点或hdfs站点中配置。目录应该存在。执行作业的用户应该对此目录有适当的权限

查看
mapred site.xml
并检查
mapred.local.dir
属性。那里有以逗号分隔的目录列表吗?如果是这样,您对这些目录有读写权限吗?在我后面的文档中,它从不要求设置此值,但我会尝试您不需要,默认值为${hadoop.tmp.dir}/mapred/local