一、下载并配置Cygwin
1、新建系统变量【CYGWIN】,变量值为【ntsc tty】
2、编辑系统变量【Path】,加入【c:\cygwin\bin】
二、安装java
配置 JAVA_HOME;
三、配置eclipse
1、把hadoop安装包下的 contrib/ 目录下的插件 hadoop-*-eclipse-plugin.jar 放到eclipse目录的 plugins 目录下;
2、其他配置过程参考网络其他文档;
3、进行运行时配置,选择Run As—>Open Debug Dialog选项,在Arguments选项卡中设置:【D:\workspace\hadoop-test\in D:\workspace\hadoop-test\out】,在其中填写两个目录,分别为数据输入目录和输出目录,中间用空格分隔;
四、可能遇到的问题
1、如果遇到这个错误:org.apache.hadoop.security.AccessControlException: Permission denied: user=administrator, access=EXECUTE, inode="job_201111031322_0003":heipark:supergroup:rwx-
问题原因:本地用户administrator(本机windows用户)想要远程操作hadoop系统,没有权限引起的。
解决办法:
a、如果是测试环境,可以取消hadoop hdfs的用户权限检查。打开conf/hdfs-site.xml,找到dfs.permissions属性修改为false(默认为true)OK了。
b、修改hadoop location参数,在advanced parameter选项卡中,找到hadoop.job.ugi项,将此项改为启动hadoop的用户名即可。
注意第一次设置的时候可能没有hadoop.job.ugi参数,报错后在去看就有了。
2、运行例子时出现:IOException: Cannot run program "chmod": CreateProcess error=2,
问题原因:没有安装cygwin 或 没有配置环境变量;
解决办法:安装并配置环境变量 bin到 path下 重启 eclipse 问题解决;
3、如果出现下面问题
11/11/03 12:21:31 WARN mapred.LocalJobRunner: job_local_0001
java.lang.OutOfMemoryError: Java heap space
at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.<init>(MapTask.java:781)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:350)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:307)
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:177)
11/11/03 12:21:31 INFO mapred.JobClient: map 0% reduce 0%
11/11/03 12:21:31 INFO mapred.JobClient: Jobcomplete: job_local_0001
11/11/03 12:21:31 INFO mapred.JobClient: Counters: 0
Exception in thread "main" java.io.IOException: Job failed!
at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1252)
at mapred.WordCount.main(WordCount.java:110)
问题原因:客户端程序运行时java虚拟机内存分配不够
解决办法:修改run configuration,选择Arguments选项卡,在VM arguments栏中加入-Xmx1024m,保存即可解决问题。