日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

文檔

HBase外部表(HBase標準版或增強版)

更新時間:

在MaxCompute與阿里云HBase服務間的網絡處于連通狀態時,MaxCompute支持您通過創建HBase外部表來關聯HBase標準版或增強版集群中的表。使用HBase外部表,可以將HBase中的數據同步到MaxCompute進行后續ETL處理,也可以關聯HBase外部表進行聯邦計算,或將MaxCompute數據輸出到HBase的表中。本文為您介紹如何創建HBase外部表。

背景信息

HBase是兼容標準HBase訪問協議的分布式數據庫,包含HBase標準版、HBase增強版和HBase Serverless版,MaxCompute僅支持訪問HBase標準版或HBase增強版集群。

默認情況下,MaxCompute與阿里云HBase服務間的網絡不可達,您需要提前通過專有網絡連接方案(VPC)建立二者間的網絡通路后,才可以創建HBase外部表來關聯HBase標準版或增強版集群中的表。注意MaxCompute通過外部表的方式訪問HBase時,網絡打通包括通過Network建立MaxCompute和VPC的網絡鏈路,也需要打開HBase的白名單,詳情請參見設置白名單。

說明

HBase增強版是基于云原生多模數據庫Lindorm內核研發的,HBase增強版實例也可以通過Lindorm控制臺創建,該場景下創建HBase外部表的操作,請參見Lindorm外部表(云原生多模數據庫)。本文僅以通過HBase控制臺創建的HBase實例為例進行介紹。

前提條件

創建HBase外部表前,請確認已經滿足如下條件:

  • 已創建HBase標準版或增強版集群,并完成環境配置。

    更多購買HBase標準版集群及配置環境信息,請參見HBase標準版快速入門

    更多購買HBase增強版集群及配置環境信息,請參見HBase增強版快速入門。

  • 已通過HBase客戶端在HBase集群中創建好了表。

    更多創建HBase表信息,請參見HBase Shell使用介紹

    為便于展示使用示例,本文假設已在HBase標準版或增強版集群中創建了表mf_hbase_test_t,建表命令如下。

    --創建HBase表。
    create 'mf_hbase_test_t', 'f'
    --插入數據。其中:1表示RowKey,f表示col_family,col1表示col_name,hello表示col_value。
    put 'mf_hbase_test_t', '1', 'f:col1', 'hello'
  • 已創建待關聯HBase表的目標MaxCompute項目。

    更多創建MaxCompute項目信息,請參見創建MaxCompute項目。

  • 已安裝MaxCompute客戶端。

    更多安裝MaxCompute客戶端操作,請參見安裝并配置MaxCompute客戶端

  • 已基于專有網絡連接方案,開通MaxCompute和HBase服務間的網絡連接。

    更多專有網絡連接方案信息,請參見網絡開通流程。

使用限制

  • 支持華北2(北京)、華東2(上海)、華北3(張家口)、華北6(烏蘭察布)、華東1(杭州)、華南1(深圳)、中國香港、華東 2 金融云(可用區F)、日本(東京)、新加坡、馬來西亞(吉隆坡)、印度尼西亞(雅加達)、德國(法蘭克福)、美國(硅谷)、美國(弗吉尼亞)地域通過訪問VPC方案(專線直連)連接MaxCompute和HBase,僅以上地域可以創建HBase外部表,其他地域暫不支持。

  • 網絡打通時,MaxCompute側僅打通到所填VPC ID的網絡連接,如需跨Region訪問或者訪問該Region的其他VPC,請根據云上VPC現有打通方案,打通專線直連方案所填寫的VPC和其他VPC之間的網絡。

  • HBase外部表僅支持訪問HBase2.x版本的集群。

  • HBase外部表暫不支持EMR HBase集群。

  • HBase外部表不支持cluster屬性。

創建HBase外部表語法

在創建HBase外部表時,您需要在建表DDL語句中指定HBaseStorageHandler,并配置HBase標準版或增強版集群相關信息。建表時,表名和字段名大小寫不敏感。在查詢表或字段時,無需區分大小寫,且不支持強制轉換大小寫。建表語句定義如下。

--打開Hive兼容模式。
set odps.sql.hive.compatible = true;
--僅當HBase集群為增強版時,除上述SET參數外,還必須配置odps.sql.hbase.version參數,切換HBase版本為lindorm。
set odps.sql.hbase.version=lindorm;
--創建HBase外部表。
create external table if not exists <mc_hbase_external>
(
  <col1_name> <data_type>,
  <col2_name> <data_type>,
  ......
)
--處理HBase數據源的Handler。
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
with serdeproperties (
                      'hbase.columns.mapping'='<:key,col-family:col-name1,col-family:col-name2,...>')
tblproperties (
--hbase.table.name和hbase.zookeeper.quorum必須配置。
'hbase.table.name'='<hbase_table_name>',
'hbase.zookeeper.quorum'='<VPC ip1|host1:port,VPC ip2|host2:port...>',
--僅當HBase集群為增強版時,還必須配置hbase.client.username和hbase.client.password參數。
'hbase.client.username'='****',
'hbase.client.password'='****',
--hbase.zookeeper.property.clientPort、mcfed.zookeeper.session.timeout和hbase.client.retries.number為可選參數。
--當HBase集群為標準版時,hbase.zookeeper.property.clientPort的默認值為2181。
--當HBase集群為增強版時,hbase.zookeeper.property.clientPort的默認值為30020。
['hbase.zookeeper.property.clientPort'='{2181|30020}',]
['mcfed.zookeeper.session.timeout'='<value>',]
['hbase.client.retries.number'='<value>',]
'networklink'='<networklink_name>'
);
  • mc_hbase_external:必填。待創建HBase外部表的名稱。

  • col_name:必填。HBase外部表的列名稱。

  • data_type:必填。列的數據類型。

  • with serdeproperties

    • 'hbase.columns.mapping'='<:key,col-family:col-name1,col-family:col-name2,...>':必填。HBase外部表與HBase集群中表的列映射關系。

      • RowKey(:key)必須放在最前面。

      • 列格式為col-family:col-name1,col-family:col-name2。一個作業中col-family只能有一個。

  • hbase://VPC ip|host:port:必填。HBase上配置的Zookeeper Master。即Zookeeper連接地址(HBase標準版)或HBase集群的Java API訪問地址(HBase增強版)。也可以為關聯的HBase表所屬VPC網絡IP、IP網段、端口。例如192.0.2.1-192.0.2.10:9000, 192.0.2.20:70050192.0.2.20/16:2181。您可以登錄HBase管理控制臺,在集群列表頁面單擊目標集群名稱后,在左側導航欄單擊數據庫連接,即可在連接信息處獲取。

    • 對于分布式的數據源,請確認需要訪問的前端IP端口以及DataNode的IP端口。HBase外部表需要填寫Zookeeper、HMaster、Region Server的IP和端口(2181/30020、16000、16020)。HBase標準版的默認Zookeeper端口為2181。HBase增強版的默認Zookeeper端口為30020。

    • 由于該字段支持IP地址段,且映射IP會耗費資源,默認一次映射的IP數不能超過2000個。

  • tblproperties

    • 'hbase.table.name'='<hbase_table_name>':必填。MaxCompute所關聯的HBase集群中的表的名稱。必須提前通過HBase客戶端建好。

    • 'hbase.zookeeper.quorum'='<VPC ip1|host1:port,VPC ip2|host2:port...>':必填。HBase的Zookeeper的IP或域名。即Zookeeper連接地址(HBase標準版)或HBase集群的Java API訪問地址(HBase增強版)。

    • hbase.client.username:必填。僅當HBase集群為增強版時,需要配置該參數。您可以登錄HBase管理控制臺,在集群列表頁面單擊目標集群名稱后,在左側導航欄單擊數據庫連接,即可通過連接信息處的默認用戶名獲取。

    • hbase.client.password:必填。僅當HBase集群為增強版時,需要配置該參數。您可以登錄HBase管理控制臺,在集群列表頁面單擊目標集群名稱后,在左側導航欄單擊數據庫連接,即可通過連接信息處的默認密碼獲取。

    • 'hbase.zookeeper.property.clientPort'='{2181|30020}':可選。HBase的Zookeeper端口。HBase標準版的默認Zookeeper端口為2181。HBase增強版的默認Zookeeper端口為30020。

    • 'mcfed.zookeeper.session.timeout'='<value>':可選。Zookeeper的超時時間。單位為毫秒,建議設置為30000。

    • 'hbase.client.retries.number'='<value>':可選。HBase客戶端連接重試次數。

    • 'networklink'='<networklink_name>':必填。HBase實例所在VPC的MaxCompute網絡連接。

    說明

    mcfed.zookeeperhbase開頭的配置是Zookeeper的相關配置。

使用示例

  1. 登錄MaxCompute客戶端,執行CREATE EXTERNAL TABLE語句創建HBase外部表。

    命令示例如下。

    • HBase標準版

      set odps.sql.hive.compatible = true;
      create external table if not exists mf_hbase_test_t_ext
      (
        key  int,
        col1 string,
        col2 string
      )
      stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
      with serdeproperties (
                            'hbase.columns.mapping'=':key,f:col1,f:col2')
      tblproperties (
      'hbase.table.name'='mf_hbase_test_t',
      'hbase.zookeeper.quorum'='hb-2zef****-master1-001.hbase.rds.aliyuncs.com,hb-2zef****-master2-001.hbase.rds.aliyuncs.com,hb-2zef****-master3-001.hbase.rds.aliyuncs.com',
      'hbase.zookeeper.property.clientPort'='2181',
      'networklink'='networklink4hbase');
    • HBase增強版

      set odps.sql.external.net.vpc=true;
      set odps.sql.hive.compatible = true;
      set odps.sql.hbase.version=lindorm;
      CREATE EXTERNAL TABLE mf_hbase_test_t_ext
      (
        key  int,
        col1 string,
        col2 string
      )
      stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
      with serdeproperties (
                            'hbase.columns.mapping'=':key,f:col1,f:col2')
      tblproperties (
      'hbase.table.name'='mf_hbase_test_t',
      'hbase.zookeeper.quorum'='hb-2zef****-master1-001.hbase.rds.aliyuncs.com,hb-2zef****-master2-001.hbase.rds.aliyuncs.com,hb-2zef****-master3-001.hbase.rds.aliyuncs.com',
      'hbase.zookeeper.property.clientPort'='2181',
      'networklink'='networklink4hbase');
  2. 執行select命令查看關聯結果,確保關聯成功。

    命令示例如下。

    select * from mf_hbase_test_t_ext;

    返回結果如下。

    +------+------------+------------+
    | key  | col1       | col2       |
    +------+------------+------------+
    | 1    | hello      | NULL       |
    +------+------------+------------+
  3. 執行INSERT OVERWRITE語句向HBase中的表寫入數據。

    命令示例如下。

    INSERT OVERWRITE TABLE mf_hbase_test_t_ext SELECT '2', 'hbase', 'mftestinsert';
  4. 執行SELECT語句驗證寫入的數據。

    命令示例如下。

    select * from mf_hbase_test_t_ext;

    返回結果如下。

    +------+------------+--------------------+
    | key  | col1       | col2               |
    +------+------------+--------------------+
    | 1    | hello      | NULL               |
    | 2    | hbase      | mftestinsert       |
    +------+------------+--------------------+