java.lang.NoSuchMethodError: org.apache.hadoop.hbase.HTableDescriptor.addFamily(Lorg/apache/hadoop/h

链接:http://www.chinahadoop.cn/classroom/5/thread/136

fish    06-27

Hi,kevy,还是像我之前说的,排查问题要尽可能简化问题,先不要弄协处理器。

我已经找到原因。cdh的这个hbase1.0.0跟apache的hbase1.0.0,有不一致的实现,导致基于apache的hbase编译的包(在maven中声明的hbase 1.0.0依赖)在cdh hbase上跑不起来。

我在问题检查是反编译了apache版本以及cdh版本的hbase同名类,发现他们的API不同。

我用如下方法,手动添加了cdh的HBase的依赖包对应用进行编译,问题就消失了,你也试试吧。

java.lang.NoSuchMethodError: org.apache.hadoop.hbase.HTableDescriptor.addFamily(Lorg/apache/hadoop/h_第1张图片

 ( 0)
  •   
    kevy    06-27

    好的,谢谢老师,我eclipse导入的是apache的jar包,我以为我打包后发到服务器使用的是cdh的jar包运行,应该没问题。理解错了

     ( 0)
  •   
    fish    06-27

    回复 @kevy: 只要保证编译使用的包跟运行时使用的包一致就可以。

     ( 0)



你可能感兴趣的:(hbase)