基于Eclipse的Hadoop环境搭建指南

一、下载并配置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,保存即可解决问题。



你可能感兴趣的:(eclipse)