Halaman ini menjelaskan cara menggunakan fitur versi tambahan dengan Dataproc Metastore.
Versi tambahan memungkinkan Anda menghubungkan dua versi metastore Hive yang berbeda ke satu layanan Dataproc Metastore. Konfigurasi ini memungkinkan Anda mendukung beberapa mesin pemrosesan data yang perlu berjalan pada versi metastore Hive yang berbeda.
Misalnya, dengan menggunakan versi tambahan, Anda dapat menghubungkan beberapa cluster Managed Service untuk Apache Spark ke layanan Dataproc Metastore yang sama. Dalam konfigurasi ini, satu cluster dapat menjalankan Managed Service untuk Apache Spark versi 2.0, sedangkan cluster lainnya menjalankan Managed Service untuk Apache Spark versi 1.5. Cluster Managed Service untuk Apache Spark 2.0 dapat terhubung ke endpoint yang mengekspos Hive versi 3.1.2, sedangkan cluster Managed Service untuk Apache Spark 1.5 terhubung ke endpoint yang mengekspos Hive versi 2.3.6.
Cara kerja versi tambahan
Saat Anda mengaktifkan versi tambahan, Dataproc Metastore akan mengekspos endpoint terpisah untuk setiap versi metastore Hive. Namun, kedua endpoint tersebut akan terus berbagi database metadata yang sama.
Fitur ini tidak memungkinkan Anda menggunakan kumpulan metadata yang berbeda dengan satu layanan Dataproc Metastore. Sebagai gantinya, fitur ini menawarkan cara untuk memperluas dan meningkatkan kompatibilitas antara layanan Anda.
Pertimbangan
Umum
Anda hanya dapat membuat satu versi tambahan untuk setiap layanan Dataproc Metastore.
Versi tambahan harus dikonfigurasi untuk menggunakan versi metastore Hive yang lebih rendah daripada versi utama.
Versi tambahan mempertahankan file log terpisah dari versi utama. Untuk men-debug masalah metastore Hive, Anda dapat menggunakan Cloud Logging.
Dukungan fitur
Versi tambahan tidak mendukung fitur berikut:
- Mengimpor metadata, Mengekspor metadata
Mencadangkan dari metastore, Memulihkan metastore dari cadangan
Fitur terkait metadata (impor/ekspor/cadangan/pemulihan) hanya dapat digunakan dengan versi utama, karena metadata backend antara kedua versi tersebut dibagikan.
Beberapa metode Hive mungkin tidak kompatibel antara versi tambahan dan versi utama. Kompatibilitas ini bergantung pada versi Hive yang Anda gunakan untuk versi utama dan tambahan serta metode yang kompatibel antara versi Hive.
Tidak semua fungsi instance Dataproc Metastore utama didukung oleh versi tambahan. Misalnya, penyisipan rekaman ke dalam tabel transaksional Hive tidak didukung dengan klien Hive 2 yang berinteraksi dengan versi tambahan 2.3.6. Namun, operasi ini didukung dengan klien Hive 3 yang berinteraksi dengan versi utama 3.1.2.
Jika fitur dalam versi Hive yang lebih rendah tidak digunakan lagi dalam versi Hive yang lebih tinggi, versi tambahan yang lebih rendah yang sesuai tidak akan mendukung fitur yang tidak digunakan lagi. Misalnya, Hive 2 mendukung indeks, tetapi versi tambahan yang menjalankan Hive 2.3.6 tidak akan mendukung indeks jika versi utama menjalankan Hive 3.1.2.
Pembuatan tabel transaksional menggunakan versi tambahan atau penyisipan data apa pun dalam tabel transaksional di versi tambahan dicegah.
Properti yang dibagikan antar-versi
Saat Anda membuat versi tambahan, beberapa properti dibagikan dan tetap umum antara versi tambahan dan versi utama. Properti lainnya tidak dibagikan dan terpisah antara kedua versi tersebut.
Tabel berikut mencantumkan perbedaan ini.
| Properti | Umum | Terpisah |
|---|---|---|
| Endpoint | ✓ | |
| Penggantian konfigurasi Hive* | ✓ | |
| Konfigurasi Kerberos | ✓ | |
| Protokol endpoint (Thrift/gRPC) | ✓ | |
| Port Thrift | ✓ | |
| Bucket Cloud Storage artefak | ✓ | |
| Tingkat | ✓ | |
| Masa pemeliharaan | ✓ | |
| Saluran rilis | ✓ | |
| Konfigurasi enkripsi | ✓ | |
| Jenis database | ✓ | |
| Tombol sinkronisasi Data Catalog | ✓ | |
| Metrik jumlah permintaan | ✓ | |
| Konfigurasi jaringan | ✓ |
* Penggantian konfigurasi Hive tetap terpisah antara versi tambahan dan versi utama. Namun, versi tambahan mereferensikan daftar gabungan penggantian (utama+tambahan). Dalam hal ini, konfigurasi tambahan lebih diutamakan daripada konfigurasi utama.
Sebelum memulai
Peran yang Diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk membuat Dataproc Metastore yang menggunakan versi tambahan, minta administrator untuk memberi Anda peran IAM berikut di project Anda, berdasarkan prinsip hak istimewa terendah:
- Memberikan kontrol penuh atas resource Dataproc Metastore (
roles/metastore.editor) - Memberikan akses penuh ke semua resource Dataproc Metastore, termasuk administrasi kebijakan IAM (
roles/metastore.admin)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin
metastore.services.create
yang diperlukan untuk
membuat Dataproc Metastore yang menggunakan versi tambahan.
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 Managed Service untuk Apache Spark dengan IAM.Membuat versi tambahan untuk layanan baru
Contoh berikut menunjukkan versi singkat dari langkah-langkah yang Anda ikuti untuk mengaktifkan versi tambahan. Untuk mengetahui petunjuk langkah demi langkah lengkap tentang seluruh proses yang harus Anda ikuti, lihat Membuat Dataproc Metastore.
Konsol
Di Google Cloud konsol, buka halaman Dataproc Metastore:
Di bagian atas halaman Dataproc Metastore, klik tombol Create.
Halaman Create service akan terbuka.
Di bagian Auxiliary version config, aktifkan versi tambahan.
Klik Add Auxiliary Version.
Masukkan nama untuk versi tambahan Anda.
Pilih versi untuk versi tambahan Anda.
Opsional: Untuk menerapkan pemetaan ke versi tambahan, klik + Add Overrides.
Klik Done.
Pilih konfigurasi yang tersisa untuk layanan Anda, sesuai kebutuhan.
Klik Submit.
gcloud CLI
Untuk membuat layanan Dataproc Metastore dengan versi tambahan, jalankan salah satu perintah
gcloud metastore services createberikut:gcloud metastore services create SERVICE \ --location=LOCATION \ --auxiliary-versions=AUXILIARY_VERSIONS, ...SERVICE: nama layanan Dataproc Metastore Anda.LOCATION: region tempat Anda ingin membuat layanan Dataproc Metastore.AUXILIARY_VERSIONS: daftar versi metastore Hive yang dipisahkan koma untuk di-deploy untuk versi tambahan Anda. Hanya satu versi tambahan yang didukung. Gunakan format berikut"2.3.6".AUXILIARY_VERSIONS_FROM_FILE: jalur ke file YAML yang berisi konfigurasi versi tambahan. Untuk mengetahui informasi selengkapnya dan contohnya, lihat dokumentasi SDK.
Pastikan pembuatan berhasil.
curl
Untuk membuat layanan Dataproc Metastore dengan versi tambahan,
gunakan metode create.
curl -X POST -s -i \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-d '{"network":"projects/PROJECT_ID/global/networks/default", "port": 9083, "hive_metastore_config": {"auxiliary_versions": {"aux-version1": {"version": "AUX_VERSION"} } } }' \
-H "Content-Type:application/json" \
https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services?service_id=SERVICE_ID
Ganti kode berikut:
SERVICE_ID: nama layanan Dataproc Metastore baru Anda.PROJECT_ID: Project ID tempat Anda membuat layanan Dataproc Metastore. Google CloudLOCATION: region tempat Dataproc Metastore Anda berada.AUX_VERSIONS: daftar versi metastore Hive yang dipisahkan koma untuk di-deploy. Hanya satu versi tambahan yang didukung.
Memperbarui versi tambahan untuk layanan yang ada
Petunjuk berikut menunjukkan cara memperbarui layanan Dataproc Metastore yang ada yang menggunakan versi tambahan.
Saat menjalankan operasi pembaruan, Anda dapat menyelesaikan tugas berikut:
- Menambahkan versi tambahan baru.
- Menghapus versi tambahan yang ada.
Menambahkan atau mengubah penggantian versi tambahan yang ada.
Konsol
Di Google Cloud konsol, buka halaman Dataproc Metastore:
Di halaman Dataproc Metastore, klik nama layanan yang ingin Anda perbarui.
Halaman Service detail akan terbuka.
Di tab Configuration, klik Edit.
Halaman Edit service akan terbuka.
Di bagian Auxiliary version config, klik tombol untuk mengaktifkan atau menonaktifkan versi tambahan.
Anda dapat menyelesaikan tugas berikut:
Untuk menghapus versi tambahan yang ada, klik Delete.
Untuk menambahkan versi tambahan baru, klik Add Auxiliary Version.
Untuk menerapkan pemetaan penggantian ke versi tambahan, klik + Add Overrides.
Klik Submit.
gcloud CLI
Untuk memperbarui layanan Dataproc Metastore yang menggunakan versi tambahan, jalankan salah satu perintah
gcloud metastore services updateberikut:gcloud metastore services update SERVICE \ --location=LOCATION \ --add-auxiliary-versions=AUXILIARY_VERSIONS, ...
atau
gcloud metastore services update SERVICE \ --location=LOCATION \ --update-auxiliary-versions-from-file=AUXILIARY_VERSIONS_FROM_FILE
Ganti kode berikut:
SERVICE: nama layanan Dataproc Metastore Anda.LOCATION: region tempat Dataproc Metastore Anda berada.AUXILIARY_VERSIONS: daftar versi metastore Hive tambahan yang dipisahkan koma untuk di-deploy.AUXILIARY_VERSIONS_FROM_FILE: jalur ke file YAML yang berisi konfigurasi versi tambahan; untuk mengetahui informasi selengkapnya dan contohnya, lihat dokumentasi SDK.
Pastikan pembaruan berhasil.
curl
Untuk memperbarui layanan Dataproc Metastore yang menggunakan versi tambahan, gunakan metode patch.
curl -X PATCH -s -i \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-d '{"hive_metastore_config": {"auxiliary_versions": {"aux-version1": {"version": "AUX_VERSION} } } }' \
-H "Content-Type:application/json" \
https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/SERVICE_ID?update_mask=hive_metastore_config.auxiliary_versions
Ganti kode berikut:
SERVICE_ID: nama layanan Dataproc Metastore Anda.PROJECT_ID: Project ID tempat Anda membuat cluster layanan Dataproc Metastore. Google CloudLOCATION: region tempat Dataproc Metastore Anda berada.AUX_VERSIONS: daftar versi metastore Hive tambahan yang dipisahkan koma untuk di-deploy.