SpringBoot 搭建HBase 数据对外服务http API接口
1. 背景
- 在大数据开发中,数据分析结果在公司内部从数据查询速度要求来看分为2种,一种是不太在乎速度,在时间期限之前给到即可;一种是查询速度要求较高。
- 应对查询速度较高的,有2种思路。一种是提前计算好,然后存入数据查询较快的数据库中;一种是采用高速计算引擎,当场计算。
- 提前计算好的数据,如果数据规模较小,如亿条数据级别,可以使用如mysql集群应对。当数据再大时,使用Hbase,elasticsearch等就可以纳入技术选型视野。
- 本文讲述使用springboot搭建一个简单服务,对外以http API接口方式对外提供数据访问服务。
注意,HBase其实并不是传统意义上的数据库,本质上使用HBase一般数据读取远大于写入,一般是一次写入多次读取
2. 案例
- 环境
- idea 2020
- maven 3.6.3
- scala 2.11
- jdk 1.8
- pom文件
<properties>
<java.version>1.8</java.version>
<spark.version>2.4.4</spark.version>
<scala.version>2.11.12</scala.version>
<hadoop.version>3.1.0</hadoop.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>2.0.4</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>nexus-aliyun</id>
<name>Nexus aliyun</name>
<layout>default</layout>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<snapshots>
<enabled>false</enabled>
<updatePolicy>never</updatePolicy>