Migrasikan metadata Hive Metastore dari kluster E-MapReduce (EMR) ke Data Lake Formation (DLF), lalu konfigurasikan ulang mesin komputasi Anda agar menggunakan DLF sebagai penyimpanan metadata terpadu. Setelah migrasi selesai, Anda dapat menulis data dari berbagai sumber ke data lake dan mengelola seluruh metadata dari satu lokasi.
Integrasi metadata DLF memerlukan EMR V3.33 atau versi lebih baru (V3.x), EMR V4.6 atau versi lebih baru (V4.x), atau EMR V5.1 atau versi lebih baru (V5.x). Untuk versi EMR yang lebih lama, bergabunglah dengan grup DingTalk 33719678.
Pilih jalur migrasi Anda
Gunakan tabel berikut untuk menemukan prosedur yang sesuai dengan situasi Anda.
| Titik awal | Tujuan | Prosedur |
|---|---|---|
| Kluster big data (non-EMR) | Migrasikan metadata ke kluster EMR yang sudah menggunakan DLF | Migrasikan metadata |
| Kluster EMR yang menggunakan MySQL bawaan atau ApsaraDB RDS yang dikelola sendiri | Pindahkan metadata ke kluster EMR berbeda yang menyimpan metadata di DLF | Migrasikan metadata |
| Kluster EMR yang menggunakan MySQL bawaan atau ApsaraDB RDS yang dikelola sendiri | Alihkan penyimpanan metadata kluster yang ada ke DLF | Gunakan DLF untuk penyimpanan metadata terpadu |
Migrasikan metadata
DLF memungkinkan Anda memigrasikan metadata dari Hive Metastore ke data lake melalui antarmuka visual tanpa perlu membuat skrip transfer data secara manual.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Kluster EMR (V3.33+, V4.6+, atau V5.1+) dengan metadata yang disimpan di database ApsaraDB RDS yang dikelola sendiri atau database MySQL bawaan
Database Hive di kluster EMR. Untuk petunjuknya, lihat Gunakan Hive untuk melakukan operasi dasar. Contoh ini menggunakan database bernama
testdb2.Izin akses remote yang telah dikonfigurasi pada database sumber (lihat di bawah)
Konfigurasikan izin akses remote
Login ke database ApsaraDB RDS atau MySQL dan jalankan pernyataan berikut. Contoh ini memberikan izin kepada pengguna root pada database testdb. Ganti xxxx dengan password yang sebenarnya.
CREATE USER 'root'@'%' IDENTIFIED BY 'xxxx';
GRANT ALL PRIVILEGES ON testdb.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;Untuk ApsaraDB RDS, Anda juga dapat melihat dan memperbarui izin akses langsung di Konsol. Untuk petunjuknya, lihat Ubah izin akun.

Buat tugas migrasi
Login ke Konsol DLF.
Pilih wilayah tempat kluster EMR Anda berada.
Di panel navigasi kiri, pilih Metadata > Migrate Metadata.
Di tab Migration Task, klik Create Cloud Migration Task.
Konfigurasikan parameter koneksi sumber dan klik Next. Untuk detail parameter, lihat Buat tugas migrasi metadata.

Konfigurasikan detail tugas migrasi dan klik Next. Contoh ini memberi nama tugas
test_rds.
Tinjau konfigurasi tugas dan klik OK.
Jalankan tugas migrasi
Di tab Migration Task, temukan tugas bernama test_rds dan klik Run di kolom Actions. Saat tugas berhasil diselesaikan, statusnya akan berubah menjadi Succeeded.

Lihat catatan eksekusi dan log
Di tab Migration Task, klik Running Record di kolom Actions untuk melihat riwayat eksekusi.

Di tab Execution History, klik View Logs di kolom Actions untuk melihat detail log.
Verifikasi migrasi metadata
Di panel navigasi kiri, pilih Metadata > Metadata.
Klik tab Database, pilih katalog Anda dari daftar drop-down Catalog List, masukkan nama database Anda di bidang Database Name, lalu tekan Enter. Jika database muncul dalam hasil, berarti metadata telah berhasil dimigrasikan.
Gunakan DLF untuk penyimpanan metadata terpadu
Untuk mengalihkan kluster EMR dari penyimpanan metadata berbasis MySQL ke DLF, perbarui konfigurasi setiap mesin komputasi agar mengarah ke layanan metadata DLF.
Untuk menyimpan metadata di katalog tertentu alih-alih katalog default, atur item konfigurasi dlf.catalog.id ke ID katalog Anda.Hive
Di hive-site.xml, tambahkan atau perbarui item konfigurasi berikut, lalu simpan dan terapkan perubahan tersebut. Untuk petunjuk mengubah item konfigurasi, lihat Ubah item konfigurasi.
<!-- Titik akhir layanan metadata DLF. Ganti {regionId} dengan ID wilayah kluster Anda, misalnya cn-hangzhou. -->
dlf.catalog.endpoint=dlf-vpc.{regionId}.aliyuncs.com
<!-- Setelah menempelkan, pastikan tidak ada spasi tambahan yang tersisip. -->
hive.imetastoreclient.factory.class=com.aliyun.datalake.metastore.hive2.DlfMetaStoreClientFactory
dlf.catalog.akMode=EMR_AUTO
dlf.catalog.proxyMode=DLF_ONLY
<!-- Diperlukan untuk Hive 3 -->
hive.notification.event.poll.interval=0s
<!-- Diperlukan untuk versi EMR sebelum V3.33 atau V4.6.0 -->
dlf.catalog.sts.isNewMode=falsePresto
Di hive.properties, tambahkan item konfigurasi berikut, lalu simpan dan terapkan perubahan tersebut. Untuk petunjuknya, lihat Tambahkan item konfigurasi.
hive.metastore=dlf
<!-- Titik akhir layanan metadata DLF. Ganti {regionId} dengan ID wilayah kluster Anda, misalnya cn-hangzhou. -->
dlf.catalog.endpoint=dlf-vpc.{regionId}.aliyuncs.com
dlf.catalog.akMode=EMR_AUTO
dlf.catalog.proxyMode=DLF_ONLY
<!-- Atur nilai ini sesuai dengan nilai hive.metastore.warehouse.dir di hive-site.xml. -->
dlf.catalog.default-warehouse-dir=
<!-- Diperlukan untuk versi EMR sebelum V3.33 atau V4.6.0 -->
dlf.catalog.sts.isNewMode=falseSpark
Di tab Configure halaman layanan Spark, klik Deploy Client Configuration dan ikuti petunjuknya. Lalu restart Spark.

Impala
Di tab Configure halaman layanan Impala, klik Deploy Client Configuration dan ikuti petunjuknya. Lalu restart Impala.
Verifikasi perubahan penyimpanan metadata
Langkah-langkah berikut menggunakan Hive. Verifikasi yang sama berlaku untuk mesin lainnya.
Login ke kluster melalui SSH. Untuk petunjuknya, lihat Login ke kluster.
Buka CLI Hive:
hiveBuat database uji:
CREATE database if NOT EXISTS dlf_test_db;Jika output berisi
OK, berarti database berhasil dibuat.Login ke Konsol DLF.
Di panel navigasi kiri, pilih Metadata > Metadata.
Klik tab Database, pilih katalog Anda dari daftar drop-down Catalog List, masukkan
dlf_test_dbdi bidang Database Name, lalu tekan Enter. Jikadlf_test_dbmuncul dalam hasil, berarti penyimpanan metadata untuk Hive telah berubah. Jika tidak, berarti perubahan penyimpanan metadata untuk Hive gagal.
FAQ
Apa yang terjadi jika saya menjalankan tugas migrasi lebih dari sekali?
Menjalankan tugas migrasi yang sama beberapa kali menghasilkan hasil yang sama. Hal ini karena tugas migrasi dieksekusi berdasarkan metadata di database ApsaraDB RDS atau MySQL untuk memastikan konsistensi akhir antara metadata di database sumber dan metadata di DLF.
Untuk menangani konflik antara metadata katalog sumber dan target, konfigurasikan parameter Conflict Resolution Strategy saat membuat tugas. Untuk detailnya, lihat Buat tugas migrasi metadata.