【发布时间】:2013-08-02 12:14:34
【问题描述】:
我正在尝试通过以下方式将我自己的 TableInputFormat 用于 MapReduceJob
TableMapReduceUtil.initTableMapperJob("mytable",
MyScan,
MyMapper.class,
MyKey.class,
MyValue.class,
myJob,true, MyTableInputFormat.class);
当我运行作业时,我得到一个 ClassNotFoundException: org.apache.hadoop.hbase.mapreduce.TableMapper - 知道为什么吗?
如果我不使用initTableMapperJob的最后两个参数,那么就没有ClassNotFoundException(但显然达不到目的)
我现在为此苦苦挣扎了几天。 这是某人在某个地方做了同样的事情Extending Hadoop's TableInputFormat to scan with a prefix used for distribution of timestamp keys,但我无法在该线程上提出问题。
我正在使用 Hadoop 2 开发 Cloudera Cluster 4.3.0
添加堆栈跟踪错误:
java.lang.ClassNotFoundException: org.apache.hadoop.hbase.mapreduce.TableMapper at
java.net.URLClassLoader$1.run(URLClassLoader.java:202) at
java.security.AccessController.doPrivileged(Native Method) at
java.net.URLClassLoader.findClass(URLClassLoader.java:190) at
java.lang.ClassLoader.loadClass(ClassLoader.java:306) at
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at
java.lang.ClassLoader.loadClass(ClassLoader.java:247) at
java.lang.ClassLoader.defineClass1(Native Method) ....
非常感谢您的帮助
问候
【问题讨论】:
-
添加堆栈跟踪
error: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.mapreduce.TableMapper at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at java.lang.ClassLoader.defineClass1(Native Method) ....
标签: hadoop mapreduce hbase cloudera