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

管理Hive Catalog

重要

本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。

配置Hive Catalog后,您可以在Flink開發控制臺直接讀取Hive元數據,無需再手動注冊Hive表,提高作業開發的效率且保證數據的正確性。本文為您介紹如何配置Hive元數據、創建和使用Hive Catalog等。

背景信息

您可以將Hive Catalog配置文件和Hadoop依賴存放至對象存儲OSS控制臺指定目錄后,再在Flink開發控制臺上配置Hive Catalog功能。配置成功后,可在Flink開發控制臺上直接使用DML創建業務邏輯,獲取Hive中表的元數據信息,無需再使用DDL語句聲明相應的表信息。Hive Catalog中的表可以作為流作業和批作業的源表或結果表。

Flink支持Hive MetaStore和阿里云數據湖構建(Data Lake Formation,簡稱DLF)作為Hive Catalog的元數據中心。本文將從以下方面為您介紹如何管理Hive Catalog:

前提條件

在使用Hive MetaStore或阿里云DLF作為Hive Catalog元數據中心前,需要完成以下配置:

  • 使用Hive MetaStore作為Hive Catalog元數據中心

    要求

    說明

    已在Hive Metastore側開啟了Hive Metastore服務。

    相關命令如下:

    • 開啟Hive Metastore服務命令:hive --service metastore

    • 查詢Hive Metastore服務是否已開啟:netstat -ln | grep 9083

      其中9083是Hive Metastore的默認端口號。如果您在hive-site.xml配置了其他的端口號,則需要將9083改為對應的端口號。

    已在Hive Metastore側配置了白名單,使得Flink可以訪問Hive Metastore。

    Flink網段的獲取方法請參見設置白名單,在Hive Metastore側配置白名單的方法請參見添加安全組規則

  • 使用阿里云DLF作為Hive Catalog元數據中心

    已開通阿里云DLF。如果您未開通阿里云DLF,請在數據湖構建控制臺頁面,單擊免費開通數據湖構建

使用限制

  • Hive Metastore不支持Kerberos鑒權。

  • 支持自建Hive Metastore。

  • 由于從Flink社區從1.16版本開始廢棄了對Hive 1.x,2.1.x,2.2.x版本的支持,所以僅VVR 6.x 版本支持Hive 1.x,2.1.x,2.2.x。

  • 實時計算引擎VVR 4.0.11及以上版本支持DLF作為Hive Catalog的元數據管理中心。

    說明

    如果Hive版本為3.1.0+,對于VVR 6.0.x版本,只有 VVR 6.0.7及以上版本才支持DLF作為Hive Catalog的元數據管理中心。

  • 如果Hive Catalog是以DLF作為元數據管理中心,則僅計算引擎VVR 8.0.6及以上版本支持在該Catalog中創建非Hive表。

  • 僅VVR 8.0.6及以上版本才支持寫入OSS-HDFS。

配置Hive元數據

  1. 連通Hadoop集群和Flink的VPC。

    您可以使用云解析PrivateZone產品連通Hadoop集群和Flink的VPC,詳情請參見解析器(Resolver)。網絡連通后,Flink就可以使用Hadoop集群的配置文件訪問Hadoop集群。

  2. 在OSS控制臺新建目錄,并將Hive配置文件和Hadoop依賴上傳至目標路徑。

    1. 登錄OSS管理控制臺

    2. 單擊Bucket列表

    3. 單擊目標Bucket名稱。

    4. oss://${bucket}/artifacts/namespaces/${ns}/路徑下,新建${hms}目錄。

      在OSS上創建目錄的操作詳情,請參見創建目錄。目標路徑中的變量含義如下表所示:

      目錄

      說明

      ${bucket}

      您Flink使用的Bucket名稱。

      ${ns}

      您要使用Hive Catalog功能的Flink項目空間名稱。

      ${hms}

      建議與下文創建的Hive Catalog名稱保持一致。

      說明

      開通Flink工作空間后,系統會自動在您指定的Bucket下創建/artifacts/namespaces/${ns}/目錄來存儲JAR包等數據。如果您在OSS控制臺沒有看到如上目錄,則需要在Flink開發控制臺的資源管理頁面,手動上傳一個文件來觸發目錄創建。

    5. oss://${bucket}/artifacts/namespaces/${ns}/${hms}路徑下,新建hive-conf-dir和hadoop-conf-dir目錄。在OSS上新建目錄的操作請參見創建目錄

      其中hive-conf-dir和hadoop-conf-dir目錄中存放的文件詳情如下:

      • oss://${bucket}/artifacts/namespaces/${ns}/${hms}/hive-conf-dir/用于存放Hive配置文件hive-site.xml。

      • oss://${bucket}/artifacts/namespaces/${ns}/${hms}/hadoop-conf-dir/用于存放Hadoop配置文件,包括core-site.xml、hdfs-site.xml、yarn-site.xml和mapred-site.xml。

      創建成功后,您可以在文件列表頁面中,查看新建的目錄及文件,并復制OSS鏈接信息。

    6. 將您的Hive配置文件(hive-site.xml)上傳到hive-conf-dir目錄下。上傳文件的操作請參見上傳文件

      Hive Catalog支持Hive MetaStore和阿里云DLF作為元數據管理中心,相關配置說明詳情如下:

      • Hive MetaStore

        需要檢查下配置文件hive-site.xml中hive.metastore.uris參數配置是否符合下列要求。

        <property>
            <name>hive.metastore.uris</name>
            <value>thrift://xx.yy.zz.mm:9083</value>
            <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>
         </property>

        其中xx.yy.zz.mm為Hive的內網IP或者公網IP。

        說明

        如果您將hive.metastore.uris填寫為hostname,則需要配置域名解析服務。否則Flink開發控制臺遠程訪問Hive時,hive.metastore.uris參數值會被解析失敗并報錯UnknownHostException。配置域名解析服務詳情請參見添加PrivateZone解析記錄

      • 阿里云DLF

        需要在配置文件hive-site.xml中添加如下配置項,以便Hive Catalog可以訪問DLF。

        說明

        如果您的hive-site.xml包含了dlf.catalog.akMode的配置項,則需要將該配置項刪掉,否則將無法訪問DLF。

        <property>
          <name>hive.imetastoreclient.factory.class</name>
          <value>com.aliyun.datalake.metastore.hive2.DlfMetaStoreClientFactory</value>
        </property>
        <property>
          <name>dlf.catalog.uid</name>
          <value>${YOUR_DLF_CATALOG_UID}</value>
        </property>
        <property>
          <name>dlf.catalog.endpoint</name>
          <value>${YOUR_DLF_ENDPOINT}</value>
        </property>
        <property>
          <name>dlf.catalog.region</name>
          <value>${YOUR_DLF_CATALOG_REGION}</value>
        </property>
        <property>
          <name>dlf.catalog.accessKeyId</name>
          <value>${YOUR_ACCESS_KEY_ID}</value>
        </property>
        <property>
          <name>dlf.catalog.accessKeySecret</name>
          <value>${YOUR_ACCESS_KEY_SECRET}</value>
        </property>

        如果您的Hive表被存儲在OSS中,則還需要添加如下配置。

        <property>
          <name>fs.oss.impl.disable.cache</name>
          <value>true</value>
        </property>
        <property>
          <name>fs.oss.impl</name>
          <value>org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem</value>
        </property>
        <property>
          <name>hive.metastore.warehouse.dir</name>
          <value>${YOUR_OSS_WAREHOUSE_DIR}</value>
        </property>
        <property>
          <name>fs.oss.endpoint</name>
          <value>${YOUR_OSS_ENDPOINT}</value>
        </property>
        <property>
          <name>fs.oss.accessKeyId</name>
          <value>${YOUR_ACCESS_KEY_ID}</value>
        </property>
        <property>
          <name>fs.oss.accessKeySecret</name>
          <value>${YOUR_ACCESS_KEY_SECRET}</value>
        </property>
        <property>
          <name>fs.defaultFS</name>
          <value>oss://${YOUR_OSS_BUCKET_DOMIN}</value>
        </property>

        如果您的Hive表被存儲在OSS-HDFS中,則還需要添加如下配置。

        <property>
          <name>fs.jindo.impl</name>
          <value>com.aliyun.jindodata.jindo.JindoFileSystem</value>
        </property>
        <property>
          <name>hive.metastore.warehouse.dir</name>
          <value>${YOUR_OSS_WAREHOUSE_DIR}</value>
        </property>
        <property>
          <name>fs.oss.endpoint</name>
          <value>${YOUR_OSS_ENDPOINT}</value>
        </property>
        <property>
          <name>fs.oss.accessKeyId</name>
          <value>${YOUR_ACCESS_KEY_ID}</value>
        </property>
        <property>
          <name>fs.oss.accessKeySecret</name>
          <value>${YOUR_ACCESS_KEY_SECRET}</value>
        </property>
        <property>
          <name>fs.defaultFS</name>
          <value>oss://${YOUR_OSS_HDFS_BUCKET_DOMIN}</value>
        </property>

        其中涉及的參數解釋如下表所示。

        參數

        說明

        備注

        dlf.catalog.uid

        阿里云賬號的賬號ID。

        賬號信息,請通過用戶信息頁面獲取。

        dlf.catalog.endpoint

        DLF服務的Endpoint。

        詳情請參見已開通的地域和訪問域名

        說明
        • 推薦您為dlf.endpoint參數配置DLF的VPC Endpoint。例如,如果您選擇的地域為cn-hangzhou地域,則dlf.endpoint參數需要配置為dlf-vpc.cn-hangzhou.aliyuncs.com。

        • 如果您需要跨VPC訪問DLF,則請參見如何訪問跨VPC的其他服務?

        dlf.catalog.region

        DLF服務的地域名。

        詳情請參見已開通的地域和訪問域名

        說明

        請和dlf.endpoint選擇的地域保持一致。

        dlf.catalog.accessKeyIdfs.oss.accessKeyId

        阿里云賬號的Access Key。

        獲取方法請參見獲取AccessKey

        dlf.catalog.accessKeySecretfs.oss.accessKeySecret

        阿里云賬號的Access Secret。

        獲取方法請參見獲取AccessKey

        fs.oss.endpoint

        阿里云對象存儲OSS的域名。

        詳情請參見訪問域名和數據中心

        hive.metastore.warehouse.dir

        表數據存放的路徑。

        無。

        fs.defaultFS

        表數據默認存放的文件系統。

        如果是寫OSS-HDFS,請確保該值為目標Bucket對應HDFS服務的域名,例如oss://oss-hdfs-bucket.cn-hangzhou.oss-dls.aliyuncs.com/

    7. 將以下配置文件上傳到hadoop-conf-dir目錄。上傳文件的操作請參見上傳文件

      • hive-site.xml

      • core-site.xml

      • hdfs-site.xml

      • mapred-site.xml

      • 其他文件,例如Hive作業使用的壓縮包。

創建Hive Catalog

完成前面的Hive元數據配置后,您可以創建Hive Catalog,支持UI與SQL命令兩種方式配置Hive Catalog,推薦使用UI方式配置Hive Catalog。

UI方式

  1. 進入元數據管理頁面。

    1. 登錄實時計算控制臺,單擊目標工作空間操作列下的控制臺

    2. 單擊元數據管理

  2. 單擊創建Catalog,在創建Catalog頁面,選擇Hive后,單擊下一步

  3. 填寫參數配置信息。

    重要

    Catalog創建完成后,以下配置信息都不支持修改。如果需要修改,需要刪除掉已創建的Catalog,重新進行創建。

    image

    參數

    說明

    catalog name

    Hive Catalog名稱。

    hive-version

    Hive Metastore版本號。

    Flink僅支持Hive 2.0.0~2.3.9,3.1.0 ~ 3.1.3版本。在創建Hive Catalog時,hive-version取值填寫詳情如下:

    • 對于Hive 2.0.x、2.1.x版本,hive-version需要指定為2.2.0。

    • 對于Hive 2.2.x、2.3.x、3.1.x版本,hive-version需要分別指定為2.2.0、2.3.6、3.1.2。

    default-database

    默認數據庫名稱。

    hive-conf-dir

    存放Hive配置文件的目錄。您需要提前手動創建hive-conf-dir的目錄,詳情請參見配置Hive元數據

    hadoop-conf-dir

    存放Hadoop依賴的目錄。您需要提前手動創建hadoop-conf-dir的目錄,詳情請參見配置Hive元數據

  4. 單擊確定。

  5. 在左側元數據區域,查看創建的Catalog。

SQL方式

  1. 查詢腳本文本編輯區域,輸入以下命令。

    CREATE CATALOG ${HMS Name} WITH (
        'type' = 'hive',
        'default-database' = 'default',
        'hive-version' = '<hive-version>',
        'hive-conf-dir' = '<hive-conf-dir>',
        'hadoop-conf-dir' = '<hadoop-conf-dir>'
    );

    參數

    說明

    ${HMS Name}

    Hive Catalog名稱。

    type

    Connector類型,固定值為hive。

    default-database

    默認數據庫名稱。

    hive-version

    Hive Metastore版本號。

    Flink僅支持Hive 2.0.0~2.3.9,3.1.0 ~ 3.1.3版本。在創建Hive Catalog時,hive-version取值填寫詳情如下:

    • 對于Hive 2.0.x、2.1.x版本,hive-version需要指定為2.2.0。

    • 對于Hive 2.2.x、2.3.x、3.1.x版本,hive-version需要分別指定為2.2.0、2.3.6、3.1.2。

    hive-conf-dir

    存放Hive配置文件的目錄。您需要提前手動創建hive-conf-dir的目錄,詳情請參見配置Hive元數據

    hadoop-conf-dir

    存放Hadoop依賴的目錄。您需要提前手動創建hadoop-conf-dir的目錄,詳情請參見配置Hive元數據

  2. 選中創建Catalog的代碼后,單擊左側代碼行數上的運行

    Hive Catalog配置完成后,您就可以在作業中引用Hive Catalog表信息,作為結果表和維表,無需聲明表的DDL。Hive Catalog表名稱格式為${hive-catalog-name}.${hive-db-name}.${hive-table-name}

    此外,如果您想停用Hive Catalog服務,詳情請參見刪除Hive Catalog

使用Hive Catalog

創建Hive表

UI方式

  1. 進入元數據管理頁面。

    1. 登錄實時計算控制臺,單擊目標工作空間操作列下的控制臺

    2. 單擊元數據管理

  2. 單擊目標Catalog名稱對應操作列的查看

  3. 單擊目標數據庫名稱對應操作列的查看

  4. 單擊創建表

  5. 使用內置連接器連接頁簽,選擇連接器后,單擊下一步

  6. 填寫建表語句并配置相關參數信息。代碼示例如下。

    CREATE TABLE `${catalog_name}`.`${db_name}`.`${table_name}` (
      id INT,
      name STRING
    ) WITH (
      'connector' = 'hive'
    );
  7. 單擊確定

SQL命令方式

  1. 查詢腳本文本編輯區域,輸入以下命令。

    CREATE TABLE `${catalog_name}`.`${db_name}`.`${table_name}` (
      id INT,
      name STRING
    ) WITH (
      'connector' = 'hive'
    );
  2. 選中建表語句,單擊左側代碼行數上的運行

image

示例如下:

-- 在Catalog flinkexporthive下的flinkhive數據庫中創建表格flink_hive_test。
CREATE TABLE `flinkexporthive`.`flinkhive`.`flink_hive_test` (
  id INT,
  name STRING
) WITH (
  'connector' = 'hive'
);

修改Hive表

查詢腳本文本編輯區域,輸入以下命令。

-- HIVE表增加字段。
ALTER TABLE `${catalog_name}`.`${db_name}`.`${table_name}` 
ADD column type-column;

-- HIVE表刪除字段。
ALTER TABLE `${catalog_name}`.`${db_name}`.`${table_name}` 
DROP column;

示例如下:

-- HIVE表增加字段color。
ALTER TABLE `flinkexporthive`.`flinkhive`.`flink_hive_test` 
ADD color STRING;

-- HIVE表刪除字段color。
ALTER TABLE `flinkexporthive`.`flinkhive`.`flink_hive_test` 
DROP color;

從Hive表中讀取數據

INSERT INTO ${other_sink_table}
SELECT ...
FROM `${catalog_name}`.`${db_name}`.`${table_name}`;

寫入結果數據至Hive表

INSERT INTO `${catalog_name}`.`${db_name}`.`${table_name}`
SELECT ... 
FROM ${other_source_table};

刪除Hive表

UI方式

  1. 進入元數據管理頁面。

    1. 登錄實時計算控制臺,單擊目標工作空間操作列下的控制臺

    2. 單擊元數據管理

  2. 元數據列表中依次單擊Catalog名稱、數據庫名稱、表名稱。

  3. 在表詳情頁面,單擊刪除表

  4. 在刪除對話框中,單擊確定

SQL命令方式

查詢腳本文本編輯區域,輸入以下命令。

-- 刪除HIVE表。
DROP TABLE `${catalog_name}`.`${db_name}`.`${table_name}`;

示例如下:

-- 刪除HIVE表。
DROP TABLE `flinkexporthive`.`flinkhive`.`flink_hive_test`;

查看Hive Catalog

  1. 進入元數據管理頁面。

    1. 登錄實時計算控制臺

    2. 單擊目標工作空間操作列下的控制臺

    3. 單擊元數據管理

  2. Catalog列表頁面,查看Catalog名稱類型

    說明

    如果您需要查看Catalog下的數據庫和表,請單擊操作列下的查看

刪除Hive Catalog

警告

刪除Hive Catalog不會影響已運行的作業,但對未上線或者需要暫停恢復的作業,均產生影響,請您謹慎操作。

UI方式

  1. 進入元數據管理頁面。

    1. 登錄實時計算控制臺,單擊目標工作空間操作列下的控制臺

    2. 單擊元數據管理

  2. Catalog列表頁面,單擊目標Catalog名稱對應操作列的刪除

  3. 在彈出的提示頁面中,單擊刪除

  4. 左側元數據區域下,查看目標Catalog是否已刪除。

SQL命令方式

  1. 查詢腳本文本編輯區域,輸入以下命令。

    DROP CATALOG ${HMS Name};

    其中,HMS Name為您要刪除的在Flink開發控制臺上顯示的Hive Catalog名稱。

  2. 選中刪除Catalog的命令,鼠標右鍵選擇運行

  3. 在左側元數據區域,查看目標Catalog是否已刪除。