升级到hbase-0.94.2时的NoSuchMethodError()

时间:2013-04-01 19:49:20

标签: nosuchmethoderror

我在源代码中收到此错误:

java.lang.NoSuchMethodError: org.apache.hadoop.hbase.HColumnDescriptor.setMaxVersions(I)V

当我从hbase-0.92.1-cdh4.1.1升级到hbase-0.94.2-cdh4.2.0时 我看到该方法的签名已从

更改
public void setMaxVersions(int maxVersions)

public HColumnDescriptor setMaxVersions(int maxVersions)

我猜测有二进制兼容性丢失了。有人可以解释如何解决这个问题吗?感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用Java Reflection执行此操作:

HColumnDescriptor fam1 = new HColumnDescriptor(Bytes.toBytes('cf'));
Method method = fam1.getClass().getMethod("setMaxVersions", Integer.TYPE);
method.invoke(fam1, 10);