MSCKOptimización - Amazon EMR

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

MSCKOptimización

Hive almacena una lista de particiones para cada tabla en su metaalmacén. Sin embargo, cuando las particiones se agregan o se eliminan directamente del sistema de archivos, el metaalmacén de Hive no es consciente de estos cambios. El MSCKcomando actualiza los metadatos de las particiones en el metabastore de Hive para las particiones que se agregaron o eliminaron directamente del sistema de archivos. La sintaxis del comando es:

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

Hive implementa este comando de la siguiente manera:

  1. Hive recupera todas las particiones de la tabla del metaalmacén. A partir de la lista de rutas de particiones que no existen en el sistema de archivos, crea una lista de particiones para eliminarlas del metaalmacén.

  2. Hive recopila las rutas de las particiones presentes en el sistema de archivos, las compara con la lista de particiones del metaalmacén y genera una lista de las particiones que deben agregarse al metaalmacén.

  3. Hive actualiza el metaalmacén mediante el modo ADD, DROP o SYNC.

nota

Cuando hay muchas particiones en el metaalmacén, el paso para comprobar si una partición no existe en el sistema de archivos tarda mucho en ejecutarse, ya que la exists API llamada al sistema de archivos debe realizarse para cada partición.

En Amazon EMR 6.5.0, Hive introdujo una bandera llamada. hive.emr.optimize.msck.fs.check Cuando está activado, este indicador hace que Hive compruebe la presencia de una partición de la lista de rutas de partición del sistema de archivos que se generó en el paso 2 anterior, en lugar de realizar llamadas al sistema de archivos. API En Amazon EMR 6.8.0, Hive habilitaba esta optimización de forma predeterminada, lo que eliminaba la necesidad de establecer la marca. hive.emr.optimize.msck.fs.check