All Products
Search
Document Center

Realtime Compute for Apache Flink:Mengelola katalog Hive

Last Updated:Mar 26, 2026

Katalog Hive menghubungkan Realtime Compute for Apache Flink ke metastore Hive atau Alibaba Cloud Data Lake Formation (DLF) Anda, sehingga Anda dapat melakukan kueri dan menulis tabel Hive tanpa perlu mendeklarasikan pernyataan DDL untuk setiap tabel. Tabel yang terdaftar dalam katalog Hive tersedia sebagai tabel sumber, tabel hasil, atau tabel dimensi dalam penerapan streaming maupun batch.

Topik ini mencakup:

Prasyarat

Sebelum memulai, pastikan Anda telah:

Jika Anda menggunakan metastore Hive:

  • Layanan metastore Hive sedang berjalan. Untuk menjalankannya, eksekusi hive --service metastore. Untuk memverifikasi bahwa layanan tersebut mendengarkan pada port default (9083), jalankan netstat -ln | grep 9083. Jika Anda mengonfigurasi port berbeda di hive-site.xml, ganti 9083 dengan port tersebut.

  • Daftar putih dikonfigurasi untuk layanan metastore Hive, dengan Blok CIDR dari Realtime Compute for Apache Flink ditambahkan. Untuk langkah-langkahnya, lihat Konfigurasikan daftar putih dan Tambahkan aturan security group.

Jika Anda menggunakan Alibaba Cloud DLF:

  • DLF telah diaktifkan di akun Alibaba Cloud Anda.

Batasan

BatasanDetail
Jenis metastore yang didukungMetastore Hive yang dikelola sendiri
Versi Hive yang didukung2.0.0–2.3.9 dan 3.1.0–3.1.3
Versi Hive lama (1.X, 2.1.X, 2.2.X)Tidak didukung di Apache Flink 1.16 atau versi lebih baru; memerlukan Ververica Runtime (VVR) 6.X
Tabel non-Hive dalam katalog berbasis DLFMemerlukan VVR 8.0.6 atau versi lebih baru
Menulis ke OSS-HDFS melalui katalog HiveMemerlukan VVR 8.0.6 atau versi lebih baru

Konfigurasikan metadata Hive

Sebelum membuat katalog Hive, hubungkan kluster Hadoop Anda ke virtual private cloud (VPC) tempat Realtime Compute for Apache Flink berjalan, lalu unggah file konfigurasi Anda ke Object Storage Service (OSS).

Langkah 1: Hubungkan kluster Hadoop ke VPC

Gunakan Alibaba Cloud DNS PrivateZone untuk menyelesaikan hostname Hadoop di dalam VPC. Untuk instruksi penyiapan, lihat Resolver.

Langkah 2: Konfigurasikan metastore di hive-site.xml

Pilih jenis metastore yang sesuai dengan pengaturan Anda.

Metastore Hive

Verifikasi bahwa hive.metastore.uris di hive-site.xml mengarah ke alamat IP internal atau publik host Hive Anda:

<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>
Jika Anda mengatur hive.metastore.uris ke hostname alih-alih alamat IP, konfigurasikan Alibaba Cloud DNS PrivateZone untuk menyelesaikannya. Tanpa resolusi DNS, Ververica Platform (VVP) akan mengembalikan UnknownHostException saat menghubungkan ke metastore. Lihat Tambahkan rekaman DNS ke zona privat.

Alibaba Cloud DLF

Penting

Jika hive-site.xml berisi entri dlf.catalog.akMode, hapus entri tersebut sebelum melanjutkan. Jika dibiarkan, katalog Hive tidak dapat mengakses DLF.

Tambahkan properti berikut ke hive-site.xml:

<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>
ParameterWajibDeskripsi
dlf.catalog.uidYaID akun Alibaba Cloud Anda. Temukan di halaman Pengaturan Keamanan.
dlf.catalog.endpointYaTitik akhir layanan DLF. Gunakan titik akhir VPC untuk wilayah Anda, misalnya dlf-vpc.cn-hangzhou.aliyuncs.com. Untuk semua titik akhir, lihat Wilayah dan titik akhir yang didukung. Untuk akses lintas-VPC, lihat Bagaimana Realtime Compute for Apache Flink mengakses layanan lintas VPC?
dlf.catalog.regionYaID wilayah tempat DLF diaktifkan. Harus sesuai dengan wilayah dlf.catalog.endpoint. Lihat Wilayah dan titik akhir yang didukung.
dlf.catalog.accessKeyIdYaID AccessKey akun Alibaba Cloud Anda. Lihat Dapatkan Pasangan Kunci Akses.
dlf.catalog.accessKeySecretYaRahasia AccessKey akun Alibaba Cloud Anda. Lihat Dapatkan Pasangan Kunci Akses.

Langkah 3: Konfigurasikan penyimpanan tabel di hive-site.xml

Katalog Hive mendukung dua backend penyimpanan untuk data tabel: OSS dan OSS-HDFS.

OSS

Tambahkan properti berikut ke 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>
ParameterWajibDeskripsi
hive.metastore.warehouse.dirYaDirektori tempat data tabel disimpan.
fs.oss.endpointYaTitik akhir OSS. Lihat Wilayah dan titik akhir.
fs.oss.accessKeyIdYaID AccessKey. Lihat Dapatkan Pasangan Kunci Akses.
fs.oss.accessKeySecretYaRahasia AccessKey. Lihat Dapatkan Pasangan Kunci Akses.
fs.defaultFSYaSistem file default untuk data tabel. Atur ke titik akhir HDFS bucket target, misalnya oss://oss-hdfs-bucket.cn-hangzhou.oss-dls.aliyuncs.com/.

OSS-HDFS

  1. Tambahkan properti berikut ke hive-site.xml:

    ParameterWajibDeskripsi
    hive.metastore.warehouse.dirYaDirektori tempat data tabel disimpan.
    fs.oss.endpointYaTitik akhir OSS. Lihat Wilayah dan titik akhir.
    fs.oss.accessKeyIdYaID AccessKey. Lihat Dapatkan Pasangan Kunci Akses.
    fs.oss.accessKeySecretYaRahasia AccessKey. Lihat Dapatkan Pasangan Kunci Akses.
    fs.defaultFSYaSistem file default untuk data tabel. Atur ke titik akhir HDFS bucket target, misalnya oss://oss-hdfs-bucket.cn-hangzhou.oss-dls.aliyuncs.com/.
    <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>
  2. (Opsional) Jika Anda berencana membaca tabel Hive berformat Parquet yang disimpan di OSS-HDFS, tambahkan konfigurasi berikut ke 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}

    Untuk detail parameter, lihat Tulis data ke OSS-HDFS.

Jika data Anda sudah disimpan di Realtime Compute for Apache Flink, lewati Langkah 2–3 dan langsung ke Buat katalog Hive.

Langkah 4: Unggah file konfigurasi ke OSS

  1. Login ke Konsol OSS dan klik Buckets di panel navigasi kiri.

  2. Klik nama bucket yang digunakan oleh ruang kerja Realtime Compute for Apache Flink Anda.

  3. Buat folder ${hms} di path oss://${bucket}/artifacts/namespaces/${ns}/. Untuk instruksinya, lihat Buat direktori.

    Realtime Compute for Apache Flink secara otomatis membuat direktori /artifacts/namespaces/${ns}/ saat ruang kerja disediakan. Jika direktori tersebut tidak muncul di Konsol OSS, unggah file apa pun di halaman Artifacts di Konsol pengembangan untuk memicu pembuatannya.
    VariabelDeskripsi
    ${bucket}Bucket yang digunakan oleh ruang kerja Realtime Compute for Apache Flink Anda
    ${ns}Nama ruang kerja tempat Anda membuat katalog Hive
    ${hms}Nama folder. Gunakan nama yang sama dengan katalog Hive yang akan Anda buat
  4. Di dalam oss://${bucket}/artifacts/namespaces/${ns}/${hms}/, buat dua subdirektori: Setelah membuat kedua direktori, buka Files > Projects di Konsol OSS untuk memverifikasi struktur dan menyalin URL OSS.

    • hive-conf-dir/ — menyimpan hive-site.xml

    • hadoop-conf-dir/ — menyimpan file konfigurasi Hadoop

  5. Unggah hive-site.xml ke hive-conf-dir/. Lihat Unggah objek.

  6. Unggah file-file berikut ke hadoop-conf-dir/. Lihat Unggah objek.

    • hive-site.xml

    • core-site.xml

    • hdfs-site.xml

    • mapred-site.xml

    • File lain yang diperlukan, seperti paket terkompresi yang digunakan oleh penerapan Hive

Buat katalog Hive

Setelah mengonfigurasi metadata Hive, buat katalog Hive dari Konsol atau dengan menjalankan pernyataan SQL. Metode Konsol direkomendasikan.

Penting

Setelah katalog Hive dibuat, Anda tidak dapat mengubah konfigurasinya. Untuk mengubah parameter apa pun, hapus katalog tersebut dan buat kembali.

Buat katalog Hive dari Konsol

  1. Login ke Konsol Realtime Compute for Apache Flink. Temukan ruang kerja dan klik Console di kolom Actions.

  2. Klik Catalogs.

  3. Di halaman Catalog List, klik Create Catalog. Di kotak dialog, buka tab Built-in Catalog, pilih Hive di langkah Choose Catalog Type, lalu klik Next.

  4. Di langkah Configure Catalog, atur parameter berikut:

    ParameterWajibDeskripsi
    catalog nameYaNama katalog Hive
    hive-versionYaVersi metastore Hive. Didukung: 2.0.0–2.3.9, 3.1.0–3.1.3. Petakan versi yang terinstal: 2.0.X atau 2.1.X → 2.2.0; 2.2.X → 2.2.0; 2.3.X → 2.3.6; 3.1.X → 3.1.2
    default-databaseYaNama database default
    hive-conf-dirYaPath OSS ke direktori yang berisi hive-site.xml, dibuat di Langkah 4. Untuk penyimpanan yang dikelola sepenuhnya, unggah file sesuai permintaan
    hadoop-conf-dirYaPath OSS ke direktori yang berisi file konfigurasi Hadoop, dibuat di Langkah 4. Untuk penyimpanan yang dikelola sepenuhnya, unggah file sesuai permintaan
    hive-kerberosTidakAktifkan autentikasi Kerberos dan asosiasikan kluster Hive yang telah terdaftar dengan Kerberos serta principal Kerberos. Lihat Daftarkan kluster Hive yang telah di-Kerberos
  5. Klik Confirm.

  6. Di panel Catalogs di sisi kiri halaman Catalog List, verifikasi bahwa katalog baru muncul.

Buat katalog Hive dengan menjalankan pernyataan SQL

  1. Di halaman Scripts, jalankan pernyataan berikut:

    ParameterWajibDeskripsi
    ${HMS Name}YaNama katalog Hive
    typeYaJenis konektor. Atur ke hive
    default-databaseYaNama database default
    hive-versionYaVersi metastore Hive. Didukung: 2.0.0–2.3.9, 3.1.0–3.1.3. Petakan versi yang terinstal: 2.0.X atau 2.1.X → 2.2.0; 2.2.X → 2.2.0; 2.3.X → 2.3.6; 3.1.X → 3.1.2
    hive-conf-dirYaPath OSS ke direktori yang berisi hive-site.xml. Lihat Konfigurasikan metadata Hive
    hadoop-conf-dirYaPath OSS ke direktori yang berisi file konfigurasi Hadoop. Lihat Konfigurasikan metadata Hive
    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>'
    );
  2. Pilih pernyataan CREATE CATALOG dan klik Run.

Setelah katalog dibuat, tabel di dalamnya tersedia di draft sebagai tabel hasil atau tabel dimensi tanpa deklarasi DDL. Nama tabel menggunakan format ${hive-catalog-name}.${hive-db-name}.${hive-table-name}.

Gunakan katalog Hive

Semua contoh di bawah menggunakan katalog bernama flinkexporthive dan database bernama flinkhive.

Buat tabel Hive

Metode UI

Dari Konsol:

  1. Login ke Konsol Realtime Compute for Apache Flink, temukan ruang kerja, lalu klik Console di kolom Actions.

  2. Klik Catalogs.

  3. Di halaman Catalog List, temukan katalog dan klik View di kolom Actions.

  4. Temukan database target dan klik View di kolom Actions.

  5. Klik Create Table.

  6. Di tab Built-in pada kotak dialog Create Table, pilih jenis tabel dari daftar drop-down Connection Type, pilih jenis konektor, lalu klik Next.

  7. Masukkan pernyataan pembuatan tabel dan konfigurasikan parameter:

    CREATE TABLE `${catalog_name}`.`${db_name}`.`${table_name}` (
      id INT,
      name STRING
    ) WITH (
      'connector' = 'hive'
    );
  8. Klik OK.

Metode perintah SQL

Dengan menjalankan pernyataan SQL:

Di halaman Scripts, jalankan pernyataan CREATE TABLE, lalu pilih dan klik Run.

image

Contoh — buat flink_hive_test di database flinkhive di bawah flinkexporthive:

-- Buat tabel bernama flink_hive_test di database flinkhive di bawah katalog flinkexporthive.
CREATE TABLE `flinkexporthive`.`flinkhive`.`flink_hive_test` (
  id INT,
  name STRING
) WITH (
  'connector' = 'hive'
);

Ubah tabel Hive

Di halaman Scripts, jalankan pernyataan ALTER TABLE:

-- Tambahkan kolom ke tabel Hive.
ALTER TABLE `${catalog_name}`.`${db_name}`.`${table_name}`
ADD column type-column;

-- Hapus kolom dari tabel Hive.
ALTER TABLE `${catalog_name}`.`${db_name}`.`${table_name}`
DROP column;

Contoh — tambahkan lalu hapus kolom color dari flink_hive_test:

-- Tambahkan bidang color ke tabel Hive.
ALTER TABLE `flinkexporthive`.`flinkhive`.`flink_hive_test`
ADD color STRING;

-- Hapus bidang color dari tabel Hive.
ALTER TABLE `flinkexporthive`.`flinkhive`.`flink_hive_test`
DROP color;

Baca data dari tabel Hive

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

Tulis data ke tabel Hive

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

Hapus tabel Hive

Metode UI

Dari Konsol:

  1. Login ke Konsol Realtime Compute for Apache Flink, temukan ruang kerja, lalu klik Console di kolom Actions.

  2. Klik Catalogs.

  3. Di panel Catalogs, navigasi ke tabel target di bawah database dan katalog target.

  4. Di halaman detail tabel, klik Delete di kolom Actions.

  5. Di dialog konfirmasi, klik OK.

Metode perintah SQL

Dengan menjalankan pernyataan SQL:

Di halaman Scripts, jalankan:

-- Hapus tabel Hive.
DROP TABLE `${catalog_name}`.`${db_name}`.`${table_name}`;

Contoh:

-- Hapus tabel Hive.
DROP TABLE `flinkexporthive`.`flinkhive`.`flink_hive_test`;

Lihat katalog Hive

  1. Login ke Konsol Realtime Compute for Apache Flink, temukan ruang kerja, lalu klik Console di kolom Actions.

  2. Klik Catalogs.

  3. Di halaman Catalog List, periksa kolom Name dan Type untuk katalog tersebut.

Untuk melihat database dan tabel dalam katalog, klik View di kolom Actions.

Hapus katalog Hive

Peringatan

Menghapus katalog Hive tidak memengaruhi penerapan yang sedang berjalan. Namun, hal ini memengaruhi draft yang belum dipublikasikan dan penerapan yang perlu dihentikan sementara lalu dilanjutkan. Hapus katalog hanya jika benar-benar diperlukan.

Hapus katalog Hive dari Konsol

  1. Login ke Konsol Realtime Compute for Apache Flink, temukan ruang kerja, lalu klik Console di kolom Actions.

  2. Klik Catalogs.

  3. Di halaman Catalog List, temukan katalog dan klik Delete di kolom Actions.

  4. Di dialog konfirmasi, klik Delete.

  5. Verifikasi bahwa katalog tidak lagi muncul di panel Catalogs.

Hapus katalog Hive dengan menjalankan pernyataan SQL

  1. Di halaman Scripts, jalankan:

    DROP CATALOG ${HMS Name};

    ${HMS Name} adalah nama katalog yang ditampilkan di Konsol pengembangan Realtime Compute for Apache Flink.

  2. Klik kanan pernyataan tersebut dan pilih Run dari menu pintasan.

  3. Verifikasi bahwa katalog tidak lagi muncul di panel Catalogs.