我正在尝试运行MapReduce作业来扫描HBase表.目前我使用的是Cloudera 4.4附带的HBase版本0.94.6.在我的程序中的某个时刻,我使用Scan(),我正确地导入它:
import org.apache.hadoop.hbase.client.Scan;
它编译得很好,我也可以创建一个jar文件.我通过将hbase类路径作为-cp选项的值传递来实现.运行程序时,我收到以下消息:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/client/Scan
我运行代码使用:
hadoop jar my_program.jar MyJobClass -libjars <list_of_jars>
其中list_of_jars包含/opt/cloudera/parcels/CDH/lib/hbase/hbase.jar.为了仔细检查,我确认hbase.jar包含Scan.我这样做:
jar tf /opt/cloudera/parcels/CDH/lib/hbase/hbase.jar
我可以看到这条线:
org/apache/hadoop/hbase/client/Scan.class
在输出中.一切看起来都不错.我不明白为什么说Scan没有定义.我传递了正确的jar,它包含了类.
任何帮助表示赞赏.
解决方法:
设置HADOOP_CLAsspATH变量修复了问题:
export HADOOP_CLAsspATH=`/usr/bin/hbase classpath`
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。