HBase-Anwendungsmerkmale bei früheren AMI-Versionen von Amazon EMR - Amazon EMR

HBase-Anwendungsmerkmale bei früheren AMI-Versionen von Amazon EMR

Unterstützte HBase-Versionen

HBase-Version AMI-Version AWS CLI Konfigurationsparameter HBase-Versionsdetails
0.94.18 3.1.0 und höher

--ami-version 3.1

--ami-version 3.2

--ami-version 3.3

--applications Name=HBase

  • Fehlerbehebungen und Verbesserungen

0.94.7 3.0-3.0.4

--ami-version 3.0

--applications Name=HBase

0.92 2.2 und höher

--ami-version 2.2 or later

--applications Name=HBase

HBase-Cluster-Voraussetzungen

Ein Cluster, der mit den Amazon-EMR-AMI-Versionen 2.x und 3.x erstellt wurde, sollte die folgenden Anforderungen für HBase erfüllen.

  • Die AWS CLI (optional) – Für die Interaktion mit HBase über die Befehlszeile laden Sie die neueste Version der AWS CLI herunter und installieren diese. Weitere Informationen finden Sie unter Installieren der AWS Command Line Interface im AWS Command Line Interface-Leitfaden.

  • Mindestens zwei Instances (optional) – Auf dem Hauptknoten des Clusters werden der HBase-Master-Server und Zookeeper und auf den Aufgabenknoten die HBase-Regionsserver ausgeführt. Für eine optimale Leistung sollten HBase-Cluster auf mindestens zwei EC2-Instances ausgeführt werden. Für Evaluierungszwecke können Sie HBase aber auch auf einem einzigen Knoten ausführen.

  • Cluster mit langer Ausführung – HBase läuft nur auf Clustern mit Langzeit-Ausführung. Standardmäßig werden von der Befehlszeilenschnittstelle (CLI) und der Amazon-EMR-Konsole lang laufende Cluster erstellt.

  • Ein Amazon-EC2-Schlüsselpaar (empfohlen) – Zur Verwendung des Netzwerkprotokolls Secure Shell (SSH) für die Verbindung mit dem Hauptknoten und für die Ausführung von HBase-Shell-Befehlen müssen Sie beim Erstellen des Clusters ein Amazon-EC2-Schlüsselpaar verwenden.

  • Die richtigen AMI- und Hadoop-Versionen – HBase-Cluster werden derzeit nur auf Hadoop 20.205 oder höher unterstützt.

  • Ganglia (optional) – Um die HBase-Leistungsmetriken zu überwachen, installieren Sie beim Erstellen des Clusters Ganglia.

  • Einen Amazon-S3-Bucket für Protokolle (optional) – Die Protokolle für HBase sind auf dem Hauptknoten verfügbar. Wenn Sie möchten, dass diese Protokolle nach Amazon S3 kopiert werden, geben Sie beim Erstellen des Clusters einen S3-Bucket für den Empfang der Protokolldateien an.

Erstellen eines Clusters mit HBase

Die folgende Tabelle enthält Optionen, die verfügbar sind, wenn mithilfe der Konsole ein Cluster mit HBase mittels eine AMI-Version von Amazon EMR erstellt wird.

Feld Action
Restore from backup (Wiederherstellen mithilfe der Sicherung) Geben Sie an, ob der HBase-Cluster mit in Amazon S3 gespeicherten Daten vorab geladen werden soll.
Backup location (Speicherort der Sicherung) Geben Sie den URI an, in dem die Sicherung in Amazon S3 gespeichert ist, von der die Wiederherstellung erfolgen soll.
Backup version (Sicherungsversion) Geben Sie optional den Versionsnamen der zu verwendenden Sicherung unter Backup location (Speicherort der Sicherung) an. Wenn Sie in dieses Feld keinen Wert eingeben, verwendet Amazon EMR die aktuelle Sicherung unter Backup-Speicherort, um den neuen HBase-Cluster zu füllen.
Schedule regular backups (Regelmäßige Sicherungen planen) Geben Sie an, ob automatisch inkrementelle Sicherungen eingeplant werden sollen. Die erste Sicherung ist ein vollständiges Backup, um eine Baseline für künftige inkrementelle Sicherungen zu erstellen.
Consistent backup (Konsistente Sicherung) Geben Sie an, ob die Sicherungen konsistent sein sollen. Bei einer konsistenten Sicherung werden die Schreibvorgänge während der anfänglichen Sicherungsstufe, der knotenübergreifenden Synchronisierung, angehalten. Alle auf diese Weise angehaltenen Schreibvorgänge werden in eine Warteschlange gestellt und nach Abschluss der Synchronisierung fortgesetzt.
Backup frequency (Sicherungshäufigkeit) Die Anzahl der Tage/Stunden/Minuten zwischen den geplanten Sicherungen.
Backup location (Speicherort der Sicherung) Der Amazon-S3-URI, in dem die Sicherungen gespeichert werden. Der Sicherungsort sollte für jeden HBase-Cluster unterschiedlich sein, um sicherzustellen, dass differenzielle Sicherungen intakt bleiben.
Backup start time (Startzeit der Sicherung) Geben Sie an, wann die erste Sicherung durchgeführt werden soll. Sie können für dieses Feld now angeben. Dann wird die erste Sicherung gestartet, sobald der Cluster ausgeführt wird. Oder geben Sie ein Datum und eine Uhrzeit im ISO-Format ein. Beispielsweise würde 2012-06-15T20:00Z die Startzeit auf 15. Juni 2012 um 20:00 Uhr UTC festlegen.

Der folgende AWS CLI-Beispielbefehl startet einen Cluster mit HBase und anderen Anwendungen:

Anmerkung

Linux-Zeilenfortsetzungszeichen (\) sind aus Gründen der Lesbarkeit enthalten. Sie können entfernt oder in Linux-Befehlen verwendet werden. Entfernen Sie sie unter Windows oder ersetzen Sie sie durch ein Caret-Zeichen (^).

aws emr create-cluster --name "Test cluster" --ami-version 3.3 \ --applications Name=Hue Name=Hive Name=Pig Name=HBase \ --use-default-roles --ec2-attributes KeyName=myKey \ --instance-type c1.xlarge --instance-count 3 --termination-protected

Nach dem Herstellen der Verbindung zwischen dem Hive- und HBase-Cluster (wie in der vorherigen Vorgehensweise gezeigt) können Sie auf die Daten zugreifen, die auf dem HBase-Cluster gespeichert sind, indem Sie eine externe Tabelle in Hive erstellen.

Wenn Sie das folgende Beispiel von der Hive-Eingabeaufforderung ausführen, wird eine externe Tabelle erstellt, die auf Daten verweist, die in einer HBase-Tabelle namens inputTable gespeichert sind. Sie können dann auf inputTable in Hive-Anweisungen verweisen, um Daten abzufragen und zu ändern, die im HBase-Cluster gespeichert sind.

Anmerkung

Im folgenden Beispiel wird protobuf-java-2.4.0a.jar in AMI 2.3.3 verwendet. Sie sollten das Beispiel jedoch an Ihre Version anpassen. Um zu prüfen, welche Version des Protocol Buffer-JAR Sie haben, führen Sie den folgenden Befehl an der Hive-Eingabeaufforderung aus: ! ls /home/hadoop/lib;.

add jar lib/emr-metrics-1.0.jar ; add jar lib/protobuf-java-2.4.0a.jar ; set hbase.zookeeper.quorum=ec2-107-21-163-157.compute-1.amazonaws.com ; create external table inputTable (key string, value string) stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties ("hbase.columns.mapping" = ":key,f1:col1") tblproperties ("hbase.table.name" = "t1"); select count(*) from inputTable ;

Anpassen der HBase-Konfiguration

Die Standardeinstellungen sollten zwar problemlos bei den meisten Anwendungen funktionieren, dennoch haben Sie die Möglichkeit, Ihre HBase-Konfigurationseinstellungen zu ändern. Führen Sie hierzu eines der beiden Bootstrap-Aktionsskripts aus:

  • configure-hbase-daemons – Konfiguriert die Eigenschaften des Master- und Regionsservers und der Zookeeper-Daemons. Diese Eigenschaften umfassen die Heap-Größe sowie Optionen zur Weitergabe an die Java Virtual Machine (JVM) beim Starten des HBase-Daemons. Sie definieren diese Eigenschaften als Argumente in der Bootstrap-Aktion. Durch diese Bootstrap-Aktion wird die Konfigurationsdatei "/home/hadoop/conf/hbase-user-env.sh" auf dem HBase-Cluster geändert.

  • configure-hbase – Konfiguriert HBase-standortspezifische Einstellungen, z. B. den Port, an den der HBase-Master gebunden werden soll, sowie die maximale Anzahl an Wiederholversuchen einer Aktion durch den CLI-Client. Sie können diese Einstellungen einzeln, als Argumente in der Bootstrap-Aktion definieren oder Sie geben den Speicherort einer XML-Konfigurationsdatei in Amazon S3 an. Durch diese Bootstrap-Aktion wird die Konfigurationsdatei "/home/hadoop/conf/hbase-site.xml" auf dem HBase-Cluster geändert.

Anmerkung

Diese Skripts können wie andere Bootstrap-Aktionen auch nur beim Erstellen des Clusters ausgeführt werden. Sie können sie nicht verwenden, um die Konfiguration eines HBase-Clusters zu ändern, der gerade ausgeführt wird.

Wenn Sie die Bootstrap-Aktionen configure-hbase oder configure-hbase-daemons ausführen, werden die Standardwerte durch Ihre angegebenen Werte überschrieben. Alle Werte, die Sie nicht explizit angeben, erhalten die Standardwerte.

Die Konfiguration von HBase mit diesen Bootstrap-Aktionen ähnelt der Verwendung von Bootstrap-Aktionen in Amazon EMR zur Konfiguration von Hadoop-Einstellungen und Hadoop-Daemon-Eigenschaften. Der Unterschied besteht darin, dass HBase nicht über Speicheroptionen für einzelne Prozesse verfügt. Die Speicheroptionen werden stattdessen mit dem Argument --daemon-opts festgelegt, wobei daemon durch den Namen des zu konfigurierenden Daemons ersetzt wird.

HBase-Daemons konfigurieren

Amazon EMR bietet eine Bootstrap-Aktion, s3://region.elasticmapreduce/bootstrap-actions/configure-hbase-daemons, mit der Sie die Konfiguration von HBase-Daemons ändern können. Dabei ist region die Region, in die Sie Ihren HBase-Cluster starten.

Zum Konfigurieren von HBase-Daemons mit der AWS CLI fügen Sie die Bootstrap-Aktion configure-hbase-daemons hinzu, wenn Sie den Cluster starten, um einen oder mehrere HBase-Daemons zu konfigurieren. Sie können die folgenden Eigenschaften festlegen:

Property (Eigenschaft) Description (Beschreibung)
hbase-master-opts Optionen, die steuern, wie die JVM den Master-Daemon ausführt. Wenn diese Optionen definiert sind, werden die HBASE_MASTER_OPTS-Standardvariablen damit überschrieben.
regionserver-opts Optionen, die steuern, wie die JVM den Regionsserver-Daemon ausführt. Wenn diese Optionen definiert sind, werden die HBASE_REGIONSERVER_OPTS-Standardvariablen damit überschrieben.
zookeeper-opts Optionen, die steuern, wie die JVM den Zookeeper-Daemon ausführt. Wenn diese Optionen definiert sind, werden die HBASE_ZOOKEEPER_OPTS-Standardvariablen damit überschrieben.

Weitere Informationen zu diesen Optionen finden Sie unter hbase-env.sh in der HBase-Dokumentation.

Eine Bootstrap-Aktion zum Konfigurieren von Werten für zookeeper-opts und hbase-master-opts wird im folgenden Beispiel dargestellt.

Anmerkung

Linux-Zeilenfortsetzungszeichen (\) sind aus Gründen der Lesbarkeit enthalten. Sie können entfernt oder in Linux-Befehlen verwendet werden. Entfernen Sie sie unter Windows oder ersetzen Sie sie durch ein Caret-Zeichen (^).

aws emr create-cluster --name "Test cluster" --ami-version 3.3 \ --applications Name=Hue Name=Hive Name=Pig Name=HBase \ --use-default-roles --ec2-attributes KeyName=myKey \ --instance-type c1.xlarge --instance-count 3 --termination-protected \ --bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hbase-daemons,\ Args=["--hbase-zookeeper-opts=-Xmx1024m -XX:GCTimeRatio=19","--hbase-master-opts=-Xmx2048m","--hbase-regionserver-opts=-Xmx4096m"]

HBase-Standorteinstellungen konfigurieren

Amazon EMR bietet eine Bootstrap-Aktion, s3://elasticmapreduce/bootstrap-actions/configure-hbase, mit der Sie die Konfiguration von HBase ändern können. Sie können die Konfigurationswerte einzeln, als Argumente in der Bootstrap-Aktion definieren oder Sie geben den Speicherort einer XML-Konfigurationsdatei in Amazon S3 an. Es bietet sich an, die Konfigurationswerte nacheinander zu definieren, wenn Sie nur einige wenige Konfigurationseinstellungen vornehmen müssen. Sie mit einer XML-Datei zu definieren, ist hilfreich, wenn Sie viele Änderungen vornehmen müssen oder Ihre Konfigurationseinstellungen für die Wiederverwendung speichern möchten.

Anmerkung

Sie können dem Amazon-S3-Bucket-Namen einen Regionspräfix voranstellen, z. B. s3://region.elasticmapreduce/bootstrap-actions/configure-hbase, wobei region die Region ist, in die Sie Ihren HBase-Cluster starten.

Durch diese Bootstrap-Aktion wird die Konfigurationsdatei /home/hadoop/conf/hbase-site.xml auf dem HBase-Cluster geändert. Die Bootstrap-Aktion kann nur beim Starten des HBase-Clusters ausgeführt werden.

Weitere Informationen zu den HBase-Standorteinstellungen, die Sie konfigurieren können, finden Sie unter Standardkonfiguration in der HBase-Dokumentation.

Legen Sie die Bootstrap-Aktion configure-hbase beim Starten des HBase-Clusters fest und geben Sie die zu ändernden Werte in hbase-site.xml an.

So geben Sie einzelne HBase-Standorteinstellungen mit der AWS CLI an
  • Um die Einstellung hbase.hregion.max.filesize zu ändern, geben Sie den folgenden Befehl ein und ersetzen Sie myKey durch den Namen Ihres Amazon-EC2-Schlüsselpaares.

    Anmerkung

    Linux-Zeilenfortsetzungszeichen (\) sind aus Gründen der Lesbarkeit enthalten. Sie können entfernt oder in Linux-Befehlen verwendet werden. Entfernen Sie sie unter Windows oder ersetzen Sie sie durch ein Caret-Zeichen (^).

    aws emr create-cluster --name "Test cluster" --ami-version 3.3 \ --applications Name=Hue Name=Hive Name=Pig Name=HBase \ --use-default-roles --ec2-attributes KeyName=myKey \ --instance-type c1.xlarge --instance-count 3 --termination-protected \ --bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hbase,Args=["-s","hbase.hregion.max.filesize=52428800"]
So geben Sie HBase-Standorteinstellungen mit einer XML-Datei über die AWS CLI an
  1. Erstellen Sie eine benutzerdefinierte Version von hbase-site.xml. Die benutzerdefinierte Datei muss eine gültige XML-Datei sein. Um Fehlerquellen zu minimieren, starten Sie mit der Standardkopie von hbase-site.xml auf dem HBase-Hauptknoten von Amazon EMR unter /home/hadoop/conf/hbase-site.xml. Bearbeiten Sie eine Kopie dieser Datei, anstatt eine Datei von Grund auf neu zu erstellen. Sie können Ihrer neuen Datei einen neuen Namen geben oder den Dateinamen hbase-site.xml belassen.

  2. Laden Sie die benutzerdefinierte Datei hbase-site.xml in einen Amazon-S3-Bucket hoch. Für die Datei sollten Berechtigungen festgelegt sein, damit das AWS-Konto, das den Cluster startet, auf die Datei zugreifen kann. Wenn das AWS-Konto, das den Cluster startet, auch Eigentümer des Amazon-S3-Buckets ist, erhält es Zugriff.

  3. Definieren Sie die Bootstrap-Aktion configure-hbase beim Starten des HBase-Clusters und fügen Sie den Speicherort Ihrer benutzerdefinierten Datei hbase-site.xml ein. Beim folgenden Beispiel sind die HBase-Standortkonfigurationswerte auf Werte in der Datei s3://mybucket/my-hbase-site.xml festgelegt. Geben Sie den folgenden Befehl ein, ersetzen Sie myKey durch den Namen Ihres EC2-Schlüsselpaares und mybucket durch den Namen Ihres Amazon-S3-Buckets.

    Anmerkung

    Linux-Zeilenfortsetzungszeichen (\) sind aus Gründen der Lesbarkeit enthalten. Sie können entfernt oder in Linux-Befehlen verwendet werden. Entfernen Sie sie unter Windows oder ersetzen Sie sie durch ein Caret-Zeichen (^).

    aws emr create-cluster --name "Test cluster" --ami-version 3.3 \ --applications Name=Hue Name=Hive Name=Pig Name=HBase \ --use-default-roles --ec2-attributes KeyName=myKey \ --instance-type c1.xlarge --instance-count 3 --termination-protected \ --bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hbase,Args=["--site-config-file","s3://mybucket/config.xml"]

    Wenn Sie mehr als eine Option zum Anpassen der HBase-Operation angeben, müssen Sie jedem Schlüssel-Wert-Paar einen -s-Optionsschalter voranstellen, wie im folgenden Beispiel gezeigt:

    --bootstrap-actions s3://elasticmapreduce/bootstrap-actions/configure-hbase,Args=["-s","zookeeper.session.timeout=60000"]

Wenn der Proxy definiert und die SSH-Verbindung offen ist, können Sie die HBase-Benutzeroberfläche anzeigen, indem Sie ein Browser-Fenster mit http://master-public-dns-name:60010/master-status öffnen, wobei master-public-dns-name die öffentliche DNS-Adresse des Master-Knotens auf dem HBase-Cluster ist.

Sie können die aktuellen HBase-Protokolle anzeigen, indem Sie sich über SSH mit dem Master-Knoten verbinden und zum Verzeichnis mnt/var/log/hbase navigieren. Diese Protokolle sind nicht verfügbar, nachdem der Cluster beendet wurde, es sei denn, Sie aktivieren beim Starten des Clusters die Protokollierung nach Amazon S3.

HBase sichern und wiederherstellen

Amazon EMR bietet die Möglichkeit, Ihre HBase-Daten nach Amazon S3 zu sichern, entweder manuell oder über einen automatisierten Zeitplan. Sie können sowohl vollständige als auch inkrementelle Sicherungen durchführen. Nachdem Sie eine Version von HBase-Daten gesichert haben, können Sie diese auf einen HBase-Cluster wiederherstellen. Sie können die Wiederherstellung auf einem HBase-Cluster durchführen, der gerade ausgeführt wird, oder einen neuen Cluster starten, der mit den gesicherten Daten vorab gefüllt wird.

Während des Sicherungsvorgangs fährt HBase fort, Schreibbefehle auszuführen. Dadurch wird zwar sichergestellt, dass Ihr Cluster während der Sicherung verfügbar bleibt, es besteht aber das Risiko von Inkonsistenzen zwischen den Daten, die gesichert werden, und den Schreibvorgängen, die parallel ausgeführt werden. Um die Inkonsistenzen zu verstehen, die möglicherweise auftreten, müssen Sie berücksichtigen, dass HBase Schreibvorgänge auf die Knoten in seinem Cluster verteilt. Wenn ein Schreibvorgang erfolgt, nachdem ein bestimmter Knoten abgefragt wurde, werden diese Daten nicht in das Sicherungsarchiv aufgenommen. Möglicherweise stellen Sie sogar fest, dass frühere Schreibvorgänge auf dem HBase-Cluster (gesendet an einen Knoten, der bereits abgefragt wurde) nicht im Sicherungsarchiv vorhanden sind, während spätere Schreibvorgänge (gesendet an einen Knoten vor dessen Abfrage) enthalten sind.

Wenn eine konsistente Sicherung erforderlich ist, müssen Sie die Schreibvorgänge nach HBase während des ersten Teils des Sicherungsprozesses, der knotenübergreifenden Synchronisierung, anhalten. Sie tun dies, indem Sie beim Anfordern einer Sicherung den Parameter --consistent angeben. Mit diesem Parameter werden die Schreibvorgänge während dieses Zeitraums in eine Warteschlage gestellt und ausgeführt, sobald die Synchronisierung abgeschlossen ist. Sie können auch regelmäßige Sicherungen einplanen. Dadurch werden Inkonsistenzen, die im Laufe der Zeit entstehen, aufgelöst, da die Daten, die bei einer Sicherung nicht berücksichtigt wurden, im folgenden Vorgang gesichert werden.

Wenn Sie HBase-Daten sichern, sollten Sie für jeden Cluster ein anderes Sicherungsverzeichnis angeben. Eine einfache Möglichkeit dafür ist die Verwendung der Cluster-Kennung als Bestandteil des für das Sicherungsverzeichnis angegebenen Pfads. Zum Beispiel s3://mybucket/backups/j-3AEXXXXXX16F2. Dadurch wird sichergestellt, dass alle künftigen inkrementellen Backups auf den richtigen HBase-Cluster verweisen.

Wenn Sie alte, nicht mehr benötigte Sicherungsdateien löschen möchten, wird empfohlen, dass Sie zuerst eine vollständige Sicherung Ihrer HBase-Daten durchführen. Auf diese Weise wird sichergestellt, dass alle Daten erhalten bleiben. Außerdem bietet Ihnen dies eine Baseline für zukünftige inkrementelle Sicherungen. Nachdem die vollständige Sicherung abgeschlossen ist, können Sie zum Sicherungsverzeichnis navigieren und die alten Sicherungsdateien manuell löschen.

Der HBase-Sicherungsprozess verwendet für die Kopieroperation S3DistCp, für das gewisse Einschränkungen in Bezug auf den temporären Speicherplatz für Dateien bestehen.

HBase mit der Konsole sichern und wiederherstellen

Die Konsole bietet die Möglichkeit, einen neuen Cluster zu starten und mit Daten aus einer vorherigen HBase-Sicherung zu füllen. Außerdem können Sie periodische inkrementelle Sicherungen von HBase-Daten einplanen. Über die CLI stehen zusätzliche Sicherungs- und Wiederherstellungsfunktion zur Verfügung, z. B. können Daten auf einem bereits ausgeführten Cluster wiederhergestellt, manuelle Sicherungen durchgeführt und automatisierte vollständige Sicherungen terminiert werden.

So füllen Sie einen neuen Cluster mit archivierten HBase-Daten über die Konsole
  1. Navigieren Sie zur neuen Amazon-EMR-Konsole und wählen Sie in der Seitennavigation die Option Zur alten Konsole wechseln aus. Weitere Informationen darüber, was Sie erwartet, wenn Sie zur alten Konsole wechseln, finden Sie unter Verwenden der alten Konsole.

  2. Wählen Sie Create cluster (Cluster erstellen).

  3. Wählen Sie im Abschnitt Software Configuration (Softwarekonfiguration) unter Additional Applications (Zusätzliche Anwendungen) die Optionen HBase und Configure and add aus.

  4. Klicken Sie auf das Dialogfeld Add Application (Anwendung hinzufügen) und aktivieren Sie das Kontrollkästchen Restore From Backup (Wiederherstellen mithilfe der Sicherung).

  5. Geben Sie für Backup Location (Speicherort der Sicherung) den Speicherort der Sicherung an, die Sie in den neuen HBase-Cluster laden. Dies sollte eine Amazon-S3-URL im Format s3://myawsbucket/backups/ sein.

  6. Für Backup Version (Sicherungsversion) haben Sie durch Angabe eines Werts die Möglichkeit, den Namen einer zu ladenden Sicherungsversion anzugeben. Wenn Sie keinen Wert für Backupversion (Sicherungsversion) angeben, lädt Amazon EMR die letzte Sicherung in das angegebene Verzeichnis.

  7. Wählen Sie Add (Hinzufügen) und fahren Sie fort, um den Cluster mit den anderen Optionen wie gewünscht zu erstellen.

So planen Sie automatische Sicherungen von HBase-Daten mit der Konsole
  1. Wählen Sie im Abschnitt Software Configuration (Softwarekonfiguration) unter Additional Applications (Zusätzliche Anwendungen) die Optionen HBase und Configure and add aus.

  2. Wählen Sie Schedule Regular Backups (Regelmäßige Sicherungen planen).

  3. Geben Sie an, ob die Sicherungen konsistent sein sollen. Bei einer konsistenten Sicherung werden die Schreibvorgänge während der anfänglichen Sicherungsstufe, der knotenübergreifenden Synchronisierung, angehalten. Alle auf diese Weise angehaltenen Schreibvorgänge werden in eine Warteschlange gestellt und nach Abschluss der Synchronisierung fortgesetzt.

  4. Legen Sie fest, wie oft Sicherungen durchgeführt werden sollen, indem Sie eine Zahl für Backup Frequency (Sicherungshäufigkeit) eingeben, und wählen Sie Days (Tage), Hours (Stunden) oder Minutes (Minuten) aus. Bei der ersten automatischen Sicherung handelt es sich um eine vollständige Sicherung. Danach speichert Amazon EMR inkrementelle Backups basierend auf dem von Ihnen festgelegten Zeitplan.

  5. Geben Sie den Speicherort in Amazon S3 an, in dem die Sicherungen gespeichert werden sollen. Jeder HBase-Cluster sollte an einem anderen Speicherort in Amazon S3 gespeichert werden, um sicherzustellen, dass inkrementelle Backups korrekt berechnet werden.

  6. Geben Sie an, wann die erste Sicherung erfolgen soll, indem Sie einen Wert für Backup Start Time (Startzeit der Sicherung) eingeben. Sie können für dieses Feld now angeben. Dann wird die erste Sicherung gestartet, sobald der Cluster ausgeführt wird. Oder geben Sie ein Datum und eine Uhrzeit im ISO-Format ein. Beispielsweise würde 2013-09-26T20:00Z die Startzeit auf 26. September 2013 um 20:00 Uhr UTC festlegen.

  7. Wählen Sie Add (Hinzufügen) aus.

  8. Fahren Sie mit der Erstellung des Clusters je nach Bedarf mit den anderen Optionen fort.

HBase mit CloudWatch überwachen

Amazon EMR wertet drei Metriken zu CloudWatch aus, mit denen Sie Ihre HBase-Sicherungen überwachen können. Diese Metriken werden alle fünf Minuten im Push-Verfahren an CloudWatch gesendet und kostenlos zur Verfügung gestellt.

Metrik Beschreibung
HBaseBackupFailed

Gibt an, ob die letzte Sicherung fehlgeschlagen ist. Sie ist standardmäßig auf 0 gesetzt und wird in 1 geändert, wenn der vorhergehende Sicherungsversuch fehlgeschlagen ist. Diese Metrik wird nur für HBase-Cluster ausgewertet.

Anwendungsfall: Überwachen von HBase-Sicherungen

Einheiten: Anzahl

HBaseMostRecentBackupDuration

Dauer, bis die vorherige Sicherung abgeschlossen ist. Diese Metrik wird unabhängig davon erstellt, ob die letzte Sicherung erfolgreich war oder fehlgeschlagen ist. Während die Sicherung ausgeführt wird, gibt die Metrik die Anzahl der Minuten seit dem Start der Sicherung zurück. Diese Metrik wird nur für HBase-Cluster ausgewertet.

Anwendungsfall: Überwachen von HBase-Sicherungen

Einheiten: Minuten

HBaseTimeSinceLastSuccessfulBackup

Anzahl der verstrichenen Minuten nach der letzten erfolgreichen HBase-Sicherung auf Ihrem Cluster. Diese Metrik wird nur für HBase-Cluster ausgewertet.

Anwendungsfall: Überwachen von HBase-Sicherungen

Einheiten: Minuten

Konfigurieren von Ganglia für HBase

Sie konfigurieren Ganglia für HBase mit der Bootstrap-Aktion configure-hbase-for-ganglia. Diese Bootstrap-Aktion konfiguriert HBase so, dass Metriken in Ganglia veröffentlicht werden.

Sie müssen HBase und Ganglia beim Starten des Clusters konfigurieren. Die Ganglia-Auswertungen können nicht zu einem aktuell ausgeführten Cluster hinzugefügt werden.

Ganglia speichert Protokolldateien auch auf dem Server unter /mnt/var/log/ganglia/rrds. Wenn Sie Ihren Cluster so konfiguriert haben, dass Protokolldateien dauerhaft in einem Amazon-S3-Bucket gespeichert werden, werden die Ganglia-Protokolldateien auch dort dauerhaft abgelegt.

Verwenden Sie zum Starten eines Clusters mit Ganglia für HBase die Bootstrap-Aktion configure-hbase-for-ganglia, wie im folgenden Beispiel gezeigt.

Anmerkung

Linux-Zeilenfortsetzungszeichen (\) sind aus Gründen der Lesbarkeit enthalten. Sie können entfernt oder in Linux-Befehlen verwendet werden. Entfernen Sie sie unter Windows oder ersetzen Sie sie durch ein Caret-Zeichen (^).

aws emr create-cluster --name "Test cluster" --ami-version 3.3 \ --applications Name=Hue Name=Hive Name=Pig Name=HBase Name=Ganglia \ --use-default-roles --ec2-attributes KeyName=myKey \ --instance-type c1.xlarge --instance-count 3 --termination-protected \ --bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hbase-for-ganglia

Nachdem der Cluster gestartet wurde, für den Ganglia konfiguriert ist, können Sie auf die Ganglia-Grafiken und -Berichte über die Benutzeroberfläche auf dem Master-Knoten zugreifen.