すべてのプロダクト
Search
ドキュメントセンター

Realtime Compute for Apache Flink:Hive カタログの管理

最終更新日:Aug 07, 2026

Hive カタログを設定すると、Realtime Compute for Apache Flink の開発コンソールで Hive テーブルを手動で登録する必要がなく、Hive メタデータを直接読み取ることができます。これにより、ジョブ開発効率が向上し、データ精度が確保されます。このトピックでは、Hive メタデータの設定方法、および Hive カタログの作成と使用方法について説明します。

背景

Realtime Compute for Apache Flink の開発コンソールで Hive カタログを設定するには、まず Hive カタログ設定ファイルと Hadoop 依存関係を Object Storage Service (OSS) コンソールの指定されたディレクトリに保存します。Hive カタログを設定すると、DML ステートメントを使用してビジネスロジックを作成し、開発コンソールで Hive テーブルメタデータを直接取得できるため、DDL ステートメントを使用してテーブルを宣言する必要はありません。Hive カタログテーブルは、ストリーミングデプロイとバッチデプロイの両方で、ソーステーブルまたは結果テーブルとして使用できます。

Realtime Compute for Apache Flink は、Hive カタログのメタデータセンターとして、Hive メタストアまたは Alibaba Cloud Data Lake Formation (DLF) のいずれかをサポートしています。このトピックでは、Hive カタログを管理するための以下の操作について説明します。

前提条件

Hive カタログのメタデータ管理センターとして Hive メタストアまたは Alibaba Cloud Data Lake Formation (DLF) を使用するには、次の設定を完了してください:

  • Hive カタログのメタデータ管理センターとして Hive メタストアを使用

    要件

    説明

    Hive メタストアサービスを有効にします。

    次のコマンドを使用します:

    • Hive メタストアサービスを起動するには: hive --service metastore

    • Hive メタストアサービスが有効になっているかどうかを確認するには: netstat -ln | grep 9083

      Hive メタストアのデフォルトのポート番号は 9083 です。hive-site.xml ファイルで別のポート番号を設定している場合は、9083 を正しいポート番号に置き換えてください。

    Flink からのアクセスを許可するため、Hive メタストアにホワイトリストを設定してください。

    Flink の CIDR ブロックを取得するには、「ホワイトリストの設定」をご参照ください。Hive メタストアのホワイトリストを設定するには、「セキュリティグループルールの追加」をご参照ください。

  • Hive カタログのメタデータ管理センターとして DLF を使用

    DLF をアクティブ化してください。まだアクティブ化していない場合は、

制限事項

  • セルフマネージドの Hive メタストアのみがサポートされます。

  • Apache Flink 1.16 以降ではこれらのバージョンのサポートが非推奨となっているため、Hive 1.x、2.1.x、2.2.x は、Ververica Runtime (VVR) 6.x のみでサポートされます。

  • Hive カタログがメタストアとして Data Lake Formation (DLF) を使用する場合、Hive 以外のテーブルの作成は、Ververica Runtime (VVR) 8.0.6 以降でのみサポートされます。

  • OSS-HDFS へのデータ書き込みは、Ververica Runtime (VVR) 8.0.6 以降でのみサポートされます。

Hive メタデータの設定

  1. Hadoop クラスターの Virtual Private Cloud (VPC) を Realtime Compute for Apache Flink の VPC に接続します。

    Alibaba Cloud DNS PrivateZone を使用して VPC を接続します。詳細については、「リゾルバー」をご参照ください。ネットワークが接続されると、Realtime Compute for Apache Flink は Hadoop クラスターの設定ファイルを使用してアクセスします。

  2. Hive カタログは、メタデータ管理に Hive Metastore または Data Lake Formation (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。メタストアクライアントがリモートメタストアに接続するために使用します。</description>
     </property>

    上記の例では、xx.yy.zz.mm は Hive Metastore の内部 IP アドレスまたはパブリック IP アドレスです。

    説明

    hive.metastore.uris にホスト名を設定する場合は、ドメイン名解決サービスを設定する必要があります。設定しない場合、Flink 開発コンソールが Hive にリモートアクセスする際に、hive.metastore.uris パラメーターの値を解決できず、UnknownHostException エラーが発生します。ドメイン名解決サービスの設定方法の詳細については、「PrivateZone レコードの追加」をご参照ください。

    Data Lake Formation (DLF)

    Hive カタログが DLF にアクセスできるようにするには、hive-site.xml 設定ファイルに以下のプロパティを追加します。

    説明

    hive-site.xml ファイルに dlf.catalog.akMode プロパティが含まれている場合は、削除する必要があります。削除しない場合、Hive カタログは 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>

    パラメーター

    説明

    備考

    dlf.catalog.uid

    Alibaba Cloud アカウント ID。

    アカウント情報については、ユーザー情報ページにアクセスします。

    dlf.catalog.endpoint

    DLF サービスエンドポイント。

    詳細については、「リージョンとエンドポイント」をご参照ください。

    説明
    • dlf.catalog.endpoint パラメーターには、DLF の VPC エンドポイントを設定することを推奨します。例えば、選択したリージョンが中国 (杭州) の場合、dlf.catalog.endpoint パラメーターを dlf-vpc.cn-hangzhou.aliyuncs.com に設定します。

    • VPC 間で DLF にアクセスするには、「VPC間でサービスにアクセスする方法」をご参照ください。

    dlf.catalog.region

    DLF サービスのリージョン。

    詳細については、「リージョンとエンドポイント」をご参照ください。

    説明

    このリージョンが dlf.catalog.endpoint パラメーターで指定されたリージョンと一致していることを確認してください。

    dlf.catalog.accessKeyId

    Alibaba Cloud AccessKey ID。

    詳細については、「AccessKeyペアの取得」をご参照ください。

    dlf.catalog.accessKeySecret

    Alibaba Cloud AccessKey シークレット。

    詳細については、「AccessKeyペアの取得」をご参照ください。

  3. Hive カタログは、Object Storage Service (OSS) または OSS-HDFS サービスにテーブルを保存できます。以下のセクションでは、必要な設定について説明します。

    OSS

    Hive カタログが OSS にアクセスできるようにするには、hive-site.xml 設定ファイルに以下のプロパティを追加します。

    <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.metastore.warehouse.dir

    テーブルデータのストレージパス。

    fs.oss.endpoint

    Object Storage Service (OSS) エンドポイント。

    詳細については、「リージョンとエンドポイント」をご参照ください。

    fs.oss.accessKeyId

    Alibaba Cloud AccessKey ID。

    詳細については、「AccessKeyペアの取得」をご参照ください。

    fs.oss.accessKeySecret

    Alibaba Cloud AccessKey シークレット。

    詳細については、「AccessKeyペアの取得」をご参照ください。

    fs.defaultFS

    テーブルデータのデフォルトのファイルシステム。

    OSS バケットをデフォルトのファイルシステムとして指定します。例: oss://your-bucket-name

    OSS-HDFS

    1. Hive カタログが OSS-HDFS サービスにアクセスできるようにするには、hive-site.xml 設定ファイルに以下のプロパティを追加します。

      <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>

      パラメーター

      説明

      備考

      hive.metastore.warehouse.dir

      テーブルデータのストレージパス。

      fs.oss.endpoint

      Object Storage Service (OSS) エンドポイント。

      詳細については、「リージョンとエンドポイント」をご参照ください。

      fs.oss.accessKeyId

      Alibaba Cloud AccessKey ID。

      詳細については、「AccessKeyペアの取得」をご参照ください。

      fs.oss.accessKeySecret

      Alibaba Cloud AccessKey シークレット。

      詳細については、「AccessKeyペアの取得」をご参照ください。

      fs.defaultFS

      テーブルデータのデフォルトのファイルシステム。

      OSS バケットをデフォルトのファイルシステムとして指定します。例: oss://your-bucket-name

    2. (オプション): OSS-HDFS サービスから Parquet 形式の Hive テーブルを読み取るには、Realtime Compute for Apache Flink 設定ファイルに以下のパラメーターを追加します。

      fs.oss.jindo.accessKeyId: ${YOUR_ACCESS_KEY_ID}
      fs.oss.jindo.accessKeySecret: ${YOUR_ACCESS_KEY_SECRET}
      fs.oss.jindo.endpoint: ${YOUR_JINODO_ENDPOINT}
      fs.oss.jindo.buckets: ${YOUR_JINDO_BUCKETS}

      パラメーターの詳細については、「OSS-HDFSへのデータ書き込み」をご参照ください。

    説明

    Realtime Compute for Apache Flink のフルマネージドストレージ機能を使用する場合は、以下の手順を実行する必要はありません。「Hive カタログの作成」に直接進むことができます。

  4. OSS コンソールで、ディレクトリを作成し、Hive 設定ファイルと Hadoop 依存関係をターゲットパスにアップロードします。

    1. OSS コンソールにログオンします。

    2. 左側のナビゲーションペインで、[Buckets] をクリックします。

    3. ターゲットバケットの名前をクリックします。

    4. oss://${bucket}/artifacts/namespaces/${ns}/ パスで、${hms} という名前のディレクトリを作成します。

      OSS コンソールでディレクトリを作成する方法の詳細については、「ディレクトリの作成」をご参照ください。以下の表でパスの変数について説明します。

      パラメーター

      説明

      ${bucket}

      Realtime Compute for Apache Flink で使用するバケットの名前。

      ${ns}

      Hive カタログを使用するワークスペース。

      ${hms}

      作成する予定の Hive カタログと同じ名前を使用することを推奨します。

      説明

      ワークスペースをアクティブ化すると、Realtime Compute for Apache Flink は指定されたバケット内に /artifacts/namespaces/${ns}/ ディレクトリを自動的に作成し、JAR パッケージなどのデータを保存します。OSS コンソールでこのディレクトリが見つからない場合は、開発コンソールの [アーティファクト] ページに移動し、ファイルをアップロードしてディレクトリの作成をトリガーします。

    5. oss://${bucket}/artifacts/namespaces/${ns}/${hms} パスで、hive-conf-dir と hadoop-conf-dir の 2 つのディレクトリを作成します。詳細については、「ディレクトリの作成」をご参照ください。

      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/ ディレクトリには、core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml を含む Hadoop 設定ファイルを保存します。

      ディレクトリを作成すると、[Files] ページでそれらを表示し、OSS URL をコピーできます。

    6. Hive 設定ファイル (hive-site.xml) を hive-conf-dir ディレクトリにアップロードします。詳細については、「オブジェクトのアップロード」をご参照ください。

    7. 以下の設定ファイルを hadoop-conf-dir ディレクトリにアップロードします。詳細については、「オブジェクトのアップロード」をご参照ください。

      • core-site.xml

      • hdfs-site.xml

      • mapred-site.xml

      • Hive ジョブで使用される圧縮パッケージなど、その他のファイル。

Hive カタログの作成

Hive メタデータを設定した後、Hive カタログを作成できます。カタログは、UI または SQL コマンドで作成できます。UI を使用することを推奨します。

UI

  1. [Catalogs] ページに移動します。

    1. Realtime Compute for Apache Flink コンソールにログインします。対象のワークスペースの [Actions] 列で、[Console] をクリックします。

    2. 左側のナビゲーションペインで、[Catalogs] をクリックします。

  2. [Create Catalog] をクリックします。表示されたページで [Hive] を選択し、[Next] をクリックします。

  3. パラメーターを設定します。

    重要

    カタログの作成後に設定パラメーターは変更できません。変更を加えるには、既存のカタログをドロップし、新しいカタログを作成する必要があります。

    パラメーター

    説明

    カタログ名

    Hive カタログの名前です。

    hive-version

    Hive メタストアのバージョンです。

    Realtime Compute for Apache Flink は、Hive バージョン 2.0.0 から 2.3.9 および 3.1.0 から 3.1.3 をサポートしています。Hive カタログを作成する際、hive-version パラメーターを次のように設定します。

    • Hive 2.0.x および 2.1.x の場合、このパラメーターを 2.2.0 に設定します。

    • Hive 2.2.x、2.3.x、および 3.1.x の場合、このパラメーターをそれぞれ 2.2.0、2.3.6、および 3.1.2 に設定します。

    default-database

    デフォルトデータベースの名前です。

    hive-conf-dir

    • OSS:Hive 設定ファイルが格納されるディレクトリです。事前に hive-conf-dir ディレクトリを作成する必要があります。詳細については、「Hive メタデータの設定」をご参照ください。

    • フルマネージドストレージ:コンソールの案内に従って対応するファイルをアップロードします。

    hadoop-conf-dir

    • OSS:Hadoop 依存関係が格納されるディレクトリです。事前に hadoop-conf-dir ディレクトリを作成する必要があります。詳細については、「Hive メタデータの設定」をご参照ください。

    • フルマネージドストレージ:コンソールの案内に従って対応するファイルをアップロードします。

    hive-kerberos

    Kerberos 認証を有効にします。登録済みの Kerberos クラスターとプリンシパルを設定する必要があります。Kerberos クラスターを登録していない場合は、「Kerberos 対応 Hive クラスターの登録」をご参照ください。

  4. [Confirm] をクリックします。

  5. 左側の [Catalogs] セクションで、作成したカタログを確認します。

SQL

  1. [Scripts] ページのエディターに、次のステートメントを入力します。

    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 カタログの名前です。

    type

    コネクタタイプ。値は hive にする必要があります。

    default-database

    デフォルトデータベースの名前です。

    hive-version

    Hive メタストアのバージョンです。

    Realtime Compute for Apache Flink は、Hive バージョン 2.0.0 から 2.3.9 および 3.1.0 から 3.1.3 をサポートしています。Hive カタログを作成する際、hive-version パラメーターを次のように設定します。

    • Hive 2.0.x および 2.1.x の場合、このパラメーターを 2.2.0 に設定します。

    • Hive 2.2.x、2.3.x、および 3.1.x の場合、このパラメーターをそれぞれ 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. CREATE CATALOG ステートメントを選択し、行番号の左にある [Run] をクリックします。

    Hive カタログを設定すると、DDL ステートメントで宣言することなく、そのテーブルをジョブの結果テーブルおよびディメンションテーブルとして参照できます。テーブル名は ${hive-catalog-name}.${hive-db-name}.${hive-table-name} 形式である必要があります。

    Hive カタログの使用を停止するには、「Hive カタログのドロップ」をご参照ください。

Hive カタログの使用

Hive テーブルの作成

UI

  1. [Catalogs] ページに移動します。

    1. Realtime Compute for Apache Flink コンソールにログインします。目的のワークスペースの [Actions] 列で、[Console] をクリックします。

    2. ナビゲーションペインで、[Catalogs] をクリックします。

  2. 目的のカタログを見つけ、[Actions] 列の [View] をクリックします。

  3. 目的のデータベースを見つけ、[Actions] 列の [View] をクリックします。

  4. [Create Table] をクリックします。

  5. [Built-in] タブで、コネクタを選択し、[Next] をクリックします。

  6. CREATE TABLE 文を入力し、パラメーターを設定します。

    CREATE TABLE `${catalog_name}`.`${db_name}`.`${table_name}` (
      id INT,
      name STRING
    ) WITH (
      'connector' = 'hive'
    );
  7. [OK] をクリックします。

SQL コマンド

  1. [Scripts] エディターで、次のコマンドを入力します。

    CREATE TABLE `${catalog_name}`.`${db_name}`.`${table_name}` (
      id INT,
      name STRING
    ) WITH (
      'connector' = 'hive'
    );
  2. 文を選択し、行番号の左側にある [Run] をクリックします。

例:

-- flinkexporthive カタログの flinkhive データベースに flink_hive_test テーブルを作成します。
CREATE TABLE `flinkexporthive`.`flinkhive`.`flink_hive_test` (
  id INT,
  name STRING
) WITH (
  'connector' = 'hive'
);

Hive テーブルの変更

[Scripts] エディターで、次のコマンドを入力します。

-- Hive テーブルに列を追加します。
ALTER TABLE `${catalog_name}`.`${db_name}`.`${table_name}` 
ADD [COLUMN] col_name col_type;
-- Hive テーブルから列をドロップします。
ALTER TABLE `${catalog_name}`.`${db_name}`.`${table_name}` 
DROP [COLUMN] col_name;

例:

-- Hive テーブルに color 列を追加します。
ALTER TABLE `flinkexporthive`.`flinkhive`.`flink_hive_test` 
ADD COLUMN color STRING;
-- Hive テーブルから color 列をドロップします。
ALTER TABLE `flinkexporthive`.`flinkhive`.`flink_hive_test` 
DROP COLUMN 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. [Catalogs] ページに移動します。

    1. Realtime Compute for Apache Flink コンソールにログインします。目的のワークスペースの [Actions] 列で、[Console] をクリックします。

    2. ナビゲーションペインで、[Catalogs] をクリックします。

  2. [Catalogs] ペインで、目的のカタログとデータベースを展開し、ドロップするテーブルをクリックします。

  3. テーブルの詳細ページで、[Delete Table] をクリックします。

  4. 確認ダイアログボックスで、[OK] をクリックします。

SQL コマンド

[Scripts] エディターで、次のコマンドを入力します。

-- Hive テーブルをドロップします。
DROP TABLE `${catalog_name}`.`${db_name}`.`${table_name}`;

例:

-- Hive テーブルをドロップします。
DROP TABLE `flinkexporthive`.`flinkhive`.`flink_hive_test`;

Hive カタログの表示

  1. 「カタログ」ページに移動します。

    1. Realtime Compute for Apache Flink コンソールにログインします。

    2. ターゲットワークスペースの [アクション] 列で、[コンソール] をクリックします。

    3. [カタログ] をクリックします。

  2. [カタログ一覧] ページで、[名前] 列と [タイプ] 列を確認します。

    説明

    カタログ内のデータベースとテーブルを表示するには、[アクション] 列の [表示] をクリックします。

Hive カタログの削除

警告

Hive カタログを削除しても、実行中のデプロイメントには影響しません。ただし、オフラインデプロイメントや、一時停止して再開する必要があるデプロイメントには影響します。慎重に操作してください。

UI

  1. [カタログリスト] ページに移動します。

    1. Realtime Compute for Apache Flink コンソールにログインし、ターゲットワークスペースの [操作] 列で、[コンソール] をクリックします。

    2. [カタログ] をクリックします。

  2. [カタログリスト] ページで、削除するカタログを見つけ、[操作] 列の [削除] をクリックします。

  3. 確認ダイアログボックスで、[削除] をクリックします。

  4. 左側の [カタログ] エリアで、カタログが削除されたことを確認します。

SQL コマンド

  1. スクリプト エディターで、次のコマンドを入力します。

    DROP CATALOG ${HMS Name};

    このコマンドでは、${HMS Name} は削除する Hive カタログの名前です。

  2. コマンドを選択して右クリックし、[実行] を選択します。

  3. 左側の [カタログ] エリアで、カタログが削除されたことを確認します。