在HBase Ganos开通后(参考「开通指南」),就可以通过Ganos接口进行开发工作了。
代码示例
1、代码示例下载
下载代码后,请根据实际情况,修改pom.xml文件中的依赖,参考下方【依赖配置】一节
2、代码示例说明
2.1 trajectory-sample模块
以AIS数据为例,展示了对轨迹数据的写入、查询功能,其中
- Main: 示例程序入口
- Writer:向HBase Ganos写入数据,具体包括如下步骤:连接HBase Ganos,创建Schema(时空索引表),读取示例数据,写入到时空索引表中
- Reader:通用查询接口,包括:属性查询(等值查询、前缀后缀查询),空间查询和时空查询等示例
2.2 spark-sample模块
以AIS数据为例,展示了对轨迹数据的写入、Spark查询分析等功能,其中
- Writer:向HBase Ganos写入数据,具体包括如下步骤:连接HBase Ganos,创建Schema(时空索引表),读取示例数据,写入到时空索引表
- SparkDemo: 从HBase Ganos读取数据,转换为Spark DF模型,并基于SparkSQL进行空间查询等操作
依赖配置
可以选择使用GeoMesa客户端或Ganos客户端,其中Ganos客户端支持更加丰富的特性。
GeoMesa客户端
HBase Ganos兼容开源的GeoMesa客户端,用户在不使用Ganos特定的功能优化时,可以直接集成GeoMesa客户端即可。
注意 GeoMesa客户端只适应基于HBase 1.x版本的Ganos
<properties>
<!-- 注意:此处填写对应的hbase client版本号 -->
<alihbase.version>1.3.1</alihbase.version>
</properties>
<dependency>
<groupId>org.locationtech.geomesa</groupId>
<artifactId>geomesa-hbase-datastore_2.11</artifactId>
<version>2.2.1</version>
<exclusions>
<exclusion>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 依赖alihbase -->
<dependency>
<groupId>com.aliyun.hbase</groupId>
<artifactId>alihbase-client</artifactId>
<version>${alihbase.version}</version>
<exclusions>
<exclusion>
<artifactId>com.google.guava</artifactId>
<groupId>guava</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.aliyun.hbase</groupId>
<artifactId>alihbase-server</artifactId>
<version>${alihbase.version}</version>
</dependency>
<dependency>
<groupId>com.aliyun.hbase</groupId>
<artifactId>alihbase-common</artifactId>
<version>${alihbase.version}</version>
</dependency>
<dependency>
<groupId>com.aliyun.hbase</groupId>
<artifactId>alihbase-protocol</artifactId>
<version>${alihbase.version}</version>
</dependency>
Ganos客户端
- 基于HBase 1.x的版本
注意 目前该版本的依赖包只能下载之后集成,尚未发布到maven库中,地址为:ganos-hbase-distributed-runtime_2.11-2.2.1-2.1.0.jar下载后,按照如下配置即可。
<properties>
<!-- 注意:此处填写对应的hbase client版本号 -->
<alihbase.version>1.3.1</alihbase.version>
</properties>
<dependency>
<groupId>com.aliyun.tst.ganos</groupId>
<artifactId>ganos-geomesa-hbase15</artifactId>
<version>2.0.0</version>
<scope>system</scope>
<systemPath>/ganos-jar-path</systemPath>
</dependency>
<!-- 依赖alihbase -->
<dependency>
<groupId>com.aliyun.hbase</groupId>
<artifactId>alihbase-client</artifactId>
<version>${alihbase.version}</version>
<exclusions>
<exclusion>
<artifactId>com.google.guava</artifactId>
<groupId>guava</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.aliyun.hbase</groupId>
<artifactId>alihbase-server</artifactId>
<version>${alihbase.version}</version>
</dependency>
<dependency>
<groupId>com.aliyun.hbase</groupId>
<artifactId>alihbase-common</artifactId>
<version>${alihbase.version}</version>
</dependency>
<dependency>
<groupId>com.aliyun.hbase</groupId>
<artifactId>alihbase-protocol</artifactId>
<version>${alihbase.version}</version>
</dependency>
- 基于HBase 2.x的版本
注意 目前该版本的依赖包只能下载之后集成,尚未发布到maven库中,点此下载ganos-hbase-distributed-runtime_2.11-2.2.1-2.5.0.jar
<properties>
<!-- 注意:此处填写对应的hbase client版本号 -->
<alihbase.version>2.0.0</alihbase.version>
</properties>
<dependency>
<groupId>com.aliyun.tst.ganos</groupId>
<artifactId>ganos-geomesa-hbase20</artifactId>
<version>2.5.0</version>
<scope>system</scope>
<systemPath>/ganos-jar-path</systemPath>
</dependency>
<!-- 依赖alihbase -->
<dependency>
<groupId>com.aliyun.hbase</groupId>
<artifactId>alihbase-client</artifactId>
<version>${alihbase.version}</version>
<exclusions>
<exclusion>
<artifactId>com.google.guava</artifactId>
<groupId>guava</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.aliyun.hbase</groupId>
<artifactId>alihbase-server</artifactId>
<version>${alihbase.version}</version>
</dependency>
<dependency>
<groupId>com.aliyun.hbase</groupId>
<artifactId>alihbase-common</artifactId>
<version>${alihbase.version}</version>
</dependency>
<dependency>
<groupId>com.aliyun.hbase</groupId>
<artifactId>alihbase-protocol</artifactId>
<version>${alihbase.version}</version>
</dependency>