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
时间: 2024-10-11 18:42:34