我在源代码中收到此错误:
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)
我猜测有二进制兼容性丢失了。有人可以解释如何解决这个问题吗?感谢。
答案 0 :(得分:1)
您可以使用Java Reflection执行此操作:
HColumnDescriptor fam1 = new HColumnDescriptor(Bytes.toBytes('cf'));
Method method = fam1.getClass().getMethod("setMaxVersions", Integer.TYPE);
method.invoke(fam1, 10);