2015-08-27 25 views
2

我在Windows上安装了Hadoop 2.6,作为一些依赖于Hadoop的软件的测试平台。据我所知,安装正常工作。我将Hadoop保存在C:\Hadoop和我的临时文件夹C:\hadooptemp中。我跟着这个教程得到它成立: https://drive.google.com/file/d/0BweVwq32koypYm1QWHNvRTZWTm8/viewWindows上的Hadoop 2.6 Mapreduce权限设置不正确

当我运行类Hadoop MapReduce的例子-2.6.0.jar圆周率,在本教程提供的,我得到下面的输出:

Number of Maps = 2 
Samples per Map = 5 
Wrote input for Map #0 
Wrote input for Map #1 
Starting Job 
15/08/27 15:55:10 INFO client.RMProxy: Connecting to ResourceManager at /155.41.90.116:8032 
15/08/27 15:55:12 INFO input.FileInputFormat: Total input paths to process : 2 
15/08/27 15:55:12 INFO mapreduce.JobSubmitter: number of splits:2 
15/08/27 15:55:13 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1440705227041_0001 
15/08/27 15:55:14 INFO impl.YarnClientImpl: Submitted application application_1440705227041_0001 
15/08/27 15:55:14 INFO mapreduce.Job: The url to track the job: http://mycomp:8088/proxy/application_1440705227041_0001/ 
15/08/27 15:55:14 INFO mapreduce.Job: Running job: job_1440705227041_0001 
15/08/27 15:55:35 INFO mapreduce.Job: Job job_1440705227041_0001 running in uber mode : false 
15/08/27 15:55:35 INFO mapreduce.Job: map 0% reduce 0% 
15/08/27 15:55:35 INFO mapreduce.Job: Job job_1440705227041_0001 failed with state FAILED due to: Application application_1440705227041_0001 failed 2 times due to AM Container for appattempt_1440705227041_0001_000002 exited with exitCode: -1000 
For more detailed output, check application tracking page:http://mycomp:8088/proxy/application_1440705227041_0001/Then, click on links to logs of each attempt. 

诊断:无法设置本地dir/hadooptemp/nm-local-dir,该标记为good。

Failing this attempt. Failing the application. 
15/08/27 15:55:35 INFO mapreduce.Job: Counters: 0 
Job Finished in 25.444 seconds 
java.io.FileNotFoundException: File does not exist: hdfs://155.41.90.116:8020/user/me/QuasiMonteCarlo_1440705304456_1878814183/out/reduce-out 
     at org.apache.hadoop.hdfs.DistributedFileSystem$18.doCall(DistributedFileSystem.java:1122) 
     at org.apache.hadoop.hdfs.DistributedFileSystem$18.doCall(DistributedFileSystem.java:1114) 
     at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81) 
     at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1130) 
     at org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1751) 
     at org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1774) 
     at org.apache.hadoop.examples.QuasiMonteCarlo.estimatePi(QuasiMonteCarlo.java:314) 
     at org.apache.hadoop.examples.QuasiMonteCarlo.run(QuasiMonteCarlo.java:354) 
     at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 
     at org.apache.hadoop.examples.QuasiMonteCarlo.main(QuasiMonteCarlo.java:363) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:71) 
     at org.apache.hadoop.util.ProgramDriver.run(ProgramDriver.java:144) 
     at org.apache.hadoop.examples.ExampleDriver.main(ExampleDriver.java:74) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at org.apache.hadoop.util.RunJar.run(RunJar.java:221) 
     at org.apache.hadoop.util.RunJar.main(RunJar.java:136) 

从我已经与退出码追踪:-1000,要归结到Hadoop的不能够建立本地目录具有相应的权限。我相信我上面使用的教程,这就是为什么他们禁用用户帐户控制。不管我是否这样做,我都会得到同样的错误。

我也发现了类似的问题,在这个环节上: Mapreduce error: Failed to setup local dir

我想他们说可循的,使双方C:\HadoopC:\hadooptemp通过文件夹属性,安全由我的用户帐户拥有和高级设置。我之前被列为所有者,并且根据这一点,我可以完全控制对该文件夹的访问权限。要么这不是问题,要么我错误地将所有权分配给我的帐户。

最后,在我的YARN节点管理器,我收到以下错误,似乎有一定的相关这几个地方弹出:

15/08/27 15:55:34 WARN localizer.ResourceLocalizationService: Permissions incorrectly set for dir /hadooptemp/nm-local-dir/usercache, should be rwxr-xr-x, actual value = rwxrwxr-x 

看来,我有太多的权限,因为它规定他们是不正确的设置?我无法想象这是问题的原因,我的团队也有写权限,但我无法弄清楚如何在Windows中进行修改。

任何帮助搞清楚权限问题的细节来解决这个错误,将不胜感激。

+1

只是出于好奇,是你在办公室外使用的工作电脑(配有一张域)?我最近遇到了这个问题,尽可能在Windows中的相关文件夹上授予'Everyone'完全控制权限,但仍然出现错误。最后VPN到我的域名和BOOM中,没有问题。 –

+0

@JohnChrysostom谢谢你,我从来没有想过试试这个,它立即解决了我的问题。任何想法是什么导致了这种情况,或者人们如何解决事情,以便登录到VPN不是必需的? – Kittoes0124

回答

3

在我的情况是由于Windows域无法访问。连接你的电脑到Windows域。 这里我纱配置

<configuration> 

<!-- Site specific YARN configuration properties --> 
    <property> 
     <name>yarn.resourcemanager.hostname</name> 
     <value>0.0.0.0</value> 
    </property> 
<property> 
     <name>yarn.nodemanager.local-dirs</name> 
     <value>c:\my\hadoop-2.7.1\tmp-nm</value> 
</property> 

    <property> 
     <name>yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage</name> 
     <value>98.5</value> 
    </property> 
</configuration> 

也看到https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/SecureContainer.html