本文主要介绍在HBase Ganos开通后,如何通过Ganos接口进行后续开发工作。
代码示例
- 下载代码示例。
下载代码后,请根据实际情况,修改pom.xml文件中的依赖。
- 代码示例说明。
- trajectory-sample模块
以AIS数据为例,展示了对轨迹数据的写入、查询功能,其中:
- Main: 示例程序入口。
- Writer:向HBase Ganos写入数据,具体包括如下步骤:连接HBase Ganos,创建Schema(时空索引表),读取示例数据,写入到时空索引表中。
- Reader:通用查询接口,包括:属性查询(等值查询、前缀后缀查询),空间查询和时空查询等。
- spark-sample模块
以AIS数据为例,展示了对轨迹数据的写入、Spark查询分析等功能,其中:
- Writer:向HBase Ganos写入数据,具体包括如下步骤:连接HBase Ganos,创建Schema(时空索引表),读取示例数据,写入到时空索引表。
- SparkDemo: 从HBase Ganos读取数据,转换为Spark DF模型,并基于SparkSQL进行空间查询等操作。
- trajectory-sample模块
依赖配置
可以选择使用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的版本
注意 目前该版本的依赖包只能下载之后集成,单击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的版本
注意 目前该版本的依赖包只能下载之后集成,单击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>