全部產品
Search
文件中心

Lindorm:通過Hive串連並使用寬表引擎

更新時間:Jul 19, 2025

本文主要介紹如何通過Hive訪問Lindorm寬表。

前提條件

注意事項

  • 如果您想要通過公網訪問或您的執行個體類型為Lindorm單節點,在執行本文操作前,需要先升級SDK並更改配置。具體操作,請參見通過HBase Java API串連並使用寬表引擎章節中的步驟1。

  • 如果應用部署在ECS執行個體,通過專用網路訪問Lindorm執行個體前,需要確保Lindorm執行個體和ECS執行個體滿足以下條件,以保證網路的連通性。

    • 所在地區相同,並建議所在可用性區域相同(以減少網路延時)。

    • ECS執行個體與Lindorm執行個體屬於同一專用網路。

在Hive中配置串連參數

方式一:在hive-site.xml設定檔中添加訪問配置。

<configuration>
    <property>
        <name>hbase.zookeeper.quorum</name>
      <!--
   寬表引擎的HBase Java API專用網路串連地址
    -->
        <value>ld-bp1461s38p7y9****-proxy-lindorm.lindorm.rds.aliyuncs.com:30020</value>
    </property>
 </configuration>

方式二:在Hive Client中用命令的方式配置。

// 寬表引擎的HBase Java API專用網路串連地址
set hbase.zookeeper.quorum=ld-bp1461s38p7y9****-proxy-lindorm.lindorm.rds.aliyuncs.com:30020

操作步驟

  1. 在Hive Client中設定需要訪問的Lindorm執行個體的串連地址。

    hive
    // 寬表引擎的HBase Java API專用網路串連地址
    set hbase.zookeeper.quorum=ld-bp1461s38p7y9****-proxy-lindorm.lindorm.rds.aliyuncs.com:30020
  2. 在Lindorm中建立表hive_hbase_table。

    CREATE 'hive_hbase_table','cf1'
  3. 在Hive中建立外表。

    CREATE EXTERNAL TABLE hive_hbase_table(key int, value string)
    STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
    WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val")
    TBLPROPERTIES ("hbase.table.name" = "hive_hbase_table", "hbase.mapred.output.outputtable" = "hive_hbase_table");

    返回結果顯示OK,表示建立成功。

  4. 插入資料並查看是否插入成功。

    • 在Hive中往外表插入資料,並在Lindorm中查看資料是否插入成功。

      插入資料:

      insert into hive_hbase_table values(212,'bab');

      在Lindorm中查看資料是否插入成功:

      scan 'hive_hbase_table'

      返回結果如下:

      ROW                   COLUMN+CELL
      212                   column=cf1:val, timestamp=2023-03-13T15:35:10.270, value=bab                      
    • 在Lindorm中往表hive_hbase_table中插入資料,並在Hive中查看資料是否插入成功。

      插入資料:

      put 'hive_hbase_table','213','cf1:val','dadsadasda'

      在Hive中查看資料是否插入成功。

      SELECT * FROM hive_hbase_table;

      返回結果如下:

      212   bab
      213   dadsadasda
重要

目前暫不支援通過Hive直接讀取Lindorm的底層檔案,但支援通過關聯或建立外表的方式在Lindorm中讀寫資料。