Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
MSCKOptimasi
Hive menyimpan daftar partisi untuk setiap tabel di metastore nya. Namun, ketika partisi langsung ditambahkan atau dihapus dari sistem file, metastore Hive tidak menyadari perubahan ini. MSCKPerintah
MSCK [REPAIR] TABLE table_name [ADD/DROP/SYNC PARTITIONS];
Hive mengimplementasikan perintah ini sebagai berikut:
-
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.
-
Hive mengumpulkan jalur partisi yang ada dalam sistem file, membandingkannya dengan daftar partisi dari metastore, dan menghasilkan daftar partisi yang perlu ditambahkan ke metastore.
-
Hive memperbarui metastore menggunakan
ADD
,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 exists
API panggilan 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 API panggilan 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