在HBase Ganos开通后(参考「开通指南」),就可以通过Ganos接口进行开发工作了。

代码示例

1、代码示例下载

ganos-sample-code

下载代码后,请根据实际情况,修改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>