在Windows-7 64位上运行hadoop

时间:2013-06-30 09:11:49

标签: java windows hadoop cygwin

我在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,如该页面所述。如何设置此变量以及运行程序的其他配置是什么。

2 个答案:

答案 0 :(得分:2)

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

INSTALLATION_DIR\cygwin64\bin

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

答案 1 :(得分:0)

可以请您尝试使用波纹管

修复依赖项错误解决方案是将cygwin安装在Windows系统中,或者安装它的子集,因为仅需要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目录的路径名< / p>