全部产品
Search
文档中心

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

更新时间:Feb 11, 2026

Fitur konektivitas jaringan memungkinkan Anda menetapkan koneksi antara EMR Serverless Spark dan virtual private cloud (VPC) Anda. Koneksi ini memungkinkan akses ke sumber data dan server atau pemanggilan layanan lain dalam VPC. Topik ini memberikan contoh cara menghubungkan pekerjaan Spark SQL dan Application JAR ke Hive Metastore (HMS) di VPC Anda melalui konfigurasi konektivitas jaringan.

Prasyarat

Sumber data harus disiapkan. Topik ini menggunakan kluster DataLake sebagai contoh. Kluster tersebut harus dibuat pada halaman EMR on ECS, menyertakan layanan Hive, dan menggunakan database Built-in MySQL untuk Metadata. Untuk informasi selengkapnya, lihat Buat kluster.

Batasan

Saat ini, Anda hanya dapat menggunakan vSwitch di zona berikut.

  • Wilayah Tiongkok

    Nama Wilayah

    ID Wilayah

    Nama Zona

    Tiongkok (Hangzhou)

    cn-hangzhou

    • Zona H

    • Zona I

    • Zona J

    Tiongkok (Shanghai)

    cn-shanghai

    • Zona B

    • Zona L

    • Zona F

    • Zona G

    Tiongkok (Beijing)

    cn-beijing

    • Zona F

    • Zona G

    • Zona H

    • Zona K

    Tiongkok (Shenzhen)

    cn-shenzhen

    • Zona E

    • Zona F

    Tiongkok (Hong Kong)

    cn-hongkong

    • Zona B

    • Zona C

  • Negara dan wilayah lain

    Nama Wilayah

    ID Wilayah

    Nama Zona

    Jerman (Frankfurt)

    eu-central-1

    • Zona A

    • Zona B

    Indonesia (Jakarta)

    ap-southeast-5

    • Zona A

    • Zona B

    Singapura

    ap-southeast-1

    • Zona B

    • Zona C

    AS (Virginia)

    us-east-1

    • Zona A

    • Zona B

    AS (Silicon Valley)

    us-west-1

    • Zona A

    • Zona B

    Jepang (Tokyo)

    ap-northeast-1

    • Zona B

    • Zona C

Langkah 1: Tambahkan koneksi jaringan

  1. Buka halaman Konektivitas Jaringan.

    1. Masuk ke Konsol EMR.

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

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

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

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

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

    Parameter

    Deskripsi

    Connection Name

    Masukkan nama untuk koneksi baru.

    VPC

    Pilih VPC yang sama dengan kluster EMR Anda.

    Jika tidak tersedia VPC, klik Create VPC untuk membuka Konsol VPC dan membuatnya. Untuk informasi selengkapnya, lihat VPC dan vSwitch.

    Catatan

    Jika Serverless Spark Anda perlu mengakses Internet, pastikan koneksi jaringan memiliki akses jaringan publik. Misalnya, Anda dapat menerapkan Gateway NAT Internet di VPC. Hal ini memungkinkan instans Serverless Spark mengakses Internet melalui gerbang tersebut. Untuk informasi selengkapnya, lihat Gunakan fitur SNAT Gateway NAT Internet untuk mengakses Internet.

    VSwitch

    Pilih vSwitch dalam VPC yang sama dengan kluster EMR.

    Jika tidak tersedia vSwitch di zona saat ini, klik Virtual Switch untuk membuka Konsol VPC dan membuatnya. Untuk informasi selengkapnya, lihat Buat dan kelola vSwitch.

    Penting

    Anda hanya dapat memilih vSwitch di zona tertentu. Untuk informasi selengkapnya, lihat Batasan.

    Koneksi jaringan ditambahkan ketika Status-nya berubah menjadi Successful.

    image

Langkah 2: Tambahkan aturan grup keamanan untuk kluster EMR

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

    Anda dapat masuk ke Konsol VPC dan buka halaman VSwitches untuk mendapatkan blok CIDR vSwitch tersebut.

    image

  2. Tambahkan aturan grup keamanan.

    1. Masuk ke Konsol EMR on ECS.

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

    3. Pada tab Basic Information, di bagian Security, klik tautan di samping Cluster Security Group.

    4. Pada halaman Security Group Details, di bagian Access Rules, klik Add Rule. Konfigurasikan parameter berikut dan klik OK.

      Parameter

      Deskripsi

      Protocol

      Tentukan protokol komunikasi jaringan yang diizinkan. Nilai default adalah TCP.

      Catatan

      Jika koneksi jaringan Anda digunakan untuk otentikasi Kerberos, pilih protokol UDP dan buka port 88. Untuk informasi selengkapnya tentang otentikasi Kerberos, lihat Aktifkan otentikasi Kerberos.

      Source

      Masukkan blok CIDR vSwitch yang Anda peroleh pada langkah sebelumnya.

      Penting

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

      Destination (This Instance)

      Tentukan port tujuan yang akan diizinkan aksesnya. Misalnya, 9083.

(Opsional) Langkah 3: Sambungkan ke layanan Hive dan kueri data tabel

Anda dapat melewatkan langkah ini jika sudah membuat dan mengonfigurasi tabel Hive.

  1. Gunakan Secure Shell (SSH) untuk masuk ke node master kluster. Untuk informasi selengkapnya, lihat Masuk ke kluster.

  2. Jalankan perintah berikut untuk masuk ke baris perintah Hive:

    hive
  3. Jalankan perintah berikut untuk membuat tabel:

    CREATE TABLE my_table (id INT,name STRING);
  4. Jalankan perintah berikut untuk memasukkan data ke dalam tabel:

    INSERT INTO my_table VALUES (1, 'John'); 
    INSERT INTO my_table VALUES (2, 'Jane');
  5. Jalankan perintah berikut untuk mengkueri data:

    SELECT * FROM my_table;

(Opsional) Langkah 4: Siapkan dan unggah file sumber daya

Jika Anda berencana menggunakan pekerjaan JAR, Anda harus menyiapkan file sumber daya. Anda dapat melewatkan langkah ini jika berencana menggunakan jenis pekerjaan SparkSQL.

  1. Buat proyek Maven baru di mesin lokal Anda.

    Proyek 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.
            SparkSession spark = SparkSession.builder()
                    .appName("HMSQueryExample")
                    .enableHiveSupport()
                    .getOrCreate();
    
            // Jalankan kueri.
            Dataset<Row> result = spark.sql("SELECT * FROM default.my_table");
    
            // Cetak hasil kueri.
            result.show();
    
            // Tutup SparkSession.
            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. Jalankan perintah mvn package. Setelah proyek dikompilasi dan dipaketkan, file sparkDataFrame-1.0-SNAPSHOT.jar akan dihasilkan.

  3. Pada halaman EMR Serverless Spark untuk ruang kerja yang dituju, klik File Management di panel navigasi sebelah kiri.

  4. Pada halaman File Management, klik Upload File.

  5. Unggah file sparkDataFrame-1.0-SNAPSHOT.jar.

Langkah 5: Buat dan jalankan pekerjaan

Pekerjaan JAR

  1. Pada halaman EMR Serverless Spark, klik Data Development di panel navigasi sebelah kiri.

  2. Klik Create.

  3. Masukkan nama, pilih Batch Job > JAR sebagai jenis pekerjaan, lalu klik OK.

  4. Pada tab pengembangan pekerjaan baru, konfigurasikan parameter berikut, biarkan parameter lain pada pengaturan default-nya, lalu klik Run.

    Parameter

    Deskripsi

    Main JAR Resource

    Pilih file sumber daya yang Anda unggah pada langkah sebelumnya. Misalnya, sparkDataFrame-1.0-SNAPSHOT.jar.

    Main Class

    Kelas utama yang ditentukan saat Anda mengirimkan pekerjaan Spark. Contoh ini menggunakan com.example.DataFrameExample.

    Network Connection

    Pilih nama koneksi jaringan yang Anda tambahkan pada Langkah 1.

    Spark Configuration

    Konfigurasikan parameter berikut.

    spark.hadoop.hive.metastore.uris thrift://*.*.*.*:9083
    spark.hadoop.hive.imetastoreclient.factory.class org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClientFactory

    Pada parameter ini, *.*.*.* adalah Alamat IP pribadi layanan HMS. Gantilah dengan alamat IP yang sebenarnya. Contoh ini menggunakan Alamat IP pribadi node master kluster EMR. Anda dapat menemukan alamat IP ini pada halaman Node Management kluster EMR. Klik ikon image di samping grup node emr-master untuk melihat alamat IP tersebut.

  5. Setelah pekerjaan dijalankan, buka bagian Run History di bagian bawah halaman dan klik Log Details di kolom Tindakan.

  6. Pada tab Log Details, Anda dapat melihat log tersebut.

Pekerjaan SparkSQL

  1. Buat dan mulai sesi SQL. Untuk informasi selengkapnya, lihat Kelola sesi SQL.

    • Network Connection: Pilih koneksi jaringan yang Anda tambahkan pada Langkah 1.

    • Spark Configuration: Konfigurasikan parameter berikut.

      spark.hadoop.hive.metastore.uris thrift://*.*.*.*:9083
      spark.hadoop.hive.imetastoreclient.factory.class org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClientFactory

      Pada kode ini, *.*.*.* merepresentasikan alamat IP internal layanan HSM. Gantilah dengan alamat IP yang sebenarnya. Contoh ini menggunakan alamat IP internal node master kluster EMR. Anda dapat memperoleh alamat IP ini pada halaman Node Management kluster EMR dengan mengklik ikon image di samping grup node emr-master.

  2. Pada halaman EMR Serverless Spark, klik Data Development di panel navigasi sebelah kiri.

  3. Pada tab Development, klik ikon image.

  4. Pada kotak dialog Create, masukkan nama, misalnya users_task, biarkan jenis tetap sebagai SparkSQL default, lalu klik OK.

  5. Pada tab pengembangan pekerjaan baru, pilih katalog, database, dan instans sesi SQL yang sedang berjalan. Kemudian, masukkan perintah berikut dan klik Run.

    SELECT * FROM default.my_table;
    Catatan

    Saat menerapkan kode SQL berdasarkan metastore eksternal ke alur kerja, pastikan pernyataan SQL Anda menentukan nama tabel dalam format db.table_name. Anda juga harus memilih database default dari opsi Katalog di pojok kanan atas. Formatnya harus catalog_id.default.

    Informasi yang dikembalikan ditampilkan di bagian Run Result di bagian bawah halaman.

    image