Windows 中的 Hadoop

标签 hadoop cygwin

我正在尝试通过 Cygwin 在 Windows 中运行 Hadoop 的示例字数统计程序。我已经安装了 Hadoop 和 Cygwin。

我使用以下语句运行字数统计程序:

$ bin/hadoop jar hadoop-examples-1.0.1.jar wordcount input output

我收到以下错误:

12/05/08 23:05:35 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
12/05/08 23:05:35 ERROR security.UserGroupInformation: PriviledgedActionException as:suresh cause:java.io.IOException: Failed to set permissions of path: \tmp\hadoop-suresh\mapred\staging\suresh1005684431\.staging to 0700
java.io.IOException: Failed to set permissions of path: \tmp\hadoop-suresh\mapred\staging\suresh1005684431\.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:509)
        at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:344)
        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:856)
        at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:850)
        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:1093)
        at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:850)
        at org.apache.hadoop.mapreduce.Job.submit(Job.java:500)
        at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:530)
        at org.apache.hadoop.examples.WordCount.main(WordCount.java:67)
        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)

我已经在路径变量中设置了 Cygwin bin 路径。如有任何帮助,我们将不胜感激。

最佳答案

这是某些 Hadoop 版本的已知问题(有关完整讨论,请参阅 https://issues.apache.org/jira/browse/HADOOP-7682)。

我在 1.0.2 版本中遇到了这个问题,所以我尝试了各种其他版本。

最后我回到 0.22.0 版本才让它工作

如果您返回到版本 0.22.0,您将需要对 bin/hadoop-config.sh 脚本进行一些更改:

  1. 更改设置 HADOOP_MAPRED_HOME 的行以指向 mapreduce 目录,而不是 mapred 目录。
  2. 注释掉为 native hadoop 安装设置 java.library.path 的所有代码。

关于Windows 中的 Hadoop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10509427/

相关文章:

scala - 使用 Scala 将文件从本地移动到 HDFS 时出错

java - 来自现有 RDD 的 Spark Streaming

java - 如何使用 Java 有效地读取 Hadoop (HDFS) 文件中的第一行?

emacs - 如何让 MinTTY(Cygwin 终端)在新窗口中打开 Emacs?

windows - 从 Cygwin bash 脚本执行 Windows 命令

bash - 尝试在 cygwin 中运行脚本时出错

unix - HDFS 和 NFS 之间的区别?

hadoop - 为什么hadoop集群运行在安全模式下?

c - 如何从静态库创建共享对象文件

git - Cygwin 和 Git : getting "fatal: error in line 1:"