1

我在 windows-7 64 位上运行 hadoop 并收到此错误:

Exception in thread "main" java.io.IOException: Cannot run program "chmod": CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
    at org.apache.hadoop.util.Shell.runCommand(Shell.java:149)
    at org.apache.hadoop.util.Shell.run(Shell.java:134)
    at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:286)
    at org.apache.hadoop.util.Shell.execCommand(Shell.java:354)
    at org.apache.hadoop.util.Shell.execCommand(Shell.java:337)
    at org.apache.hadoop.fs.RawLocalFileSystem.execCommand(RawLocalFileSystem.java:481)
    at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:473)
    at org.apache.hadoop.fs.FilterFileSystem.setPermission(FilterFileSystem.java:280)
    at org.apache.hadoop.fs.FileSystem.mkdirs(FileSystem.java:266)
    at org.apache.hadoop.mapred.JobClient.configureCommandLineOptions(JobClient.java:573)
    at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:761)
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:432)
    at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:447)
    at finanalytics.ClassifyMR$MapClass.main(ClassifyMR.java:172)
    Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(ProcessImpl.java:188)
    at java.lang.ProcessImpl.start(ProcessImpl.java:132)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1021)
    ... 14 more

这里给出了这个问题的解决方案http://javaprotlib.sourceforge.net/packages/io/howtofixhadoop.html。我安装了最新版本的 cygwin,但我不知道如何设置环境变量,因为我可以在该页面上提到的 cygwin 安装目录的任何位置找到 cygwin-chmod。如何设置此变量以及运行程序的其他配置是什么。

4

2 回答 2

3

将系统路径变量设置为 chmod.exe 的位置 如果您使用 Windows 安装程序安装了 cygwin64,那么您的 chmod.exe 应该存在于

INSTALLATION_DIR\cygwin64\bin

对我来说,我已经在我的 C 盘中安装了 cygwin,所以我的系统路径变量的值是;C:\cygwin64\bin

于 2014-04-25T09:37:24.167 回答
0

你能试试用波纹管吗

修复依赖错误 解决方案是在您的 Windows 系统中安装 cygwin 或安装它的子集,因为只需要 chmod 及其 dll。我们将在下面提供第二种选择的解决方案:

第一步:获取“chmod”资源 以下是不同 Windows 架构的档案:

Windows 32 位 - 包含 chmod.exe、cygwin1.dll、cygiconv-2.dll、cygintl-8.dll 和 cyggcc_s-1.dll Windows 64 位 - 尚不可用 第二步:在 Windows 中设置路径 不要忘记在 Windows 中为 chmod 设置 PATH 变量,否则找不到 chmod!

首先右键单击桌面上的“我的电脑”图标,然后单击“属性”。或者,您可以只按 Windows 键+暂停中断键然后在打开的新窗口中,单击高级选项卡单击系统变量中的环境变量,编辑或创建 PATH 变量并输入 cygwin-chmod 目录的路径名

于 2018-08-11T17:08:17.617 回答