运行hadoop报错

一:找不到内部类的问题
java.lang.ClassNotFoundException:com.test.WordCount$TokenizerMapperat                       org.apache.hadoop.conf.Configuration.getClass(Configuration.java:809)
at org.apache.hadoop.mapreduce.JobContext.getMapperClass(JobContext.java:157)

 

eclipse连接hadoop运行wordcount出现的错误

如果你在 conf.set("mapred.job.tracker","000.000.000.000:9001");   的话就会产生内部类的问题,如果你有解决的方案请告诉我。我也没有解决。 谢谢

这里改成 conf.set("fs.default.name","hdfs://000.000.000.000"9000"); 就不会产生错误内部类的问题了。。。  eclipse连接hadoop运行wordcount出现的错误

 

二:错误现象: WARN mapred.LocalJobRunner: job_local_0001
                java.lang.OutOfMemoryError: Java heap space
                at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.(MapTask.java:781)
                at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:350)
                 ………..

  原因:客户端程序运行时java虚拟机内存分配不够

  解决办法:修改run configuration,选择Arguments选项卡,在VM arguments栏中加入-Xmx1024m,保存即可解决问题。

  eclipse连接hadoop运行wordcount出现的错误 

三: 错误现象org.apache.hadoop.security.AccessControlException: Permission denied: user=administrator, access=EXECUTE, inode="job_201111031322_0003":heipark:supergroup:rwx-.

   原因:本地用户administrator(本机windows用户)想要远程操作hadoop系统,没有权限引起的。

   解决办法:

   i如果是测试环境,可以取消hadoop hdfs的用户权限检查。打开conf/hdfs-site.xml,找到  dfs.permissions属性修改为false(默认为trueOK了。

   ii、修改hadoop location参数,在advanced parameter选项卡中,找到hadoop.job.ugi项,将此项改为启动hadoop的用户名即可。

 

四:运行期间出现这个错误

 

eclipse连接hadoop运行wordcount出现的错误


错误信息很明显了,at org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:682) 这一行的方法报错了

 

网上查到这是由于0.20.203.0以后的版本的权限认证引起的,只有去掉才行

修改hadoop源代码,去除权限认证,修改FileUtil.java的checkReturnValue方法

 

(具体做法:在hadoop中找到源码 hadoop/src/core/fs 文件夹导入eclipse 工程下。找到 FileUtil.java类,找到 checkReturnValue方法 屏蔽掉有关于这个方法和这个方法的所有调用)保存即可。

eclipse连接hadoop运行wordcount出现的错误

排除以上所有错误,运行终于成功!  eclipse连接hadoop运行wordcount出现的错误eclipse连接hadoop运行wordcount出现的错误eclipse连接hadoop运行wordcount出现的错误eclipse连接hadoop运行wordcount出现的错误eclipse连接hadoop运行wordcount出现的错误eclipse连接hadoop运行wordcount出现的错误

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值