Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cygwin中运行simple map reduce hadoop示例时出现的问题_Hadoop_Cygwin - Fatal编程技术网

cygwin中运行simple map reduce hadoop示例时出现的问题

cygwin中运行simple map reduce hadoop示例时出现的问题,hadoop,cygwin,Hadoop,Cygwin,我只是想让Hadoop在我的笔记本电脑上以独立模式运行64位Windows7。我已将Cygwin 1.7安装在默认文件夹(c:\Cygwin)中。我在文件夹c:\jdk1.7.0\u 03中有最新的JDK,并设置了JAVA\u HOME环境变量 当我尝试从cygwin提示符运行以下命令时: $ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+' 下面是我得到的错误: 12/03/17 19:08:43 WARN

我只是想让Hadoop在我的笔记本电脑上以独立模式运行64位Windows7。我已将Cygwin 1.7安装在默认文件夹(c:\Cygwin)中。我在文件夹c:\jdk1.7.0\u 03中有最新的JDK,并设置了JAVA\u HOME环境变量

当我尝试从cygwin提示符运行以下命令时:

$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'
下面是我得到的错误:

12/03/17 19:08:43 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
java.io.IOException: Failed to set permissions of path: \tmp\hadoop-ehtzrhf\mapred\staging\ehtzrhf837602798\.staging to 0700
        at org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:682)
        at org.apache.hadoop.fs.FileUtil.setPermission(FileUtil.java:655)
        at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:484)
        at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:319)
        at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:189)
        at org.apache.hadoop.mapreduce.JobSubmissionFiles.getStagingDir(JobSubmissionFiles.java:116)
        at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:848)
        at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:842)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059)
        at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:842)
        at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:816)
        at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1253)
        at org.apache.hadoop.examples.Grep.run(Grep.java:69)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
        at org.apache.hadoop.examples.Grep.main(Grep.java:93)
        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:601)
        at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68)
        at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:139)
        at org.apache.hadoop.examples.ExampleDriver.main(ExampleDriver.java:64)
        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:601)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
我尝试过Hadoop 1.0.1和Hadoop-0.20.205.0,但都遇到了同样的问题。我已使用更新了我的.bashrc

export TMP=/cygdrive/c/temp
export TEMP=/cygdrive/c/temp
我还将cygwin bin文件夹添加到路径:

export PATH=.:/cygdrive/c/cygwin/bin:$HADOOP_INSTALL/bin
我还发现它非常奇怪,它将路径显示为\tmp。。。而不是/tmp/

除了重新编译或运行Linux虚拟机,还有什么想法吗?

修复了(主要是牦牛剃须)


我已经成功地使这项工作达到了分派作业、执行任务和编译结果的程度

  • [
然而,我们仍然需要让servlet理解cygwin符号链接。我不知道如何在Jetty中做到这一点

这两个链接展示了如何允许Tomcat和jetty遵循符号链接,但我不知道这在cygwin中是否有效。 * *


否则,我们将不得不打开jetty代码并用org.apache.hadoop.fs.LinkedFile替换java.io.File。

这里有一个简单易用的解决方法,不需要任何牦牛剃须:


顺便说一句,使用与上述相同的设置,但使用hadoop 0.20.2,我没有遇到这种情况。是的,我昨天也遇到了这种情况。如果有人对此进行了修复,我会很高兴的。+1是的,谢谢你也将其发布到jira。我通过构建一个自定义版本的1.0.0,其中不检查文件方法的返回值。这种情况发生在
FileUtil.setPermission
,刚刚删除了带有
checkReturnValue
Dave Latham已修补setPermission()的所有行。