公司的hadoop集群用cloudear配置的,只有三台有外网ip,,其他都是内网ip,一直都是在自己电脑本地开发程序打成jar包 再放到linux系统的hadoop服务器上运行,所以很麻烦也不好调试
之前想用远程连接Linux服务器上做调试 后来发现由于数据节点都是内网ip 远程运行程序分发任务的时候连不到内网的数据节点
后来直接在集群的一台电脑安装eclipse来做一些程序调试 但是现在又发现测试的时候main函数找不到自己写的map的类
就是一个简单的mapreduce程序 从hdfs的文件取数来做个计算 输出结果在hdfs上,程序打成jar包在服务器上可以运行,但是在eclipse上面直接run会有下面的错误 研究了好久实在不知道怎么弄了 所以请教下大神们看下怎么回事。谢谢
console:
log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
preparing to startError: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class test.MapTest not found
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2199)
at org.apache.hadoop.mapreduce.task.JobContextImpl.getMapperClass(JobContextImpl.java:196)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:745)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1671)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
Caused by: java.lang.ClassNotFoundException: Class test.MapTest not found
at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2105)
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2197)
... 8 more
Error: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class test.MapTest not found
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2199)
at org.apache.hadoop.mapreduce.task.JobContextImpl.getMapperClass(JobContextImpl.java:196)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:745)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1671)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
Caused by: java.lang.ClassNotFoundException: Class test.MapTest not found
at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2105)
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2197)
... 8 more