Optimasi MSCK - Amazon EMR

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Optimasi MSCK

Hive menyimpan daftar partisi untuk setiap tabel di metastore nya. Namun, ketika partisi langsung ditambahkan ke atau dihapus dari sistem file, metastore Hive tidak menyadari perubahan ini. Perintah MSCK memperbarui metadata partisi di metastore Hive untuk partisi yang langsung ditambahkan atau dihapus dari sistem file. Sintaks untuk perintah tersebut adalah:

MSCK [REPAIR] TABLE table_name [ADD/DROP/SYNC PARTITIONS];

Hive mengimplementasikan perintah ini sebagai berikut:

  1. Hive mengambil semua partisi untuk tabel dari metastore. Dari daftar path partisi yang tidak ada dalam sistem file kemudian membuat daftar partisi untuk drop dari metastore.

  2. Hive mengumpulkan jalur partisi yang ada dalam sistem file, membandingkannya dengan daftar partisi dari metastore, dan menghasilkan daftar partisi yang perlu ditambahkan ke metastore.

  3. Hive memperbarui metastore menggunakanADD,DROP, atau mode. SYNC

catatan

Ketika ada banyak partisi di metastore, langkah untuk memeriksa apakah partisi tidak ada dalam sistem file membutuhkan waktu lama untuk dijalankan karena panggilan exists API sistem file harus dilakukan untuk setiap partisi.

Di Amazon EMR 6.5.0, Hive memperkenalkan bendera yang disebut. hive.emr.optimize.msck.fs.check Saat diaktifkan, flag ini menyebabkan Hive memeriksa keberadaan partisi dari daftar jalur partisi dari sistem file yang dihasilkan pada langkah 2 di atas alih-alih membuat panggilan API sistem file. Di Amazon EMR 6.8.0, Hive mengaktifkan pengoptimalan ini secara default, menghilangkan kebutuhan untuk menyetel bendera. hive.emr.optimize.msck.fs.check