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