spring boot 集成 hbase 会启动报错
主要因为Spring Boot内嵌了Web容器,方便对应用进行微服务化开发和部署。所以打算将HBase的业务应用作为一个单服务进行开发和发布,其他相关的子系统通过RESTful API来访问。
搭建项目环境时,需要注意的事项:
由于Spring Boot内嵌了Web容器,所以框架默认导入了依赖:tomcat-embed-core-8.5.5.jar、tomcat-embed-el-8.5.5.jar等包。而HBase的jar中包含了:servlet-api-2.5.jar、servlet-api-2.5-6.1.14.jar。当你添加好HBase的相关依赖后,应用程序启动报异常,启动不启来。在搭建项目环境时,记录不要导入servlet-api-2.5.jar、servlet-api-2.5-6.1.14.jar这两个jar包。
同时可能会遇到:hbase java.io.IOException: No FileSystem for scheme: hdfs 的错误
要解决该错误在pom.xml中添加hadoo-client即可,同时也移除servlet-api,参考pom.xml
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>对应版本号</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>对应版本号</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>
原文链接:http://blog.csdn.net/veechange/article/details/52955599