hadoop学习参考1. Eclipse使用插件运行hadoop(解决错误)

  看了hadoop个把月了,每次都在cygwin(windows)上打命令运行,很不方便,有eclipse插件一直也没用起来(报N多错误)
今天终于把hadoop在Eclipse上运行起来了
1,cygwin及hadoop安装目录
Hadoop学习-7 Eclipse运行hadoop(解决错误) - 来生缘 - 学无止境
 
2,Eclipse版本
3.2 没安装上去,是从myeclipse6.5里面抽取出来的,可能没设置好
3.3 可以安装,右键可以运行
3.4/3.5/3.6 可以安装,右键运行没反应
将C:\cygwin\home\Administrator\hadoop-0.20.2\contrib\eclipse-plugin\hadoop-0.20.2-eclipse-plugin.jar放到eclipse\plugins下,重启eclipse

3,使用插件
3.1,新建Map/Reduce Project

3.2,配置Map/Reduce Locations
Hadoop学习-7 Eclipse运行hadoop(解决错误) - 来生缘 - 学无止境
Use M/R Master host一定要选上
切换到Advanced parameters选项卡:
Hadoop学习-7 Eclipse运行hadoop(解决错误) - 来生缘 - 学无止境
设置 mapred.child.tmp 为一个绝对路径,默认为./tmp
为解决这个错误:
java.io.FileNotFoundException: File C:/tmp/hadoop-SYSTEM/mapred/local/taskTracker/jobcache/job_201007171612_0006/attempt_201007171612_0006_m_000001_0/work/tmp does not exist.
at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:361)
at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:245)
at org.apache.hadoop.mapred.TaskRunner.setupWorkDir(TaskRunner.java:519)
at org.apache.hadoop.mapred.Child.main(Child.java:155)

Map/Reduce Locations配置完毕,如有其它参数想修改,请在这里进行修改
在C:\cygwin\home\Administrator\hadoop-0.20.2\conf里面去改相关配置文件,只是对在cygwin中使用命令行运行有效,在Eclipse中运行的参数是以这里的Advanced parameters为准(也可以在测试代码里面去手工设置进行覆盖)
Configuration config = new Configuration();
config.set("mapred.child.tmp", "C:/temp");

前面碰到找不到文件错误,网上查下说需要修改mapred.child.tmp,我去C:\cygwin\home\Administrator\hadoop-0.20.2\conf\mapred-site.xml中修改后,cygwin运行正常,但是eclipse中运行还是不停报错,最后发现其实在eclipse中每运行一次(也就是一个job),在C:\cygwin\home\Administrator\hadoop-0.20.2\logs中就会产生一个job运行时参数配置的信息的xml文件,如:job_201007171612_0006_conf.xml,里面是当前job运行时的全部参数值,共计202个,经过检查文件,发现在C:\cygwin\home\Administrator\hadoop-0.20.2\conf\mapred-site.xml中修改的参数值没过来,也就是说其设置对当前eclipse中运行是无效的。

3.3,运行
在写好的测试类上右键 ->Run as -> Run on hadoop
Hadoop学习-7 Eclipse运行hadoop(解决错误) - 来生缘 - 学无止境

3.4,运行出错:
2010-07-17 16:56:14,968 WARN org.apache.hadoop.mapred.TaskTracker: Error running child
org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: Permission denied: user=DrWho, access=WRITE, inode="Administrator":Administrator:supergroup:rwxr-xr-x

从当前错误信息可知,当前的用户是DrWho,同样检查C:\cygwin\home\Administrator\hadoop-0.20.2\logs中生成的job配置信息(如:job_201007171612_0006_conf.xml
),可看到以下设置:
<property>
<name>user.name</name>
<value>DrWho</value>
</property>
<property>
<name>hadoop.job.ugi</name>
<value>DrWho,Tardis</value>
</property>
解决办法:http://forum.hadoop.tw/viewtopic.php?f=4&t=13&view=previous
$ bin/hadoop dfs -chmod 777 /user/Administrator

3.5,运行设置参数
菜单;Run -> Open Run Dialog... 
或者:右键 -> Run as -> Open Run Dialog...
Hadoop学习-7 Eclipse运行hadoop(解决错误) - 来生缘 - 学无止境
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值