classnotfoundexception

v6ylcynt  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(386)

我尝试用我自己的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(但很明显,这不符合目的)
我已经为此挣扎了几天了。在某个地方,有人做了同样的事情,扩展hadoop的tableinputformat,用一个前缀来扫描用于分发时间戳键,但是我不能在这个线程上问这个问题。
我正在使用hadoop2开发clouderacluster4.3.0
添加stacktrace错误:

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) ....

非常感谢你的帮助
当做

atmip9wb

atmip9wb1#

请参阅重写tablemapper拆分。所以我重写了tablemapreduceutil,并将tablemapper.class添加到adddependencyjars方法中。然后我继续以同样的方式 MyTableMapReduceUtil.initTableMapperJob("MyTable", // input table myScan, MyMapper.class, MyKey.class, MyValue.class, myJob, true,CustomSplitTableInputFormat.class); 其中customsplittableinputformat扩展了tableinputformat

相关问题