Menyiapkan layanan Dataproc Metastore multi-regional

Halaman ini menunjukkan cara menyiapkan layanan Dataproc Metastore multi-regional. Untuk mengetahui informasi selengkapnya tentang cara kerja layanan Dataproc Metastore multi-regional, lihat Region Dataproc Metastore.

Sebelum memulai

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk membuat layanan Dataproc Metastore multi-regional, minta administrator Anda untuk memberi Anda peran IAM berikut di project Anda, berdasarkan prinsip hak istimewa paling rendah:

Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin metastore.services.create yang diperlukan untuk membuat layanan Dataproc Metastore multi-regional.

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Untuk mengetahui informasi selengkapnya tentang peran dan izin Dataproc Metastore tertentu, lihat Mengelola akses dengan IAM.

Tentang layanan Dataproc Metastore multi-regional

Layanan Dataproc Metastore multi-region menyimpan data Anda di dua region yang berbeda dan menggunakan kedua region tersebut untuk menjalankan workload Anda. Misalnya, multi-region nam7 berisi region us-central1 dan us-east4.

  • Layanan Dataproc Metastore multi-regional mereplikasi metadata di dua region dan mengekspos endpoint yang relevan untuk mengakses Hive Metastore. Untuk gRPC, satu endpoint per region diekspos. Untuk Thrift, satu endpoint per subnetwork diekspos.

  • Layanan Metastore Dataproc multi-regional menyediakan konfigurasi cluster ketersediaan tinggi (HA) aktif-aktif. Konfigurasi ini berarti beban kerja dapat mengakses salah satu region saat menjalankan tugas. Load balancer juga menyediakan mekanisme failover untuk layanan Anda. Misalnya, jika endpoint regional utama Anda tidak berfungsi, workload Anda akan otomatis dirutekan ke region sekunder. Tindakan ini membantu mencegah gangguan pada tugas Dataproc Anda.

Pertimbangan

Pertimbangan berikut berlaku untuk layanan Dataproc Metastore multi-regional.

Membuat layanan Dataproc Metastore multi-regional

Pilih salah satu tab berikut untuk mempelajari cara membuat layanan multi-regional menggunakan protokol endpoint Thrift atau gRPC, dengan layanan Dataproc Metastore 2.

gRPC

Saat membuat layanan multiregional yang menggunakan protokol endpoint gRPC, Anda tidak perlu menyetel setelan jaringan tertentu. Protokol gRPC menangani routing jaringan untuk Anda.

Konsol

  1. Di konsol Google Cloud , buka halaman Dataproc Metastore.

    Buka Dataproc Metastore

  2. Di menu navigasi, klik +Buat.

    Dialog Create Metastore service akan terbuka.

  3. Pilih Dataproc Metastore 2.

  4. Di bagian Harga dan Kapasitas, pilih Enterprise Plus - Dual region

  5. Untuk Endpoint protocol, pilih gRPC.

  6. Untuk membuat dan memulai layanan, klik Submit.

    Layanan metastore baru Anda akan muncul di halaman Dataproc Metastore. Status akan menampilkan Membuat hingga layanan siap digunakan. Setelah siap, statusnya akan berubah menjadi Aktif. Penyediaan layanan mungkin memerlukan waktu beberapa menit.

gcloud CLI

Untuk membuat layanan multi-regional Dataproc Metastore, jalankan perintah gcloud metastore services create berikut. Perintah ini akan membuat Dataproc Metastore versi 3.1.2.

gcloud metastore services create SERVICE \
  --location=MULTI_REGION \
{ --instance-size=INSTANCE_SIZE | --scaling-factor=SCALING_FACTOR } \
  --endpoint-protocol=grpc

Ganti kode berikut:

  • SERVICE: nama layanan Dataproc Metastore Anda.
  • MULTI_REGION: multi-region tempat Anda membuat layanan Dataproc Metastore.
  • INSTANCE_SIZE: ukuran instance Dataproc Metastore multi-regional Anda. Misalnya, small, medium atau large. Jika Anda menentukan nilai untuk INSTANCE_SIZE, jangan tentukan nilai untuk SCALING_FACTOR.
  • SCALING_FACTOR: faktor penskalaan layanan Dataproc Metastore Anda. Misalnya, 0.1. Jika Anda menentukan nilai untuk SCALING_FACTOR, jangan tentukan nilai untuk INSTANCE_SIZE.

Hemat

Saat membuat layanan multi-regional yang menggunakan protokol endpoint Thrift, Anda harus menyetel setelan subnetwork yang sesuai. Dalam hal ini, untuk setiap jaringan VPC yang Anda gunakan, Anda harus menyediakan setidaknya satu subnetwork dari setiap region.

Misalnya, untuk membuat multi-region nam7, Anda harus menyediakan region us-central1 dan us-east4.

Konsol

  1. Di konsol Google Cloud , buka halaman Dataproc Metastore.

    Buka Dataproc Metastore

  2. Di menu navigasi, klik +Buat.

    Dialog Create Metastore service akan terbuka.

  3. Pilih Dataproc Metastore 2.

  4. Di bagian Harga dan Kapasitas, pilih Enterprise Plus - Dual region.

    Untuk mengetahui informasi selengkapnya, lihat paket harga dan konfigurasi penskalaan.

  5. Di kolom Service name, masukkan nama unik untuk layanan Anda.

    Untuk mengetahui informasi tentang konvensi penamaan, lihat Konvensi penamaan resource.

  6. Untuk Endpoint protocol, pilih Thrift.

  7. Untuk Network Config, berikan subnetwork yang membentuk konfigurasi multi-region pilihan Anda.

  8. Untuk opsi konfigurasi layanan lainnya, gunakan default yang disediakan.

  9. Untuk membuat dan memulai layanan, klik Submit.

    Layanan metastore baru Anda akan muncul di halaman Dataproc Metastore. Status akan menampilkan Membuat hingga layanan siap digunakan. Setelah siap, statusnya akan berubah menjadi Aktif. Penyediaan layanan mungkin memerlukan waktu beberapa menit.

gcloud CLI

Untuk membuat layanan multi-regional Dataproc Metastore, jalankan perintah gcloud metastore services create berikut. Perintah ini akan membuat Dataproc Metastore versi 3.1.2.

gcloud metastore services create SERVICE \
  --location=MULTI_REGION \
  --consumer-subnetworks="projects/PROJECT_ID/regions/LOCATION1/subnetworks/SUBNET1,projects/PROJECT_ID/regions/LOCATION2/subnetworks/SUBNET2" \
{ --instance-size=INSTANCE_SIZE | --scaling-factor=SCALING_FACTOR } \
  --endpoint-protocol=thrift

Atau, Anda dapat menyimpan setelan jaringan dalam file, seperti yang ditunjukkan dalam perintah berikut.

gcloud metastore services create SERVICE \
  --location=MULTI_REGION \
  --network-config-from-file=NETWORK_CONFIG_FROM_FILE
{ --instance-size=INSTANCE_SIZE | --scaling-factor=SCALING_FACTOR } \
  --endpoint-protocol=thrift

Ganti kode berikut:

  • SERVICE: nama layanan Dataproc Metastore Anda.
  • MULTI_REGION: multi-region tempat Anda membuat layanan Dataproc Metastore.
  • PROJECT_ID: Google Cloud project ID tempat Anda membuat layanan Dataproc Metastore.
  • SUBNET1,SUBNET2: daftar subnetwork yang membentuk konfigurasi multi-region. Anda dapat menggunakan ID, URL yang sepenuhnya memenuhi syarat, atau nama relatif subnetwork. Anda dapat menentukan hingga enam subnetwork.
  • LOCATION1,LOCATION2: daftar lokasi yang membentuk konfigurasi multi-regional. Anda dapat menggunakan ID lokasi. Misalnya, untuk multi-region nam7, Anda menggunakan us-central1 dan us-east4.
  • NETWORK_CONFIG_FROM_FILE: jalur ke file YAML yang berisi konfigurasi jaringan.
  • INSTANCE_SIZE: ukuran instance Dataproc Metastore multi-regional Anda. Misalnya, small, medium atau large. Jika Anda menentukan nilai untuk INSTANCE_SIZE, jangan tentukan nilai untuk SCALING_FACTOR.
  • SCALING_FACTOR: faktor penskalaan layanan Dataproc Metastore Anda. Misalnya, 0.1. Jika Anda menentukan nilai untuk SCALING_FACTOR, jangan tentukan nilai untuk INSTANCE_SIZE.

REST

Untuk mempelajari cara membuat layanan Dataproc Metastore multi-regional, ikuti petunjuk untuk membuat layanan menggunakan Google APIs Explorer.

Untuk mengonfigurasi layanan multi-regional, berikan informasi berikut dalam objek Network Config.

  "network_config": {
    "consumers": [
        {"subnetwork": "projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET1"},
        {"subnetwork": "projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET2"}
    ],
    "scaling_config": {
    "scaling_factor": SCALING_FACTOR
    }
  }

Ganti kode berikut:

  • PROJECT_ID: Google Cloud project ID project yang berisi layanan Dataproc Metastore Anda.
  • LOCATION: Google Cloud region tempat layanan Dataproc Metastore Anda berada.
  • SUBNET1,SUBNET2: daftar subnetwork yang membentuk konfigurasi multi-regional. Anda dapat menggunakan ID, URL yang sepenuhnya memenuhi syarat, atau nama relatif subnetwork. Anda dapat menentukan hingga lima subnetwork.
  • SCALING_FACTOR: faktor penskalaan yang ingin Anda gunakan untuk layanan.

Menghubungkan Dataproc Metastore ke cluster Dataproc

Pilih salah satu tab berikut untuk mempelajari cara menghubungkan layanan Dataproc Metastore multi-regional dari cluster Dataproc.

gRPC

Untuk menghubungkan cluster Dataproc, pilih tab yang sesuai dengan versi Dataproc Metastore yang Anda gunakan.

Dataproc Metastore 3.1.2

  1. Buat variabel berikut untuk cluster Dataproc Anda:

    CLUSTER_NAME=CLUSTER_NAME
    PROJECT_ID=PROJECT_ID
    MULTI_REGION=MULTI_REGION
    DATAPROC_IMAGE_VERSION=DATAPROC_IMAGE_VERSION
    PROJECT=PROJECT
    SERVICE_ID=SERVICE_ID

    Ganti kode berikut:

    • CLUSTER_NAME: nama cluster Dataproc Anda.
    • PROJECT_ID: Google Cloud project yang berisi cluster Dataproc Anda. Pastikan subnet yang Anda gunakan memiliki izin yang sesuai untuk mengakses project ini.
    • MULTI_REGION: multi-region yang ingin Anda gunakan untuk membuat cluster Dataproc. Google Cloud
    • DATAPROC_IMAGE_VERSION: versi image Dataproc yang Anda gunakan dengan layanan Dataproc Metastore. Anda harus menggunakan versi gambar 2.0 atau yang lebih tinggi.
    • PROJECT: project yang berisi layanan Dataproc Metastore Anda.
    • SERVICE_ID: ID layanan Dataproc Metastore Anda.
  2. Untuk membuat cluster, jalankan perintah gcloud dataproc clusters create berikut. --enable-kerberos bersifat opsional. Sertakan opsi ini hanya jika Anda menggunakan kerberos dengan cluster Anda.

    gcloud dataproc clusters create ${CLUSTER_NAME} \
     --project ${PROJECT_ID} \
     --region ${MULTI_REGION} \
     --image-version ${DATAPROC_IMAGE_VERSION} \
     --scopes "https://www.googleapis.com/auth/cloud-platform" \
     --dataproc-metastore projects/${PROJECT}/locations/${MULTI_REGION}/services/${SERVICE_ID} \
    [ --enable-kerberos ]

Dataproc Metastore 2.3.6

  1. Buat variabel berikut untuk layanan Dataproc Metastore Anda:

    METASTORE_PROJECT=METASTORE_PROJECT
    METASTORE_ID=METASTORE_ID
    MULTI_REGION=MULTI_REGION
    SUBNET=SUBNET

    Ganti kode berikut:

    • METASTORE_PROJECT: Google Cloud project yang berisi layanan Dataproc Metastore Anda.
    • METASTORE_ID: ID layanan Dataproc Metastore Anda.
    • MULTI_REGION: lokasi multi-region yang ingin Anda gunakan untuk layanan Dataproc Metastore.
    • SUBNET: salah satu subnet yang Anda gunakan untuk layanan Dataproc Metastore. Atau subnetwork apa pun di jaringan VPC induk dari subnetwork yang digunakan untuk layanan Anda.
  2. Buat variabel berikut untuk cluster Dataproc Anda:

    CLUSTER_NAME=CLUSTER_NAME
    DATAPROC_PROJECT=DATAPROC_PROJECT
    DATAPROC_REGION=DATAPROC_REGION
    HIVE_VERSION=HIVE_VERSION
    IMAGE_VERSION=r>IMAGE_VERSION

    Ganti kode berikut:

    • CLUSTER_NAME: nama cluster Dataproc Anda.
    • DATAPROC_PROJECT: Google Cloud project yang berisi cluster Dataproc Anda. Pastikan subnet yang Anda gunakan memiliki izin yang sesuai untuk mengakses project ini.
    • DATAPROC_REGION: Google Cloud region tempat Anda ingin membuat cluster Dataproc.
    • HIVE_VERSION: versi Hive yang digunakan oleh layanan Dataproc Metastore Anda.
    • IMAGE_VERSION: versi image Dataproc yang Anda gunakan dengan layanan Dataproc Metastore.
      • Untuk Hive Metastore versi 2.0, gunakan versi image 1.5.
      • Untuk Hive Metastore versi 3.1.2, gunakan versi image 2.0.
  3. Ambil direktori warehouse layanan Dataproc Metastore Anda dan simpan di variabel.

    WAREHOUSE_DIR=$(gcloud metastore services describe "${METASTORE_ID}" --project "${METASTORE_PROJECT}" --location "${MULTI_REGION}" --format="get(hiveMetastoreConfig.configOverrides[hive.metastore.warehouse.dir])")
  4. Buat cluster Dataproc yang dikonfigurasi dengan Dataproc Metastore multi-regional.

    gcloud dataproc clusters create ${CLUSTER_NAME} \
        --project "${DATAPROC_PROJECT}" \
        --region ${DATAPROC_REGION} \
        --scopes "https://www.googleapis.com/auth/cloud-platform" \
        --subnet "${SUBNET}" \
        --optional-components=DOCKER \
        --image-version ${IMAGE_VERSION} \
        --metadata "hive-version=${HIVE_VERSION},dpms-name=${DPMS_NAME}" \
        --properties "hive:hive.metastore.uris=thrift://localhost:9083,hive:hive.metastore.warehouse.dir=${WAREHOUSE_DIR}" \
        --initialization-actions gs://metastore-init-actions/mr-metastore-grpc-proxy/metastore-grpc-proxy.sh

Hemat

Opsi 1: Edit file hive-site.xml

  1. Temukan URI endpoint dan direktori warehouse layanan Dataproc Metastore Anda. Anda dapat memilih salah satu endpoint yang diekspos.
  2. Di konsol Google Cloud , buka halaman VM Instances.
  3. Di daftar instance virtual machine, klik SSH di baris node utama Dataproc (.*-m).

    Jendela browser akan terbuka di direktori beranda Anda di node.

  4. Buka file /etc/hive/conf/hive-site.xml.

    sudo vim /etc/hive/conf/hive-site.xml
    

    Anda akan melihat output yang mirip dengan berikut ini:

    <property>
        <name>hive.metastore.uris</name>
        <value>ENDPOINT_URI</value>
    </property>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>WAREHOUSE_DIR</value>
    </property>
    

    Ganti kode berikut:

  5. Mulai ulang HiveServer2:

    sudo systemctl restart hive-server2.service
    

Opsi 2: Menggunakan gcloud CLI

Jalankan perintah gcloud CLI gcloud dataproc clusters create berikut.

  1. Temukan URI endpoint dan direktori warehouse layanan Dataproc Metastore Anda. Anda dapat memilih salah satu endpoint yang diekspos.
gcloud dataproc clusters create CLUSTER_NAME \
    --network NETWORK \
    --project PROJECT_ID \
    --scopes "https://www.googleapis.com/auth/cloud-platform" \
    --image-version IMAGE_VERSION \
    --properties "hive:hive.metastore.uris=ENDPOINT,hive:hive.metastore.warehouse.dir=WAREHOUSE_DIR"

Ganti kode berikut:

  • CLUSTER_NAME: nama cluster Dataproc Anda.
  • NETWORK: Google Cloud project yang berisi cluster Dataproc Anda. Pastikan subnet yang Anda gunakan memiliki izin yang sesuai untuk mengakses project ini.
  • PROJECT_ID: versi Hive yang digunakan oleh layanan Dataproc Metastore Anda.
  • IMAGE_VERSION: versi image Dataproc yang Anda gunakan dengan layanan Dataproc Metastore.
    • Untuk Hive Metastore versi 2.0, gunakan versi image 1.5.
    • Untuk Hive Metastore versi 3.1.2, gunakan versi image 2.0.
  • ENDPOINT: endpoint Thrift yang digunakan Dataproc Metastore Anda.
  • WAREHOUSE_DIR: direktori gudang Dataproc Metastore Anda.

Konfigurasi wilayah kustom

Anda dapat mengonfigurasi layanan Dataproc Metastore untuk menggunakan konfigurasi region kustom.

Konfigurasi region kustom memungkinkan layanan Anda menjalankan workload dari dua region terpisah. Hal ini memberikan redundansi di seluruh region, yang berarti workload dapat mengakses salah satu region saat menjalankan tugas. Fungsi ini juga menyediakan mekanisme failover untuk layanan Anda. Misalnya, jika salah satu endpoint regional tidak berfungsi, workload Anda akan otomatis dirutekan ke region lain. Hal ini membantu mencegah gangguan pada workload dan tugas Anda.

Konfigurasi region kustom juga memungkinkan Anda mengontrol tempat penyimpanan metadata dan tempat untuk mengekspos endpoint Hive Metastore. Hal ini dapat meningkatkan performa saat memproses beban kerja.

Pertimbangan

Pertimbangan berikut berlaku untuk layanan Dataproc Metastore yang dikonfigurasi dengan konfigurasi region kustom:

  • Batasan Wilayah/Penyandingan: Tidak semua wilayah dan kombinasi diizinkan.
  • Batasan Hanya Baca: Region hanya baca tidak dapat menerima operasi tulis. Jika region hanya baca dipilih dan region baca-tulis tidak dapat dijangkau, maka penulisan gagal diproses.
  • Keabadian Konfigurasi: Setelah ditetapkan, konfigurasi region tidak dapat diubah.
  • Khusus Stack AS: Region ganda kustom hanya mendukung stack US dan dibatasi untuk batas wilayah AS.

Membuat layanan wilayah kustom

Untuk menyiapkan region kustom, pilih dua region yang berdekatan saat Anda membuat layanan. Kombinasi ini dapat berupa dua region baca-tulis atau satu region baca-tulis dan satu region hanya baca.

Konsol

  1. Di konsol Google Cloud , buka halaman Dataproc Metastore.

    Buka Dataproc Metastore

  2. Di menu navigasi, klik +Buat.

    Dialog Create Metastore service akan terbuka.

  3. Pilih Dataproc Metastore 2.

  4. Di bagian Harga dan Kapasitas, pilih Enterprise Plus - Dual region.

  5. Di kolom Service name, masukkan nama unik untuk layanan Anda.

  6. Untuk lokasi data, pilih Amerika Serikat (benua).

    Bagian Wilayah kustom akan muncul.

  7. Di bagian Wilayah kustom, pilih wilayah Baca-tulis dan wilayah Baca saja.

  8. Untuk opsi konfigurasi layanan lainnya, gunakan default yang disediakan.

  9. Untuk membuat dan memulai layanan, klik Submit.

    Layanan metastore baru Anda akan muncul di halaman Dataproc Metastore. Status akan menampilkan Membuat hingga layanan siap digunakan. Setelah siap, statusnya akan berubah menjadi Aktif. Penyediaan layanan mungkin memerlukan waktu beberapa menit.

gcloud

Untuk membuat layanan Dataproc Metastore dengan region kustom, jalankan perintah gcloud CLI gcloud beta metastore services create berikut.

gcloud beta metastore services create SERVICE \
  --read-write-regions

Ganti kode berikut:

  • SERVICE: nama layanan Dataproc Metastore Anda.
  • READ_WRITE_REGIONS: Wilayah baca tulis yang didukung yang merupakan bagian dari konfigurasi wilayah kustom Anda.
  • READ_ONLY_REGIONS: Region hanya baca yang didukung dan merupakan bagian dari konfigurasi region kustom Anda.

Langkah selanjutnya