View a markdown version of this page

Migración desde versiones de HBase anteriores - 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.

Migración desde versiones de HBase anteriores

Para migrar datos desde una versión de HBase anterior, consulte Upgrading y HBase version number and compatibility en la Guía de referencia de Apache HBase. Es posible que tenga que prestar especial atención a los requisitos para la actualización desde versiones de HBase anteriores a la 1.0.

Migración a Amazon EMR versión 7.4.0 o posterior

nota

Siga estas pautas si va a migrar de una versión EMR anterior a la 7.4.0 a una versión posterior a la 7.3.0.

Si actualmente utiliza una versión de EMR con la característica de seguimiento de archivos de tienda de Amazon habilitada, que se incluye en las versiones 6.2.0 a 7.3.0, y quiere actualizar a una versión con OSS Store File Tracking, que está disponible en las versiones de EMR posteriores a la 7.3.0, siga estos pasos:

  1. En el clúster existente:

    1. Deshabilite la tabla hbase:storefile.

    2. Elimine la tabla hbase:storefile.

    3. Vacíe hbase:meta.

    4. Espere a que se actualicen los metadatos.

  2. En el nuevo clúster:

    1. Establezca el mismo directorio de Amazon S3 que el directorio raíz.

    2. Inicie el clúster con la implementación de DefaultStoreFileTracker:

      { "Classification": "hbase-site", "Properties": { hbase.store.file-tracker.impl: "org.apache.hadoop.hbase.regionserver.storefiletracker.DefaultStoreFileTracker" } }
    3. A nivel de familia de tablas o columnas, use los siguientes comandos para cambiar el rastreador de archivos del almacén:

      1. Cambie el Store File Tracker de la tabla o familia de columnas de la tabla:

        hbase> change_sft 't1','FILE' hbase> change_sft 't2','cf1','FILE'
      2. Cambie todos los registros de archivos almacenados de la tabla que coincidan con la expresión regular (regex) dada:

        hbase> change_sft_all 't.*','FILE' hbase> change_sft_all 'ns:.*','FILE' hbase> change_sft_all 'ns:t.*','FILE'

Migración de clústeres de HBase en Amazon S3 a la versión 7.12.0 o posterior de Amazon EMR mediante clústeres Read-Replica

A partir de EMR 7.12.0, puede cambiar un clúster de HBase con réplicas de lectura y lectura en Amazon S3 del modo de solo lectura al modo activo, lo que permite realizar operaciones de lectura y escritura. Esta funcionalidad se proporciona mediante dos nuevos comandos de shell de HBase.

nota

Si utiliza la versión 7.12.0 o posterior de Amazon EMR, utilice el siguiente ejemplo de configuración:

{ "Classification": "hbase-site", "Properties": { "hbase.rootdir": "s3://{S3_LOCATION}" } }, { "Classification": "hbase", "Properties": { "hbase.emr.storageMode": "s3", "hbase.emr.readreplica.enabled.v2": "true" } }
  1. readonly_state

    Recupera el estado operativo actual de lectura-escritura del clúster.

    Salida:

    • INACTIVO: el clúster está en modo de solo lectura y la escritura está inactiva.

    • ACTIVO: el clúster admite operaciones de lectura y escritura.

  2. readonly_switch

    Activa o desactiva el modo de solo lectura con opciones configurables para el proceso de conmutación.

    Sintaxis:

    readonly_switch <readonly>,<force_flush>,<force_refresh_meta>,<force_refresh_hfile>

    Parámetros:

    • readonly (obligatorio): valor booleano para habilitar (true) o deshabilitar (false) el modo de solo lectura

    • force_flush (opcional): fuerza la limpieza de los datos antes de cambiar del modo activo al de solo lectura (predeterminado: verdadero)

    • force_refresh_meta (opcional): fuerza la actualización de la metatabla al cambiar del modo de solo lectura al modo activo (predeterminado: true)

    • force_refresh_hfile (opcional): fuerza la actualización de HFile al cambiar del modo de solo lectura al modo activo (predeterminado: true)

Pasos para realizar la migración

Si actualmente ejecuta un clúster HBase de EMR 6.0.0+ en Amazon S3 y desea migrar a un clúster de EMR 7.12.0 o posterior, siga estos pasos:

  1. Asegúrese de que su clúster de origen esté en un estado estable y sin incoherencias mediante el informe hbck o los procedimientos bloqueados de la interfaz de usuario maestra de HBase.

    sudo -u hbase hbase hbck > hbck_report.txt
  2. Asegúrese de que no haya regiones en estado SPLIT en el clúster de origen:

    1. Si hay regiones en el estado SPLIT, ejecute las compactaciones principales en las tablas correspondientes y espere a que se completen

      major_compact <table_name>
    2. Ejecute catalogjanitor_run en el shell de HBase una vez finalizada la compactación

  3. Cree un nuevo clúster de EMR 7.12.0+ configurado como una réplica de lectura que apunte a la misma ubicación de Amazon S3 que el clúster de origen. Consulte este blog para obtener más información sobre cómo configurar un clúster de réplicas de lectura. Inicie el nuevo clúster con la DefaultStoreFileTracker configuración mencionada en los pasos anteriores si desea actualizar al OSS Store de seguimiento de archivos.

  4. Espere a que el nodo principal se inicialice por completo. Verifique la accesibilidad de los datos leyendo las tablas y confirme que el nuevo clúster esté en modo de solo lectura

    hbase:001:0> readonly_state Took 0.4612 seconds => "INACTIVE"
  5. Deshabilite el equilibrio y las compactaciones en el clúster de origen:

    echo "balance_switch false" | hbase shell echo "compaction_switch false" | hbase shell
  6. Asegúrese de que no overlaps/inconsistencies aparezcan elementos en la interfaz de usuario del clúster de lectura y réplica y compruebe que las regiones muestren el estado ABIERTAS y estén asignadas correctamente.

  7. Convierta el seguimiento de archivos del almacén mediante los comandos del clúster de lectura y réplica mencionados en la sección anterior si desea cambiarlo por. FileBasedTracker

  8. Detenga las tareas que apuntan al clúster de origen, vacíe todas las tablas y cierre el clúster de origen. Espere a que finalice por completo antes de continuar.

    echo "flush 'usertable'" | hbase shell echo "flush 'hbase:meta'" | hbase shell echo "flush 'hbase:namespace'" | hbase shell
  9. Cambie el clúster de lectura-réplica al modo activo para habilitar las operaciones de escritura. Tras completar este paso, el nuevo clúster admitirá las operaciones de lectura y escritura, y la migración habrá finalizado.

    hbase:010:0> readonly_switch false Took 38.1568 seconds
  10. Valide las escrituras en el nuevo clúster y asegúrese de que todas las regiones atiendan las solicitudes.

nota

Solo puede haber un clúster activo que apunte a una ubicación de Amazon S3 en cualquier momento. Por lo tanto, el cambio de la réplica de lectura a la posición activa solo debe hacerse después de que el clúster de origen haya terminado.