All Products
Search
Document Center

E-MapReduce:Menetapkan konektivitas jaringan antara EMR Serverless Spark dan VPC lainnya

Last Updated:Mar 27, 2026

Konektivitas jaringan memungkinkan Anda menghubungkan ruang kerja EMR Serverless Spark ke virtual private cloud (VPC) Anda sehingga pekerjaan Spark dapat mengakses sumber data dan layanan di dalam VPC tersebut. Panduan ini menjelaskan cara menghubungkan pekerjaan Spark SQL dan JAR ke Hive Metastore (HMS) dengan mengonfigurasi koneksi jaringan.

Setelah Anda menghubungkan ruang kerja ke VPC, pekerjaan Spark akan mengarahkan lalu lintas melalui VPC tersebut. Jika pekerjaan Anda juga perlu mengakses titik akhir publik (misalnya, OSS melalui jaringan publik), deploy Internet NAT gateway di VPC tersebut dan konfigurasikan SNAT. Tanpa langkah ini, titik akhir publik tidak dapat dijangkau. Untuk informasi lebih lanjut, lihat Gunakan fitur SNAT dari Internet NAT gateway untuk mengakses internet.

Prasyarat

Sebelum memulai, pastikan Anda telah:

  • Membuat kluster DataLake di halaman EMR on ECS yang mencakup layanan Hive dan menggunakan Built-in MySQL untuk Metadata. Untuk informasi lebih lanjut, lihat Buat kluster.

Zona yang didukung

vSwitch hanya tersedia di zona tertentu.

  • Wilayah Tiongkok

    Nama wilayah ID wilayah Zona yang didukung
    Tiongkok (Hangzhou) cn-hangzhou Zone H, Zone I, Zone J
    Tiongkok (Shanghai) cn-shanghai Zone B, Zone L, Zone F, Zone G
    Tiongkok (Beijing) cn-beijing Zone F, Zone G, Zone H, Zone K
    Tiongkok (Shenzhen) cn-shenzhen Zone E, Zone F
    Tiongkok (Hong Kong) cn-hongkong Zone B, Zone C
  • Negara dan wilayah lainnya

    Nama wilayah ID wilayah Zona yang didukung
    Jerman (Frankfurt) eu-central-1 Zone A, Zone B
    Indonesia (Jakarta) ap-southeast-5 Zone A, Zone B
    Singapura ap-southeast-1 Zone B, Zone C
    AS (Virginia) us-east-1 Zone A, Zone B
    AS (Silicon Valley) us-west-1 Zone A, Zone B
    Jepang (Tokyo) ap-northeast-1 Zone B, Zone C

Langkah 1: Tambahkan koneksi jaringan

  1. Login ke Konsol EMR.

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

  3. Di halaman Spark, klik nama ruang kerja.

  4. Pada panel navigasi kiri, klik Network Connection.

  5. Di halaman Network Connection, klik Network Connection.

  6. Pada kotak dialog Create Network Connection, konfigurasikan parameter berikut, lalu klik OK. Koneksi siap digunakan ketika Status berubah menjadi Berhasil.

    Parameter Deskripsi
    Name Masukkan nama untuk koneksi tersebut.
    VPC Pilih VPC yang sama dengan kluster EMR Anda. Jika tidak ada VPC yang tersedia, klik Create VPC untuk membuat satu di Konsol VPC. Untuk informasi lebih lanjut, lihat VPCs and vSwitches.
    vSwitch Pilih vSwitch dalam VPC yang sama dengan kluster EMR Anda. vSwitch tersebut harus berada di zona yang didukung (lihat Zona yang didukung). Jika tidak ada vSwitch yang tersedia di zona yang diperlukan, buat satu di Konsol VPC. Untuk informasi lebih lanjut, lihat Create and manage vSwitches.

    image

Langkah 2: Tambahkan aturan grup keamanan ke kluster EMR

Saat pekerjaan Spark dijalankan, lalu lintas mengalir dari blok CIDR vSwitch ke dalam VPC Anda. Untuk mengizinkan lalu lintas tersebut mencapai layanan HMS, tambahkan aturan inbound ke grup keamanan kluster EMR.

  1. Ambil blok CIDR dari vSwitch yang Anda pilih di Langkah 1. Login ke Konsol VPC dan buka halaman vSwitches untuk menemukan blok CIDR tersebut.

    image

  2. Login ke Konsol EMR on ECS.

  3. Di halaman EMR on ECS, klik ID kluster.

  4. Di tab Basic Information, pada bagian Security, klik tautan di sebelah Cluster Security Group.

  5. Di halaman Security Group Details, buka bagian Rules, lalu klik Add Rule. Konfigurasikan parameter berikut, lalu klik OK.

    Penting

    Jangan mengatur Authorization Object ke 0.0.0.0/0. Aturan yang terlalu permisif membuka kluster Anda terhadap serangan dari internet publik.

    Parameter Nilai
    Protocol TCP (default). Untuk autentikasi Kerberos, pilih UDP dan buka port 88. Untuk informasi lebih lanjut, lihat Aktifkan otentikasi Kerberos.
    Source Blok CIDR dari vSwitch pada langkah 1.
    Destination (Current Instance) Tentukan port tujuan untuk mengizinkan akses. Misalnya, 9083.

(Opsional) Langkah 3: Siapkan tabel Hive

Lewati langkah ini jika Anda sudah memiliki tabel Hive untuk dikueri.

  1. Gunakan SSH untuk login ke node master kluster EMR Anda. Untuk informasi lebih lanjut, lihat Login ke kluster.

  2. Masukkan command line Hive:

    hive
  3. Buat tabel:

    CREATE TABLE my_table (id INT, name STRING);
  4. Masukkan data sampel:

    INSERT INTO my_table VALUES (1, 'John');
    INSERT INTO my_table VALUES (2, 'Jane');
  5. Verifikasi data:

    SELECT * FROM my_table;

(Opsional) Langkah 4: Bangun dan unggah artefak JAR

Lewati langkah ini jika Anda berencana menggunakan pekerjaan Spark SQL.

  1. Buat proyek Maven di mesin lokal Anda dengan kelas berikut:

    Proyek tersebut berisi konten berikut:

    package com.example;
    
    import org.apache.spark.sql.Dataset;
    import org.apache.spark.sql.Row;
    import org.apache.spark.sql.SparkSession;
    
    public class DataFrameExample {
        public static void main(String[] args) {
            // Buat SparkSession dengan dukungan Hive diaktifkan.
            SparkSession spark = SparkSession.builder()
                    .appName("HMSQueryExample")
                    .enableHiveSupport()
                    .getOrCreate();
    
            // Kueri tabel HMS.
            Dataset<Row> result = spark.sql("SELECT * FROM default.my_table");
    
            // Cetak hasilnya.
            result.show();
    
            spark.stop();
        }
    }

    File pom.xml berisi konten berikut:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>org.example</groupId>
        <artifactId>sparkDataFrame</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <properties>
            <maven.compiler.source>8</maven.compiler.source>
            <maven.compiler.target>8</maven.compiler.target>
            <spark.version>3.3.1</spark.version>
            <scala.binary.version>2.12</scala.binary.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-core_${scala.binary.version}</artifactId>
                <version>${spark.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-sql_${scala.binary.version}</artifactId>
                <version>${spark.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-hive_${scala.binary.version}</artifactId>
                <version>${spark.version}</version>
            </dependency>
        </dependencies>
    </project>
  2. Bangun file JAR:

    mvn package

    Perintah ini menghasilkan sparkDataFrame-1.0-SNAPSHOT.jar di direktori target/.

  3. Unggah file JAR ke ruang kerja Anda:

    1. Di halaman EMR Serverless Spark untuk ruang kerja Anda, klik Artifacts di panel navigasi kiri.

    2. Di halaman Artifacts, klik Upload File dan unggah sparkDataFrame-1.0-SNAPSHOT.jar.

Langkah 5: Buat dan jalankan pekerjaan

Pekerjaan JAR

  1. Di halaman EMR Serverless Spark, klik Development di panel navigasi kiri.

  2. Klik New, masukkan nama, pilih Application(Batch) > JAR, lalu klik OK.

  3. Di editor pekerjaan, konfigurasikan parameter berikut. Biarkan semua parameter lain pada nilai default-nya. Untuk Spark Configuration, masukkan konfigurasi berikut, ganti <hms-private-ip> dengan Alamat IP pribadi dari node master HMS:

    Parameter Nilai
    Main JAR Resource Pilih sparkDataFrame-1.0-SNAPSHOT.jar.
    Main Class com.example.DataFrameExample
    Network Connection Pilih koneksi jaringan yang dibuat di Langkah 1.
    Spark Configuration Lihat di bawah.
    spark.hadoop.hive.metastore.uris thrift://<hms-private-ip>:9083
    spark.hadoop.hive.imetastoreclient.factory.class org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClientFactory

    Untuk menemukan Alamat IP pribadi, buka halaman Nodes kluster EMR dan perluas kelompok node emr-master.

  4. Klik Run.

  5. Setelah pekerjaan selesai, buka Execution Records di bagian bawah halaman, lalu klik Logs untuk melihat output di tab Log Exploration.

Pekerjaan Spark SQL

  1. Buat dan mulai sesi Spark SQL. Untuk informasi lebih lanjut, lihat Kelola sesi SQL. Saat mengonfigurasi sesi, atur hal berikut:

    • Network Connection: Pilih koneksi jaringan yang dibuat di Langkah 1.

    • Spark Configuration: Masukkan konfigurasi berikut, ganti <hms-private-ip> dengan Alamat IP pribadi dari node master HMS

      spark.hadoop.hive.metastore.uris thrift://<hms-private-ip>:9083
      spark.hadoop.hive.imetastoreclient.factory.class org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClientFactory

      Untuk menemukan Alamat IP pribadi, buka halaman Nodes kluster EMR dan klik ikon image di sebelah kelompok node emr-master.

  2. Di halaman EMR Serverless Spark, klik Development di panel navigasi kiri.

  3. Klik ikon image untuk membuat file baru.

  4. Di kotak dialog New, masukkan nama (misalnya, users_task), biarkan jenisnya sebagai SparkSQL, lalu klik OK.

  5. Pilih catalog, database, dan instans sesi SQL. Masukkan kueri berikut, lalu klik Run:

    Saat menerapkan kode SQL yang menggunakan metastore eksternal ke alur kerja, tentukan tabel dalam format db.table_name dan pilih database default dalam format catalog_id.default dari opsi Catalog.
    SELECT * FROM default.my_table;

    Hasil muncul di bagian Execution Results di bagian bawah halaman.

    image