全部产品
Search
文档中心

E-MapReduce:Menghubungkan ke layanan Hive Metastore eksternal

更新时间:Nov 10, 2025

E-MapReduce (EMR) Serverless Spark mendukung koneksi ke layanan Hive Metastore eksternal untuk mengakses data yang disimpan di Hive Metastore. Topik ini menjelaskan cara mengonfigurasi koneksi tersebut di EMR Serverless Spark guna mengelola dan menggunakan sumber daya data dalam lingkungan operasi Anda secara efisien.

Prasyarat

Ruang kerja dan sesi SQL telah dibuat. Untuk informasi selengkapnya, lihat Buat ruang kerja dan Kelola sesi SQL.

Batasan

  • Anda harus me-restart sesi yang sudah ada di ruang kerja agar dapat menggunakan Hive Metastore.

  • Setelah menetapkan Hive Metastore sebagai katalog data default, tugas alur kerja Anda akan menggunakannya secara default.

Prosedur

Langkah 1: Siapkan layanan Hive Metastore

Catatan

Topik ini menggunakan Hive Metastore dari EMR on ECS sebagai contoh layanan eksternal. Jika layanan Hive Metastore sudah tersedia di virtual private cloud (VPC) Anda, langkah ini dapat dilewati.

  1. Pada halaman EMR on ECS, buat kluster DataLake yang mencakup layanan Hive dengan Metadata diatur ke Built-in MySQL. Untuk informasi selengkapnya, lihat Buat kluster.

  2. Login ke node master kluster menggunakan Secure Shell (SSH). Untuk informasi selengkapnya, lihat Login ke kluster.

  3. Jalankan perintah berikut untuk masuk ke baris perintah Hive.

    hive
  4. Jalankan perintah berikut untuk membuat tabel bernama `dw_users` yang mengarah ke Object Storage Service (OSS), lalu tulis data ke dalam tabel tersebut.

    CREATE TABLE `dw_users`(
      `name` string)
    LOCATION
      'oss://<yourBucket>/path/to/file';
    
    INSERT INTO dw_users select 'Bob';

Langkah 2: Tambahkan koneksi jaringan

  1. Buka halaman Konektivitas Jaringan.

    1. Login ke Konsol EMR.

    2. Pada panel navigasi sebelah kiri, pilih EMR Serverless > Spark.

    3. Pada halaman Spark, klik ruang kerja yang dituju.

    4. Pada halaman EMR Serverless Spark, klik Network Connectivity pada panel navigasi sebelah kiri.

  2. Pada halaman Network Connectivity, klik Add Network Connection.

  3. Pada kotak dialog Add Network Connection, konfigurasikan parameter berikut lalu klik OK.

    Parameter

    Deskripsi

    Connection Name

    Masukkan nama untuk koneksi baru.

    VPC

    Pilih VPC yang sama dengan kluster EMR.

    VSwitch

    Pilih vSwitch yang berada di VPC yang sama dengan kluster EMR.

    Koneksi jaringan berhasil dibuat ketika Status berubah menjadi Successful.

    image

Langkah 3: Buka port layanan Hive Metastore

  1. Dapatkan blok CIDR dari vSwitch yang ditentukan dalam koneksi jaringan.

    Login ke Konsol VPC atau dan buka halaman VSwitches untuk menemukan blok CIDR vSwitch tersebut.

    image

  2. Tambahkan aturan grup keamanan.

    1. Login ke Konsol EMR on ECS.

    2. Pada halaman EMR on ECS, klik ID kluster yang dituju.

    3. Pada halaman Basic Information, klik tautan untuk Cluster Security Group.

    4. Pada halaman Security Groups, klik Add Rule. Atur Source dan Port, lalu klik OK.

      Parameter

      Deskripsi

      Port

      Masukkan port 9083.

      Source

      Masukkan blok CIDR vSwitch yang Anda peroleh pada langkah sebelumnya.

      Penting

      Untuk mencegah risiko keamanan akibat serangan eksternal, jangan mengatur Source menjadi 0.0.0.0/0.

Langkah 4: Hubungkan ke Hive Metastore

  1. Pada halaman EMR Serverless Spark, pada panel navigasi sebelah kiri, klik Data Catalog.

  2. Pada halaman Data Catalog, klik Add Data Catalog.

  3. Pada kotak dialog, klik External Hive Metastore. Konfigurasikan parameter berikut lalu klik OK.image

    Parameter

    Deskripsi

    Network Connectivity

    Pilih koneksi jaringan yang Anda tambahkan pada Langkah 2.

    Metastore Endpoint

    URI Hive Metastore. Formatnya adalah thrift://<alamat IP Hive metastore>:9083.

    <alamat IP Hive metastore> adalah alamat IP internal layanan HMS. Dalam contoh ini, alamat tersebut merupakan alamat IP internal node master kluster EMR. Anda dapat menemukannya pada halaman Node Management kluster EMR.

    Catatan

    Jika ketersediaan tinggi (HA) diaktifkan untuk HMS, Anda dapat memasukkan titik akhir beberapa node. Pisahkan URI dengan koma (,), misalnya: thrift://<alamat IP Hive metastore 1>:9083,thrift://<alamat IP Hive metastore 2>:9083.

    Kerberos Keytab File Path

    Path menuju file Kerberos keytab.

    Kerberos Principal

    Nama principal yang terdapat dalam file keytab. Principal ini digunakan untuk verifikasi identitas dengan layanan Kerberos. Anda dapat menjalankan perintah klist -kt <file keytab> untuk melihat nama principal dalam file keytab yang dituju.

Langkah 5: Gunakan Hive Metastore

  1. Pada halaman Data Catalog, temukan hive_metastore dan klik Set As Default pada kolom Tindakan agar menjadi katalog data default untuk ruang kerja.

    image

  2. Restart sesi SQL.

    Jika sesi SQL sudah ada di ruang kerja Anda, hentikan lalu restart sesi tersebut agar pengaturan hive_metastore berlaku.

  3. Kueri data dari tabel di Hive Metastore menggunakan SQL Developer.

    1. Buat pekerjaan SQL baru. Untuk informasi selengkapnya, lihat Kembangkan pekerjaan SparkSQL.

    2. Jalankan perintah berikut untuk mengkueri tabel `dw_users`.

      SELECT * FROM dw_users;

      image

FAQ

Bagaimana cara mengakses data HDFS?

Metode konfigurasi bergantung pada apakah kluster Hadoop Distributed File System (HDFS) berada dalam mode ketersediaan tinggi (HA).

  • Mengakses path HDFS tanpa HA

    Jika location tabel mengarah ke path HDFS di kluster yang tidak mengaktifkan HA, pastikan nama domain dalam location dapat diakses. Secara default, master-1-1.<cluster-id>.<region>.emr.aliyuncs.com dapat diakses langsung. Untuk nama domain lainnya, tambahkan pemetaan. Untuk informasi selengkapnya, lihat Kelola nama domain.

  • Mengakses path HDFS dengan HA

    Jika location tabel mengarah ke path HDFS di kluster yang mengaktifkan HA, konfigurasikan terlebih dahulu pemetaan nama domain. Kemudian, buat file konfigurasi bernama hdfs-site.xml di Kelola File Konfigurasi Kustom dan simpan ke path `/etc/spark/conf`. Langkah ini memastikan bahwa Java Runtime atau Fusion Runtime dapat mengakses data tersebut. Kode berikut menyediakan contoh file. Konten lengkapnya harus didasarkan pada file hdfs-site.xml di kluster EMR on ECS Anda.

    <?xml version="1.0"?>
    <configuration>
      <property>
        <name>dfs.nameservices</name>
        <value>hdfs-cluster</value>
      </property>
      <property>
        <name>dfs.ha.namenodes.hdfs-cluster</name>
        <value>nn1,nn2,nn3</value>
      </property>
      <property>
        <name>dfs.namenode.rpc-address.hdfs-cluster.nn1</name>
        <value>master-1-1.<cluster-id>.<region-id>.emr.aliyuncs.com:<port></value>
      </property>
      <property>
        <name>dfs.namenode.rpc-address.hdfs-cluster.nn2</name>
        <value>master-1-2.<cluster-id>.<region-id>.emr.aliyuncs.com:<port></value>
      </property>
      <property>
        <name>dfs.namenode.rpc-address.hdfs-cluster.nn3</name>
        <value>master-1-3.<cluster-id>.<region-id>.emr.aliyuncs.com:<port></value>
      </property>
      <property>
        <name>dfs.client.failover.proxy.provider.hdfs-cluster</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
      </property>
    </configuration>
  • (Opsional) Konfigurasikan akses ke path HDFS yang diaktifkan Kerberos

    Jika suatu pekerjaan perlu mengakses path HDFS yang diaktifkan Kerberos, tambahkan parameter spark.kerberos.access.hadoopFileSystems ke konfigurasi Spark. Nilai parameter ini harus didasarkan pada konfigurasi `fs.defaultFS` di kluster HDFS. Sebagai contoh, nilai default untuk kluster EMR on ECS dengan HA adalah hdfs://hdfs-cluster.