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
