View a markdown version of this page

Migrieren von vorherigen HBase-Versionen - Amazon EMR

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Migrieren von vorherigen HBase-Versionen

Informationen zum Migrieren von Daten aus einer vorherigen HBase-Version finden Sie unter Upgrading und HBase version number and compatibility im Apache HBase-Referenzleitfaden. Möglicherweise müssen Sie den Anforderungen für ein Upgrade von HBase-Versionen vor 1.0 besondere Aufmerksamkeit schenken.

Migration auf Amazon EMR Version 7.4.0 oder höher

Anmerkung

Folgen Sie diesen Richtlinien, wenn Sie von einer EMR-Version vor 7.4.0 auf eine Version über 7.3.0 migrieren.

Wenn Sie derzeit eine EMR-Version mit aktivierter Amazon Store File Tracking-Funktion ausführen, die in den Versionen 6.2.0 bis 7.3.0 enthalten ist, und Sie auf eine Version mit OSS Store File Tracking aktualisieren möchten, die in EMR-Versionen nach 7.3.0 verfügbar ist, gehen Sie wie folgt vor:

  1. Im vorhandenen Cluster:

    1. Deaktivieren Sie die hbase:storefile Tabelle.

    2. Lass den hbase:storefile Tisch fallen.

    3. Spülenhbase:meta.

    4. Warten Sie, bis die Metadaten aktualisiert sind.

  2. Im neuen Cluster:

    1. Legen Sie dasselbe Amazon S3-Verzeichnis als Stammverzeichnis fest.

    2. Starten Sie den Cluster mit der DefaultStoreFileTracker Implementierung:

      { "Classification": "hbase-site", "Properties": { hbase.store.file-tracker.impl: "org.apache.hadoop.hbase.regionserver.storefiletracker.DefaultStoreFileTracker" } }
    3. Verwenden Sie auf der Ebene der Tabellen- oder Spaltenfamilie die folgenden Befehle, um den Store File Tracker zu ändern:

      1. Ändern Sie den Store File Tracker der Tabelle oder Tabellenspaltenfamilie:

        hbase> change_sft 't1','FILE' hbase> change_sft 't2','cf1','FILE'
      2. Ändere den gesamten Store File Tracker der Tabelle, der dem angegebenen regulären Ausdruck (Regex) entspricht:

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

Migration von HBase auf Amazon S3-Clustern auf Amazon EMR Version 7.12.0 oder höher mithilfe von Clustern Read-Replica

Ab EMR 7.12.0 können Sie eine Read-Replica-HBase auf einem Amazon S3-Cluster vom schreibgeschützten Modus in den aktiven Modus umschalten, sodass sowohl Lese- als auch Schreibvorgänge möglich sind. Diese Funktionalität wird durch zwei neue HBase-Shell-Befehle bereitgestellt.

Anmerkung

Wenn Sie Amazon EMR Version 7.12.0 oder höher verwenden, verwenden Sie die folgende Beispielkonfiguration:

{ "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

    Ruft den aktuellen Lese- und Schreibbetriebsstatus des Clusters ab.

    Ausgabe:

    • INAKTIV — Der Cluster befindet sich im schreibgeschützten Modus und der Schreibvorgang ist inaktiv.

    • AKTIV — Der Cluster unterstützt sowohl Lese- als auch Schreibvorgänge.

  2. readonly_switch

    Aktiviert oder deaktiviert den Nur-Lese-Modus mit konfigurierbaren Optionen für den Switching-Vorgang.

    Syntax:

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

    Parameter:

    • readonly (erforderlich) — Boolescher Wert zum Aktivieren (true) oder deaktivieren (false) des schreibgeschützten Modus

    • force_flush (optional) — Erzwingt eine Datenleerung, bevor vom aktiven in den schreibgeschützten Modus gewechselt wird (Standardeinstellung: true)

    • force_refresh_meta (optional) — Erzwingt die Aktualisierung der Metatabelle, wenn vom schreibgeschützten in den aktiven Modus gewechselt wird (Standardeinstellung: true)

    • force_refresh_hfile (optional) — Erzwingt eine Aktualisierung der hFile, wenn vom schreibgeschützten in den aktiven Modus gewechselt wird (Standardeinstellung: true)

Migrationsschritte

Wenn Sie derzeit ein EMR 6.0.0+ HBase auf einem Amazon S3-Cluster ausführen und auf einen EMR-Cluster 7.12.0 oder höher migrieren möchten, gehen Sie wie folgt vor:

  1. Stellen Sie sicher, dass sich Ihr Quell-Cluster in einem stabilen Zustand ohne Inkonsistenzen befindet, indem Sie den HBCK-Bericht oder festgefahrene Prozeduren auf der HBase-Master-Benutzeroberfläche verwenden.

    sudo -u hbase hbase hbck > hbck_report.txt
  2. Stellen Sie sicher, dass sich auf dem Quellcluster keine Regionen im SPLIT-Status befinden:

    1. Wenn es Regionen im SPLIT-Status gibt, führen Sie umfangreiche Komprimierungen für die jeweiligen Tabellen durch und warten Sie, bis sie abgeschlossen sind

      major_compact <table_name>
    2. Führen Sie den catalogjanitor_run Vorgang in der HBase-Shell aus, nachdem die Komprimierung abgeschlossen ist

  3. Erstellen Sie einen neuen EMR 7.12.0+-Cluster, der als Read-Replica konfiguriert ist und auf denselben Amazon S3-Standort wie Ihr Quell-Cluster verweist. In diesem Blog finden Sie weitere Informationen zur Einrichtung eines Read Replica-Clusters. Starten Sie den neuen Cluster mit der DefaultStoreFileTracker Konfiguration, wie in den obigen Schritten beschrieben, wenn Sie auf das OSS Store-Datei-Tracking aktualisieren möchten.

  4. Warten Sie, bis der Master-Knoten vollständig initialisiert ist. Überprüfen Sie den Datenzugriff, indem Sie die Tabellen lesen und sicherstellen, dass sich der neue Cluster im schreibgeschützten Modus befindet

    hbase:001:0> readonly_state Took 0.4612 seconds => "INACTIVE"
  5. Deaktivieren Sie den Ausgleich und die Komprimierung auf dem Quell-Cluster:

    echo "balance_switch false" | hbase shell echo "compaction_switch false" | hbase shell
  6. Stellen Sie sicher, dass auf der Benutzeroberfläche des Read-Replica-Clusters nichts overlaps/inconsistencies angezeigt wird, und stellen Sie sicher, dass Regionen den Status OPEN aufweisen und ordnungsgemäß zugewiesen sind.

  7. Konvertieren Sie das Store-Datei-Tracking mithilfe der Befehle auf dem Read-Replica-Cluster, die im obigen Abschnitt erwähnt wurden, wenn Sie zu wechseln möchten. FileBasedTracker

  8. Beenden Sie die Jobs, die auf den Quell-Cluster verweisen, leeren Sie alle Tabellen und fahren Sie den Quell-Cluster herunter. Warten Sie, bis der Vorgang abgeschlossen ist, bevor Sie fortfahren.

    echo "flush 'usertable'" | hbase shell echo "flush 'hbase:meta'" | hbase shell echo "flush 'hbase:namespace'" | hbase shell
  9. Schalten Sie den Read-Replica-Cluster in den aktiven Modus, um Schreibvorgänge zu ermöglichen. Nach Abschluss dieses Schritts unterstützt Ihr neuer Cluster sowohl Lese- als auch Schreibvorgänge, und die Migration ist abgeschlossen.

    hbase:010:0> readonly_switch false Took 38.1568 seconds
  10. Validieren Sie Schreibvorgänge auf dem neuen Cluster und stellen Sie sicher, dass alle Regionen Anfragen verarbeiten.

Anmerkung

Es kann zu jedem Zeitpunkt nur ein aktiver Cluster geben, der auf einen Amazon S3-Standort verweist. Daher sollte das Umschalten der Read-Replica auf Aktiv erst erfolgen, nachdem der Quell-Cluster beendet wurde.