gpt4 book ai didi

hadoop - 当我使用自己的 TableInputFormat 时 TableMapper 出现 ClassNotFoundException

转载 作者:可可西里 更新时间:2023-11-01 15:39:50 27 4
gpt4 key购买 nike

我正在尝试通过以下方式将我自己的 TableInputFormat 用于 MapReduceJob


TableMapReduceUtil.initTableMapperJob("mytable",
我的扫描仪,
我的映射器类,
我的 key 类,
我的值.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) ....

非常感谢您的帮助

问候

最佳答案

请参阅Overriding TableMapper splits .所以我覆盖了 TableMapReduceUtil 并将 TableMapper.class 添加到 addDependencyJars 方法。然后我以同样的方式进行
MyTableMapReduceUtil.initTableMapperJob("MyTable",//输入表
我的扫描仪,
我的映射器类,
我的 key 类,
我的值.class,
我的工作,
真,CustomSplitTableInputFormat.class);
CustomSplitTableInputFormat 扩展 TableInputFormat 的地方

关于hadoop - 当我使用自己的 TableInputFormat 时 TableMapper 出现 ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18016626/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com