在做spark连接Hbase的时候,总会蹦出一些问题。总结起来就是各种类的找不到。
如:org/apache/hadoop/hbase/CompatibilityFactory没有找到类,
E xception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/client/Scan
如此等等。
这些问题的核心还是没有正确加载Hbase所需要的库。
而Hbase中的一些库存在的会与spark中有一些版本区别,因此可以通过测试来进行添加。
正常需要引用的包如下:
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>1.4.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-common</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-server</artifactId>
<version>1.1.2</version>
</dependency>
</dependencies>
除此之外,会需要hbase-hadoop-compact.jar等几个库,把这些库加载后,就不会出现这样的错误