情况
VMware上安装了Linux系统,部署伪分布式hadoop2。我在Windows宿主机用IDEA或Eclipse编写MapReduce程序,提交任务之后,运行时报错:
Error: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class WordCount$MyMapper not found
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2074)
at org.apache.hadoop.mapreduce.task.JobContextImpl.getMapperClass(JobContextImpl.java:186)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:742)
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:1628)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
Caused by: java.lang.ClassNotFoundException: Class com.lance.common.entity.LineSplitMapper not found
at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:1980)
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2072)
... 8 more
软硬件
JDK 1.7
Hadoop 2.6.0
CentOS 6.7
Windows 10
IDEA 2016
Spring Tool Suite Version: 3.7.3.RELEASE
hadoop-eclipse-plugin-2.7.1.jar
样例代码
public class WordCount {
public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
String inputPath = "input/protocols";
String outputPath = "output";
// 获取Job ID
Configuration conf = new Configuration();
conf.set("fs.default.name", "hdfs://192.168.147.128:9000");
conf.set("mapreduce.framework.name&