如何使用适当的凭据在Cygwin上运行Hadoop以启用设置文件权限等?

时间:2012-03-13 17:05:57

标签: hadoop cygwin

我在Cygwin中运行Hadoop时无法更改文件的权限:

java.io.IOException: Failed to set permissions of path: \tmp\hadoop-James\mapred\staging\James-1143336710\.staging to 0700

从我收集的内容来看,你无法真正以root身份运行Cygwin,因为Windows实际上并没有root(reference)的概念,我试图以管理员用户身份运行Cygwin但是当我右键单击Windows XP中的Cygwin快捷方式时,我无法使用此选项(我还尝试更改Cygwin快捷方式的属性以允许我以另一个用户身份运行但该选项已禁用)。

有人可以告诉我如何解决这个问题吗?在此先感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

以下是针对此特定问题的简单易用的解决方法:

https://github.com/congainc/patch-hadoop_7682-1.0.x-win

此问题与文件权限本身无关。相反,它是Java VM支持在Windows上设置文件权限的问题,以及Hadoop提交者之间的不妥协态度,不能解决问题。有关血淋淋的细节,请参阅HADOOP-7682:

https://issues.apache.org/jira/browse/HADOOP-7682

答案 1 :(得分:0)

运行ssh-host-config。它将设置prvileged用户“cyg_server”并设置sshd 作为一个Windows服务。

“/ etc / passwd”中的

为用户提供了一个“/ home / cyg_server”和shell“/ bin / bash”。 为用户创建密码。然后创建ssh密钥并将其添加到 的〜/ .ssh / authorized_keys中。

启动Windows服务。在cygwin shell中,“ssh cyg_server @ localhost”。

---编辑---

忘了提及:当你为cyg_server用户创建密码时,你需要一个root cygwin shell(以管理员身份运行cygwin bash)。还为用户提供了一个有效的shell(/ bin / bash)。