MSCKOptimisation - Amazon EMR

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

MSCKOptimisation

Hive stocke une liste de partitions pour chaque table dans son métastore. Toutefois, lorsque des partitions sont directement ajoutées ou supprimées du système de fichiers, le métastore Hive n'est pas au courant de ces modifications. La MSCKcommande met à jour les métadonnées de partition dans le métastore Hive pour les partitions directement ajoutées ou supprimées du système de fichiers. La syntaxe de cette commande est la suivante :

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

Hive implémente cette commande comme suit :

  1. Hive récupère toutes les partitions de la table dans le métastore. À partir de la liste des chemins de partition qui n'existent pas dans le système de fichiers, crée une liste de partitions à supprimer du métastore.

  2. Hive rassemble les chemins de partition présents dans le système de fichiers, les compare à la liste des partitions du métastore et génère une liste des partitions qui doivent être ajoutées au métastore.

  3. Hive met à jour le métastore en utilisant le mode ADD, DROP ou SYNC.

Note

Lorsque le métastore contient de nombreuses partitions, l'étape visant à vérifier si une partition n'existe pas dans le système de fichiers prend beaucoup de temps, car l'existsAPIappel du système de fichiers doit être effectué pour chaque partition.

Dans Amazon EMR 6.5.0, Hive a introduit un drapeau appelé. hive.emr.optimize.msck.fs.check Lorsqu'il est activé, cet indicateur permet à Hive de vérifier la présence d'une partition dans la liste des chemins de partition du système de fichiers générée à l'étape 2 ci-dessus au lieu d'effectuer des API appels au système de fichiers. Dans Amazon EMR 6.8.0, Hive a activé cette optimisation par défaut, éliminant ainsi le besoin de définir l'indicateur. hive.emr.optimize.msck.fs.check