1. 问题描述
由于 maven 项目中使用的 protobuf-3.0.0 版本和 HBase 中使用的 protobuf-2.5.0 不一致,导致抛出异常
java.lang.NoClassDefFoundError:org.apache.hadoop.hbase.util.ByteStringer
HBase 1.2.X 及之前的版本中 HBase 是强依赖于 protobuf-2.5.0,如果在依赖中引入高版本的 protobuf,会造成 HBase 的各种问题,所以在有HBase的项目中一定要慎重对待protobuf的版本
2. 解决方法
降低 protobuf 版本重新生成java文件
尝试把 pom 文件中的引用 protobuf 和 hbase 位置对调