F: Was ist Amazon EMR?

Amazon EMR ist ein Web-Service, mit dem Unternehmen, Forscher, Datenanalysten und Entwickler einfach und kosteneffektiv riesige Datenmengen verarbeiten können. Zum Einsatz kommt dabei ein Hadoop-Framework, das in der Cloud Computing-Infrastruktur von Amazon Elastic Compute Cloud (Amazon EC2) und Amazon Simple Storage Service (Amazon S3) ausgeführt wird.

F: Was kann ich mit Amazon EMR tun?

Mit Amazon EMR können Sie ohne Verzögerung so viel oder so wenig Kapazität wie gewünscht bereitstellen, um datenintensive Aufgaben in Anwendungsbereichen wie Webindizierung, Data Mining, Protokolldateianalyse, maschinelles Lernen, Finanzanalyse, wissenschaftliche Simulation und bioinformatische Forschung durchzuführen. Mit Amazon EMR können Sie sich auf das Zerlegen oder Analysieren Ihrer Daten konzentrieren, ohne sich über die zeitraubende Einrichtung, Verwaltung oder Optimierung von Hadoop-Clustern beziehungsweise die Rechenkapazität, auf der diese aufsetzen, kümmern zu müssen.

Amazon EMR eignet sich hervorragend für Prozesse, die eine schnelle und effiziente Verarbeitung großer Datenmengen erfordern. Auf der Web-Service-Oberfläche können Verarbeitungs-Workflows erstellt sowie der Fortschritt von ausgeführten Clustern überwacht werden. Zudem können Sie die unkomplizierte Web-Oberfläche der AWS Management Console verwenden, um Ihre "Cluster" zu starten und verarbeitungsintensive Berechnungen in Clustern aus Amazon EC2-Instances zu überwachen.

F: Wer kann Amazon EMR verwenden?

Jeder, der einen unkomplizierten Zugang zu leistungsstarker Datenanalyse wünscht, kann Amazon EMR einsetzen. Es sind keinerlei Entwicklerkenntnisse erforderlich, um mit den verschiedenen im Entwicklerhandbuch sowie in unserem Ressourcencenter erhältlichen Beispielanwendungen zu experimentieren.

F: Über welche neuen Funktionen verfügt Amazon EMR?

Amazon EMR vereinfacht wesentlich die Installation, Verwaltung und Abstimmung von Hadoop-Clustern und der zugrunde liegenden Rechenkapazität. Sie können ohne Wartezeit große Hadoop-Cluster einrichten, mit denen die Verarbeitung innerhalb von Minuten und nicht von Stunden oder Tagen gestartet wird. Wenn die Verarbeitung Ihres Clusters beendet ist, wird er automatisch heruntergefahren, sodass keine weiteren Kosten anfallen, es sei denn, Sie legen etwas anderes fest.

Mit diesem Service können datenintensive Aufgaben für Anwendungen wie Web-Indexing, Data Mining, Logdateianalysen, Maschinenlernen, Finanzanalysen, wissenschaftliche Simulationen und bioinformatische Forschungsarbeiten schnell und unkompliziert durchgeführt werden.

Softwareentwickler können eigene anspruchsvolle Anwendungen entwickeln und ausführen, um Funktionen z. B. zur Planung, zur Erstellung von Auftragsabläufen oder zur Überwachung hinzuzufügen.

F: Welches Datenverarbeitungssystem steht hinter Amazon EMR?

Amazon EMR verwendet Apache Hadoop als dezentralisiertes Datenverarbeitungssystem. Bei Hadoop handelt es sich um ein Java-Software-Framework auf Open-Source-Basis, das datenintensive dezentralisierte Anwendungen auf großen Commodity-Hardware-Clustern unterstützt. Hadoop verwendet das Programmiermodell "MapReduce", in dem die Daten in zahlreiche kleine Work-Fragmente unterteilt werden. Diese wiederum können auf jedem beliebigen Knoten des Clusters ausgeführt werden. Dieses Framework wurde von Entwicklern, Unternehmen und Startups eingehend erprobt und hat sich als zuverlässige Software-Plattform für die Verarbeitung von Daten im Petabyte-Bereich auf Tausenden von Commodity-Rechnern bewährt.

F: Was ist ein Amazon EMR-Cluster?

In Amazon EMR wird ein Amazon EMR-Auftrag (und alle ihm zugewiesenen Verarbeitungsschritte) als "Cluster" bezeichnet. Jeder Cluster hat einen mit "j-" beginnenden eindeutigen Bezeichner.

F: Was ist ein Cluster-Schritt?

Ein Cluster-Schritt ist eine vom Benutzer definierte Verarbeitungseinheit, die ungefähr einen datenverarbeitenden Algorithmus abbildet. Bei einem Schritt handelt es sich um eine Hadoop MapReduce-Anwendung als Java Jar oder ein in Java, Ruby, Perl, Python, PHP, R oder C++ implementiertes Streaming-Programm. Zur Ermittlung der Häufigkeit bestimmter Wörter in einem Dokument und Sortierung nach Häufigkeit: Zunächst wird eine MapReduce-Anwendung ausgeführt, mit der die Häufigkeit jedes Wortes ermittelt wird. Anschließend sortiert eine weitere MapReduce-Anwendung die Ergebnisse des ersten Schrittes.

F: In welchem Status kann sich ein Cluster befinden?

STARTING – EC2-Instances werden vom Cluster bereitgestellt, gestartet und konfiguriert.
BOOTSTRAPPING – Bootstrap-Aktionen werden auf den Cluster angewendet.
RUNNING – Ein Schritt für den Cluster wird derzeit ausgeführt.
WAITING – Der Cluster ist derzeit aktiv, es werden jedoch keine Schritte ausgeführt.
TERMINATING – Der Cluster wird gerade heruntergefahren.
TERMINATED – Der Cluster wurde fehlerfrei heruntergefahren.
TERMINATED_WITH_ERRORS – Der Cluster wurde mit Fehlern heruntergefahren.

F: In welchem Status kann sich ein Schritt befinden?

PENDING – Der Schritt wurde noch nicht ausgeführt.
RUNNING – Der Schritt wird ausgeführt.
COMPLETED – Der Schritt wurde erfolgreich abgeschlossen.
CANCELLED – Der Schritt wurde vor der Ausführung storniert, da ein früherer Schritt fehlgeschlagen ist oder ein Cluster vor der Ausführung abgebrochen wurde.
FAILED – Der Schritt ist während der Ausführung fehlgeschlagen.

F: Was sind bewährte Methoden für EMR?

Wenn Sie EMR in einer Produktionsumgebung ausführen, müssen Sie eine AMI-Version, Hive-Version, Pig-Version usw. angeben, um sicherzustellen, dass sich die Version nicht unerwartet ändert (z. B. wenn in EMR später Unterstützung für eine neuere Version hinzugefügt wird). Falls Ihr Cluster unternehmenskritisch ist, verwenden Sie für Aufgabenknoten nur Spot-Instances, da Sie bei steigendem Spot-Instance-Preis ggf. die Instances verlieren. Arbeiten Sie in einer Entwicklungsumgebung mit Protokollierung und aktivieren Sie das Debugging, um Fehler schneller ausmachen und korrigieren zu können. Wenn Sie GZIP nutzen, belassen Sie die Dateigröße bei 1-2 GB, da GZIP-Dateien nicht aufgeteilt werden können. Klicken Sie hier, um mehr über bewährte Methoden für EMR zu erfahren.


F: Wie erhalte ich Zugriff auf Amazon EMR?

Sie können über die AWS Management Console, Befehlszeilen-Tools, SDKs oder die EMR-API auf Amazon EMR zugreifen.

F: Wie starte ich einen Cluster?

Sie können in der AWS Management Console durch Ausfüllen eines einfachen Antragsformulars einen Cluster starten. Legen Sie im Antragsformular den Namen Ihres Clusters, den Speicherort Ihrer Eingabedaten in Amazon S3, Ihre Verarbeitungsanwendung, den gewünschten Speicherort der Datenausgabe sowie Anzahl und Typ der gewünschten Amazon EC2-Instances fest. Optional können Sie einen Speicherort Ihrer Cluster-Protokolldateien sowie SSH-Schlüssel zur Anmeldung bei Ihrem Cluster während der Ausführung angeben. Alternativ können Sie einen Cluster über die "RunJobFlow"-API oder den Befehl "create" in den Befehlszeilen-Tools starten.

F: Was sind die ersten Schritte zum Einstieg in Amazon EMR?

Zur Anmeldung bei Amazon EMR klicken Sie auf der Amazon EMR-Detailseite http://aws.amazon.com/elasticmapreduce auf die Schaltfläche "Jetzt anmelden". Für den Zugriff auf Amazon EMR müssen Sie bei Amazon EC2 und Amazon S3 angemeldet sein. Ansonsten werden Sie während des Anmeldeprozesses bei Amazon EMR zu einer Anmeldung aufgefordert. In der Amazon EMR-Dokumentation erhalten Sie mit dem Handbuch "Erste Schritte" eine erste Einführung in den Service.

F: Wie beende ich einen Cluster?

Sie können einen Cluster jederzeit über die AWS Management Console beenden, indem Sie auf den entsprechenden Cluster und anschließend auf die Schaltfläche "Terminate" klicken. Alternativ können Sie die "TerminateJobFlows"-API verwenden. Wenn Sie einen ausgeführten Cluster beenden, gehen alle Ergebnisse, die nicht dauerhaft in Amazon S3 gespeichert wurden, verloren und alle Amazon EC2-Instances werden heruntergefahren.

F: Unterstützt Amazon EMR mehrere Cluster gleichzeitig?

Ja. Sie können jederzeit einen neuen Cluster erstellen, auch wenn bereits ein oder mehrere Cluster ausgeführt werden.

F: Wie viele Cluster kann ich gleichzeitig ausführen?

Sie können beliebig viele Cluster ausführen. Die Anzahl der Instances für alle Ihre Cluster ist auf 20 begrenzt. Falls Sie weitere Instances benötigen, füllen Sie bitte das Antragsformular für Amazon EC2-Instances aus. Ihr Anwendungsfall und eine Instance-Aufstockung werden dann geprüft. Wenn Ihr Amazon EC2-Limit bereits erhöht wurde, wird das neue Limit bei Ihren Amazon EMR-Clustern berücksichtigt.


F: Wo finde ich Codebeispiele?

Beispiel-Code finden Sie in diesen Artikeln und Tutorials.

F: Wie entwickle ich eine Anwendung zur Datenverarbeitung?

Sie können einen Datenverarbeitungsauftrag auf Ihrem Desktop entwickeln, indem Sie beispielsweise Eclipse- oder NetBeans-Plug-Ins wie IBM MapReduce Tools for Eclipse (http://www.alphaworks.ibm.com/tech/mapreducetools) verwenden. Mit diesen Tools können Sie MapReduce-Aufträge auf einfache Weise entwickeln, debuggen und lokal auf Ihrem Rechner testen. Alternativ können Sie Ihren Cluster unter Einsatz einer oder mehrerer Instances direkt in Amazon EMR entwickeln.

F: Worin liegen die Vorteile von Befehlszeilen-Tools oder APIs im Vergleich zur AWS Management Console?

Die Befehlszeilen-Tools oder APIs bieten die Möglichkeit, Cluster programmgesteuert zu starten und ihre Ausführung zu überwachen, zusätzliche maßgeschneiderte Funktionen für Cluster zu erstellen (z. B. Sequenzen mit mehreren Verarbeitungsschritten, Planung, Workflows oder Überwachung) oder nützliche Tools und Anwendungen für andere Amazon EMR-Kunden zu entwickeln. Die AWS Management Console hingegen bietet eine benutzerfreundliche grafische Oberfläche, auf der Ihre Cluster direkt in einem Web-Browser gestartet und überwacht werden können.

F: Kann ich einem bereits ausgeführten Cluster Schritte hinzufügen?

Ja. Sobald ein Auftrag durchgeführt wird, können Sie über die "AddJobFlowSteps"-API optional weitere Schritte hinzufügen. Mit der "AddJobFlowSteps"-API werden am Ende der aktuellen Schrittfrequenz neue Schritte hinzugefügt. Diese API können Sie einsetzen, um eine bedingte Logik in Ihren Cluster zu implementieren, oder für Debug-Vorgänge nutzen.

F: Kann ich einen permanenten Cluster ausführen?

Ja. Amazon EMR-Cluster, die mit dem Kennzeichen "-alive" gestartet wurden, werden fortgesetzt, bis sie ausdrücklich beendet werden. Dies erlaubt es Kunden, einem Cluster bei Bedarf Schritte hinzuzufügen. Sie können diese Möglichkeit zum Debuggen der Logik Ihres Clusters nutzen, ohne wiederholt auf den Start des Clusters warten zu müssen. Ein permanenter Cluster bietet sich ebenfalls an, um umfangreiche Data Warehouse-Cluster auszuführen. Dies kann mit Data Warehouse- und Analysepaketen, die auf Hadoop basierend ausgeführt werden, beispielsweise Hive und Pig, kombiniert werden.

F: Werde ich benachrichtigt, wenn mein Cluster beendet ist?

Sie können sich für Amazon SNS registrieren und veranlassen, dass der Cluster nach Beendigung eine Nachricht an Ihr SNS-Thema übermittelt. Sie können auch den Fortschritt Ihres Clusters in der AWS Management Console einsehen oder über die Befehlszeile, das SDK oder die APIs abrufen, um den Status Ihres Clusters zu ermitteln.

F: Welche Programmiersprachen unterstützt Amazon EMR?

Sie können Java zum Implementieren von Hadoop Custom Jars verwenden. Alternativ sind andere Sprachen wie Perl, Python, Ruby, C++, PHP und R über Hadoop Streaming verwendbar. Nähere Informationen zur Verwendung von Hadoop Streaming finden Sie im Handbuch für Entwickler.

F: Welche Betriebssystemversionen unterstützt Amazon EMR?

Derzeit unterstützt Amazon EMR Debian/Squeeze im 32- und 64-Bit-Modus.

F: Ist die Hadoop-Benutzeroberfläche während der Ausführung meines Clusters sichtbar?

Ja. Nähere Informationen zum Zugriff auf die Hadoop-Benutzeroberfläche finden Sie im Abschnitt Hadoop-Benutzeroberfläche des Handbuchs für Entwickler.

F: Unterstützt Amazon EMR Softwarepakete anderer Hersteller?

Ja. Die empfohlene Methode zum Installieren von Software-Paketen anderer Hersteller in Ihrem Cluster ist die Verwendung von Bootstrap Actions. Alternativ können Sie Bibliotheken Dritter direkt in die Mapper- oder Reducer-Befehlsdatei packen. Sie können auch statisch kompilierte Befehlsdateien mit dem Hadoop Distributed-Cache-Mechanismus hochladen.

F: Welche Hadoop-Versionen unterstützt Amazon EMR?

Amazon EMR unterstützt Hadoop 2.2, 1.0.3 und 0.20.205.

F: Kann ich Alternativen zu Hadoop verwenden?

Einige EMR-Kunden nutzen Spark and Shark (In-Memory Mapreduce und Data Warehousing) als Verarbeitungssystem. In diesem Artikel finden Sie entsprechende Anweisungen.

F: Stellt Amazon der Open-Source-Community Verbesserungen für Hadoop zur Verfügung?

Ja. Das für Amazon EMR zuständige Team arbeitet aktiv mit der Open Source Community zusammen und stellt zahlreiche Korrekturen für den Hadoop-Quellcode zur Verfügung.

F: Aktualisiert Amazon EMR die unterstützte Hadoop-Version?

Amazon EMR aktualisiert regelmäßig seine unterstützte Version von Hadoop und richtet sich dabei nach Hadoop-Veröffentlichungen der Community. Dabei kann es vorkommen, dass von Amazon EMR einzelne Hadoop-Versionen übersprungen werden.

F: Wie lange dauert es in der Regel, bis Amazon EMR ältere Versionen von Hadoop nicht mehr unterstützt?

Amazon EMR stellt die Unterstützung älterer Hadoop-Versionen einige Monate nach der Aktualisierung ein. Amazon EMR-APIs sind jedoch abwärtskompatibel. Wenn Tools auf Basis dieser APIs entwickelt werden, sind diese auch dann funktionsfähig, wenn die verwendete Hadoop-Version von Amazon EMR aktualisiert wird.


F: Wie kann ich meinen Cluster debuggen?

Klicken Sie zuerst auf den Cluster, den Sie debuggen möchten. Klicken Sie dann auf die Schaltfläche "Debug", um das Cluster-Debug-Fenster in der AWS Management Console zu öffnen. Hier können Sie die Fortschritte verfolgen und Probleme in den einzelnen Schritten, Aufgaben bzw. versuchten Aufgaben der Cluster zu identifizieren. Alternativ können Sie über SSH direkt auf die Amazon Elastic Compute Cloud (Amazon EC2)-Instances zugreifen, die die Cluster ausführen und Ihren bevorzugten Befehlszeilen-Debugger zur Fehlerbehebung des Clusters einsetzen.

F: Was ist das Cluster-Debug-Fenster?

Das Cluster-Debug-Fenster ist ein Teil der AWS Management Console, in dem Sie die Fortschritte im Ablauf verfolgen und Probleme in den einzelnen Schritten, Aufgaben bzw. versuchten Aufgaben der Cluster identifizieren können. Um Zugriff auf das Cluster-Debug-Fenster zu erhalten, klicken Sie zunächst auf den Cluster, den Sie debuggen möchten, und dann auf die Schaltfläche "Debug".

F: Wie kann ich Debugging für den Cluster aktivieren?

Um Debugging zu aktivieren, müssen Sie das Kennzeichen "Enable Debugging" setzen, wenn Sie einen Cluster in der AWS Management Console erstellen. Alternativ können Sie beim Erstellen eines Clusters die Kennzeichen "--enable-debugging" und "--log-uri" im Befehlszeilen-Client setzen.

F: Wo kann ich Anweisungen zur Verwendung eines Cluster-Debug-Fensters finden?

Informationen zum Öffnen und Verwenden eines Cluster-Debug-Fensters finden Sie im Abschnitt "AWS Management Console" des Handbuchs für Entwickler.

F: Welche Arten von Clustern kann ich mit dem Cluster-Debug-Fenster debuggen?

Sie können alle Arten von Clustern debuggen, die derzeit von Amazon EMR unterstützt werden, einschließlich Custom Jar, Streaming, Hive und Pig.

F: Warum muss ich mich für Amazon SimpleDB registrieren, um Cluster debuggen zu können?

Amazon EMR speichert in Amazon SimpleDB unter Ihrem Konto Statusinformationen zu Hadoop-Projekten, Aufgaben und versuchten Aufgaben. Sie können Amazon SimpleDB hier abonnieren.

F: Kann ich die Funktion zum Debuggen von Clustern ohne Amazon SimpleDB-Abonnement verwenden?

Sie können Cluster-Schritte und Schrittprotokolle durchsuchen, ohne Amazon SimpleDB-Abonnement jedoch keine Hadoop-Projekte, Aufgaben und versuchten Aufgaben durchsuchen.

F: Kann ich zuvor angesammelte Cluster-Daten aus Amazon SimpleDB löschen?

Ja. Sie können Amazon SimpleDB-Domains löschen, die Amazon EMR für Sie erstellt hat. Anweisungen hierzu finden Sie in der Dokumentation zu Amazon SimpleDB.


F: Wie importiere ich Daten in Amazon S3?

Sie können Amazon S3 APIs verwenden, um Daten auf Amazon S3 hochzuladen. Alternativ stehen zahlreiche Open-Source- oder kommerzielleClients zur Verfügung, um schnell und einfach Daten auf Amazon S3 hochzuladen.

F: Wie erhalte ich Protokolle für abgeschlossene Cluster?

Hadoop-System- und Benutzerprotokolle werden in dem Amazon S3-Bucket abgelegt, den Sie bei der Erstellung eines Clusters festlegen.

F: Werden die Protokolle komprimiert?

Nein. Derzeit komprimiert Amazon EMR keine Protokolle, wenn diese in Amazon S3 verschoben werden.

F: Kann ich meine Daten nicht nur aus Amazon S3 sondern auch aus dem Internet oder einer anderen Quelle laden?

Ja. Ihre Hadoop-Anwendung kann die Daten von überall im Internet oder von anderen AWS-Services laden. Wenn Sie Daten aus dem Internet laden, sollten Sie beachten, dass EC2-Bandbreiten-Gebühren anfallen. Amazon EMR bietet ebenfalls einen auf Hive basierenden Zugriff auf Daten in DynamoDB.


F: Kann Amazon EMR ermitteln, wie lange es dauert, meine Eingabedaten zu verarbeiten?

Nein. Da Cluster und Eingabedaten jeweils unterschiedlich sind, können wir die Auftragsdauer nicht schätzen.

F: Wie viel kostet Amazon EMR?

Wie auch bei den restlichen AWS, zahlen Sie allein für die genutzten Ressourcen. Es fallen weder Einrichtungs- noch Mindestgebühren an, und es sind keine langfristigen Verträge notwendig. Amazon EMR wird zusätzlich zu den normalen Tarifen von Amazon EC2 und Amazon S3 in Rechnung gestellt.

Weitere Informationen finden Sie auf der Seite mit der Preisübersicht zu Amazon EMR.

Die Gebühren für Amazon EC2, Amazon S3 und Amazon SimpleDB werden getrennt ausgewiesen. Die Preise für Amazon EMR verstehen sich pro genutzter Instance-Stunde je Instance-Typ ab dem Verarbeitungsbeginn des Clusters bis zu seiner Beendigung. Jede angefangene Instanz-Stunde wird als volle Stunde in Rechnung gestellt. Weitere Informationen zu Amazon EC2-Instance-Typen, Preisen für Amazon EC2-Spot-Instances und Amazon EC2 Reserved Instances, Amazon S3 oder Amazon SimpleDB erhalten Sie, indem Sie Sie auf folgende Links klicken:

Amazon EC2-Instance-Typen

Preise für Amazon EC2 Reserved Instances

Preise für Amazon EC2 Spot Instances

Amazon S3 – Preise

Amazon-SimpleDB-Preise

F: Wann beginnt und endet die Fakturierung der Nutzung meines Amazon EMR-Clusters?

Die Fakturierung beginnt mit dem Start der Ausführung Ihres Clusters durch Amazon EMR. Ihnen werden nur die tatsächlich genutzten Ressourcen in Rechnung gestellt. Angenommen, Sie haben für einen Amazon EMR-Cluster 100 Amazon EC2 Standard Small Instances gestartet, wobei die Kosten von Amazon EMR jeweils 0,015 USD pro Stunde betragen. Die Amazon EC2-Instances werden sofort gestartet, jedoch nicht unbedingt alle im selben Moment. Amazon EMR hält die Startzeit der einzelnen Instances nach und bindet sie in den Cluster ein, damit dieser Verarbeitungsaufgaben annehmen kann.

In den ersten 10 Minuten nach Ihrer Startanforderung startet Amazon EMR entweder den Cluster (wenn alle Instances verfügbar sind) oder bindet so viele Instances wie möglich ein. Sobald die 10 Minuten verstrichen und 90 % der angeforderten Instances verfügbar sind, beginnt Amazon EMR mit der Verarbeitung Ihres Clusters (und mit der Gebührenerfassung). Wenn die restlichen 10 % der angeforderten Instances eingebunden sind, beginnt Amazon EMR auch mit der Gebührenerfassung für diese Instances.

Wenn also alle der angeforderten 100 Instances 10 Minuten nach Abgabe der Startanforderung verfügbar sind, werden Ihnen 1,50 USD pro Stunde (100 x 0,015 USD) berechnet, bis der Cluster abgeschlossen ist. Wenn nur 90 der angeforderten Instances nach den 10 Minuten verfügbar sind, werden Ihnen so lange 1,35 USD pro Stunde (90 x 0,015 USD) berechnet, wie dies die Anzahl der Instances ist, auf denen Ihr Cluster ausgeführt wird. Wenn die verbleibenden 10 Instances eingebunden sind, werden Ihnen so lange 1,50 USD pro Stunde (100 x 0,015 USD) berechnet, wie diese Instances benötigen, um den Cluster abzuschließen.

Jeder Cluster wird so lange ausgeführt, bis eines der folgenden Ereignisse eintritt: Sie beenden den Cluster mit dem Aufruf der "TerminateJobFlows"-API (oder einem ähnlichen Tool), der Cluster fährt sich selbst herunter oder der Cluster wird auf Grund eines Software- oder Hardwarefehlers beendet. Angefangene Instance-Stunden werden als volle Stunden in Rechnung gestellt.

F: Wo kann ich meine Verwendung von Amazon EMR, Amazon EC2 und Amazon S3 nachverfolgen?

Sie können Ihre Verwendung in der Rechnungs- und Kostenverwaltungskonsole nachverfolgen.

F: Kann ich nachverfolgen, wie viele Instance-Stunden einzelne Cluster benötigt haben?

Ja. In der AWS Management Console verfügt jeder Cluster über eine Spalte mit der ungefähren Angabe der bisher im Cluster angefallenen normierten Instance-Stunden. Bei normierten Instance-Stunden handelt es sich um Rechenzeitstunden basierend auf dem Standard von einer Stunde m1.small = 1 Stunde normierte Rechenzeit:

  • 1 Stunde m1.xlarge = 1 Stunden normierte Rechenzeit
  • 1 Stunde m1.medium = 2 Stunden normierte Rechenzeit
  • 1 Stunde m1.large = 4 Stunden normierte Rechenzeit
  • 1 Stunde m1.xlarge = 8 Stunden normierte Rechenzeit
  • 1 Stunde c1.medium = 2 Stunden normierte Rechenzeit
  • 1 Stunde c1.xlarge = 9 Stunden normierte Rechenzeit
  • 1 Stunde m2.xlarge = 7 Stunden normierte Rechenzeit
  • 1 Stunde m2.2xlarge = 14 Stunden normierte Rechenzeit
  • 1 Stunde m27.xlarge = 24 Stunden normierte Rechenzeit
  • 1 Stunde cc1.4.xlarge = 21 Stunden normierte Rechenzeit
  • 1 Stunde cg1.4.xlarge = 34 Stunden normierte Rechenzeit
  • 1 Stunde cc2.8.xlarge = 39 Stunden normierte Rechenzeit
  • 1 Stunde cg1.4.xlarge = 48 Stunden normierte Rechenzeit
  • 1 Stunde cg1.8.xlarge = 71 Stunden normierte Rechenzeit

Hierbei handelt es sich um Annäherungswerte, die nicht für Fakturierungszwecke verwendet werden sollten. Angaben über die fakturierbare Amazon EMR-Nutzung finden Sie in der Rechnungs- und Kostenverwaltungskonsole.

F: Unterstützt Amazon EMR On-Demand-, Spot- und Reserved Instances von Amazon EC2?

Ja. Amazon EMR unterstützt problemlos On-Demand-, Spot- und Reserved Instances. Klicken Sie hier, um mehr über Amazon EC2 Reserved Instances zu erfahren. Klicken Sie hier, um mehr über Amazon EC2-Spot-Instances zu erfahren.

F: Sind Steuern bereits in den Preisen enthalten?

Falls nicht anders angegeben, gelten unsere Preise zuzüglich geltender Steuern und Abgaben, darunter MwSt. und Umsatzsteuer. Bei Kunden mit japanischer Rechungsadresse unterliegt die Nutzung der Region Asien-Pazifik (Tokio) der japanischen Verbrauchssteuer. Weitere Informationen.


F: Wie verhindere ich, dass andere Benutzer meine Daten während der Cluster-Ausführung einsehen können?

Amazon EMR startet Ihre Instances in zwei Amazon EC2-Sicherheitsgruppen, von denen eine für den Master und die andere für die Slaves zuständig ist. Die Master Security Group verfügt über einen offenen Port für die Kommunikation mit dem Dienst. Der SSH-Port ist ebenfalls offen, um Ihnen SSH in die Instanzen unter Verwendung des beim Start spezifizierten Schlüssels zu ermöglichen. Die Slaves werden in einer separaten Security Group gestartet, die ausschließlich die Interaktion mit der Master-Instanz erlaubt. Standardmäßig sind beide Security Groups so eingestellt, dass der Zugriff von externen Quellen wie auch Amazon EC2-Instances anderer Kunden nicht erlaubt ist. Da es sich um Security Groups innerhalb Ihres Kontos handelt, können Sie diese mit den EC2-Standard-Tools oder dem Dashboard neu konfigurieren. Klicken Sie hier, um weitere Informationen über EC2 Security Groups zu erhalten.

F: Wie sicher sind meine Daten?

Amazon S3 verfügt über Authentifizierungsmechanismen, um gespeicherte Daten vor unberechtigten Zugriffen zu schützen. Wenn nicht anders festgelegt, erhält nur der Kunde, der die Daten hochlädt, Zugriff auf diese Daten. Amazon EMR-Kunden können das HTTPS-Protokoll für eine sichere Datenübertragung an Amazon S3 nutzen. Amazon EMR nutzt zudem stets HTTPS, um Daten zwischen Amazon S3 und Amazon EC2 zu übertragen. Zusätzliche Sicherheit erhalten Kunden mit der Verschlüsselung der Eingabedaten vor dem Hochladen in Amazon S3 (mithilfe eines beliebigen Komprimierungstools). Hierfür muss zu Beginn des Clusters ein Verschlüsselungsschritt eingefügt werden, wenn Amazon EMR die Daten aus Amazon S3 abruft.

F: Kann ich für Sicherheitszwecke und zur Überwachung der Einhaltung von Vorschriften einen Verlauf aller EMR-API-Aufrufe abrufen, die für mein Konto erfolgt sind?

Ja. AWS CloudTrail ist ein Web-Service, der Aufrufe von AWS-APIs für Ihr Konto aufzeichnet und Protokolldateien an Sie übermittelt. Der AWS-API-Aufrufverlauf, der von CloudTrail generiert wird, ermöglicht eine Sicherheitsanalyse, Nachverfolgung von Ressourcenänderungen und Überwachung der Einhaltung von Vorschriften. Weitere Informationen zu CloudTrail finden Sie auf der Detailseite zu AWS CloudTrail. Auf der AWS Management Console für CloudTrail können Sie CloudTrail aktivieren.



F: Wie verwendet Amazon EMR Availability Zones?

Amazon EMR startet alle Knoten für einen bestimmten Cluster in derselben Amazon EC2 Availability Zone. Die Ausführung eines Clusters in derselben Zone verbessert die Leistung von Clustern, da somit eine höhere Zugriffsrate ermöglicht wird. Standardmäßig wählt Amazon EMR die Availability Zone mit den meisten verfügbaren Ressourcen zur Ausführung Ihres Clusters aus. Sie können jedoch bei Bedarf eine andere Availability Zone festlegen.

F: In welchen Regionen ist dieser Service verfügbar?

Amazon EMR ist in den folgenden Regionen verfügbar: USA Ost (Nord-Virginia), USA West (Oregon), USA West (Nordkalifornien), EU (Irland), EU (Frankfurt), Asien-Pazifik (Singapur), Asien-Pazifik (Tokio), Asien-Pazifik (Sydney), Südamerika (São Paulo) und AWS GovCloud (USA).

F: Welche Region muss ich wählen, um meine Cluster auszuführen?

Bei der Erstellung eines Clusters ist es in der Regel erforderlich, die Region auszuwählen, in der sich Ihre Daten befinden.

F: Kann ich EU-Daten in einem Cluster verwenden, der in der Region USA ausgeführt wird, und umgekehrt?

Ja, das ist möglich. Für die Datenübertragung von einer Region in eine andere fallen Bandbreiten-Gebühren an. Informationen über Bandbreitenpreise erhalten Sie auf der EC2-Detailseite.

F: Was ist das Besondere an der Region AWS GovCloud (USA)?

Die Region AWS GovCloud (USA) ist für US-amerikanische Behörden und deren Kunden vorgesehen. Sie unterliegt den US ITAR-Vorgaben. In GovCloud unterstützt Elastic MapReduce keine Spot-Instances oder nicht die Funktion zum Aktivieren des Debuggings. Die Elastic MapReduce-Verwaltungskonsole ist in GovCloud noch nicht verfügbar.


F: Wie werden Amazon EC2 und Amazon S3 von Amazon EMR verwendet?

Der Kunde lädt seine Eingabedaten sowie eine Datenverarbeitungsanwendung in Amazon S3 hoch. Amazon EMR startet die vom Kunden festgelegte Anzahl von Amazon EC2-Instances. Der Service beginnt mit der Ausführung des Clusters. Die Eingabedaten von Amazon S3 werden mit dem S3N-Protokoll in die gestarteten Amazon EC2-Instances übertragen. Nach Abschluss des Clusters überträgt Amazon EMR die Ausgabedaten an Amazon S3. Dort kann der Kunde diese abrufen oder als Eingabe für einen anderen Cluster verwenden.

F: Wie werden in Amazon Berechnungen durchgeführt?

Amazon EMR verwendet das Hadoop-Datenverarbeitungssystem zur Durchführung von Berechnungen im MapReduce-Programmiermodell. Der Kunde implementiert deren Algorithmen mit "Map()" and "Reduce()"-Funktionen. Der Dienst startet eine kundenspezifische Anzahl von Amazon EC2-Instanzen, die aus einem Master und mehreren Slaves bestehen. Amazon EMR führt auf diesen Instances die Hadoop-Software aus. Der Master-Knoten teilt die Eingabedaten in Blöcke und weist dem Slave-Knoten die Verarbeitung der Blöcke zu. Jeder Slave-Knoten führt anschließend die Map-Funktion mit den zugewiesenen Daten aus und generiert Zwischendaten. Die Zwischendaten werden sortiert und aufgeteilt und an Prozesse weitergeleitet, welche die Reducer-Funktion anwenden. Diese Prozesse werden ebenfalls auf den Slave-Knoten durchgeführt. Schließlich wird das Output von den Reducer-Tasks in Dateien gesammelt. Ein einzelner Cluster kann eine Reihe dieser MapReduce-Schritte enthalten.

F: Wie zuverlässig ist Amazon EMR?

Amazon EMR verwaltet einen Amazon EC2-Cluster mit Rechen-Instances unter Verwendung der hochverfügbaren und erprobten Netzwerkinfrastruktur und Rechenzentren von Amazon. Amazon EMR verwendet bewährte, fehlertolerante Hadoop-Software als Datenverarbeitungssystem. Hadoop teilt die Daten in mehrere Teilmengen ein und weist jede Teilmenge mehreren Amazon EC2-Instanzen zu. Wenn eine Amazon EC2-Instance eine Teilmenge nicht verarbeiten kann, können die Ergebnisse einer anderen Amazon EC2-Instanz verwendet werden.

F: Wie lange dauert es, bis ein Cluster startbereit ist und Eingabedaten verarbeiten kann?

Amazon EMR beginnt nahezu unmittelbar mit der Bereitstellung von Ressourcen in Form von Amazon EC2 On-Demand-Instances. Sind die Instances nicht verfügbar, versucht Amazon EMR, die Ressourcen für Ihren Cluster weiterhin bereitzustellen, bis diese bereit sind oder Sie Ihren Antrag stornieren. Die Bereitstellung der Instances erfolgt auf bestmöglicher Basis und ist abhängig von der Anzahl der verlangten Instances, dem Zeitpunkt der Cluster-Erstellung sowie der Gesamtanzahl der Anforderungen im System. Nach der Ressourcenbereitstellung beginnt die Verarbeitung normalerweise innerhalb von 15 Minuten.

Zur Gewährleistung der Kapazitäten für Ihre Cluster zum benötigten Zeitpunkt können Sie mit der Zahlung einer einmaligen Gebühr für Amazon EC2 Reserved Instances die gewünschten Instance-Kapazitäten reservieren, die Ihnen dann zu einem ermäßigten Stundensatz in der Cloud zur Verfügung stehen. Wie bei On-Demand-Instances zahlen Sie nur während der Ausführung der Instanzen Gebühren. Unternehmen mit bekannten Instanzanforderungen können mit Reserved Instances die Anpassungsfähigkeit und Flexibilität von On-Demand-Instances nutzen und gleichzeitig Kosten sparen.

F: Welche Instance-Typen von Amazon EC2 unterstützt Amazon EMR?

Amazon EMR unterstützt 12 EC2-Instance-Typen, z. B. Standard, High CPU, High Memory, Cluster Compute und High Storage. Standard-Instances bieten ein Arbeitsspeicher/CPU-Verhältnis, das für die meisten Anwendungen geeignet ist. High CPU-Instances bieten proportional mehr CPU-Ressourcen als Arbeitsspeicher (RAM) und eignen sich für rechenintensive Anwendungen. High Memory-Instances bieten viel Arbeitsspeicher für Anwendungen, die einen hohen Durchsatz erfordern. Cluster Compute-Instances bieten proportional hohe CPU-Leistung bei besserer Netzwerkleistung und eignen sich gut für High Performance Compute (HPC)-Anwendungen sowie andere anspruchsvolle an das Netzwerk gebundene Anwendungen. High-Storage-Instances bieten 48 TB Speicherplatz auf 24 Festplatten und eignen sich ideal für Anwendungen, die einen sequenziellen Zugriff auf sehr große Datenmengen (für den Data Warehouse-Betrieb und die Protokollverarbeitung) erfordern. Auf der Seite mit der Preisübersicht für EMR finden Sie Details zu den verfügbaren Instance-Typen und Preisen für die jeweilige Region.

F: Wie wähle ich den richtigen Amazon EC2-Instance-Typ aus?

Bei der Auswahl Ihrer Instance-Familie sollten Sie die Eigenschaften Ihrer Anwendung im Hinblick auf die Ressourcenauslastung beachten. Einer der Vorteile von Amazon EMR mit Amazon EC2 liegt darin, dass Sie nur für das zahlen, was Sie tatsächlich nutzen. So können Sie ganz einfach und kostensparend testen, wie sich Ihre Cluster bei verschiedenen Instance-Varianten verhalten. Ein effektiver Weg zur Ermittlung des passenden Instance-Typs ist die Inbetriebnahme verschiedener kleiner Cluster und die Durchführung eines Benchmark-Tests der Cluster.

F: Wie wähle ich die richtige Anzahl von Instances für meinen Cluster aus?

Die Anzahl der Instances für Ihren Cluster hängt von der Anwendung ab. Die Entscheidung, wie viele Instances gewählt werden, sollte auf der Grundlage der für die Speicherung und Verarbeitung Ihrer Daten benötigten Ressourcen und der für den Auftragsabschluss angemessenen Zeit getroffen werden. Generell empfehlen wir, den Speicherplatz für die Daten, die Sie verarbeiten werden, auf 60 % zu beschränken und den Rest für den intermediären Output frei zu lassen. Wenn Sie daher (bei 3 x Replizierung in HDFS) 5 TB Daten mit m1.xlarge Instanzen verarbeiten möchten, die 1,690 GB Speicherplatz aufweisen, sollte Ihr Cluster mindestens (5 TB * 3) / (1,690 GB * .6) = 15 m1.xlarge Kernknoten enthalten. Möglicherweise möchten Sie diese Anzahl erhöhen, wenn Ihr Auftrag zahlreiche Zwischendaten generiert oder beträchtliche E/A-Anforderungen stellt. Vielleicht möchten Sie ebenfalls zusätzliche Auftragsknoten einbeziehen, um die Verarbeitungsleistung zu verbessern. Unter Amazon EC2-Instance-Typen erfahren Sie mehr über lokale Instance-Speicher für jede Instance-Typ-Konfiguration.

F: Wie lange dauert es, bis mein Cluster startbereit ist?

Dies ist abhängig von verschiedenen Faktoren: Typ des Clusters, Menge der Eingabedaten sowie Anzahl und Typ der für den Cluster gewählten Amazon EC2-Instances.

F: Kann ein im Cluster ausgefallener Master-Knoten von Amazon EMR wiederhergestellt werden?

Nein. Wenn der Master-Knoten ausfällt, wird Ihr Cluster beendet, und der Auftrag muss neu gestartet werden. Amazon EMR unterstützt derzeit keine automatische Failover- oder Wiederherstellungsfunktion für Master-Knoten. Bei einem Ausfall des Master-Knotens wird in der AWS Management Console folgende Meldung angezeigt: "The master node was terminated". Sie müssen daher einen neuen Cluster starten. Für die Cluster können jedoch Prüfpunkte genutzt werden, um Zwischendaten (während eines noch nicht abgeschlossenen Clusters erstellte Daten) in Amazon S3 zu speichern. Bei einem Ausfall können Sie so den Cluster ab dem letzten Prüfpunkt fortsetzen.

F: Kann ein im Cluster ausgefallener Slave-Knoten von Amazon EMR wiederhergestellt werden?

Ja. Amazon EMR ist bei Slave-Ausfällen fehlertolerant, sodass der Auftrag bei Ausfall eines Slave-Knotens fortgesetzt wird. In der aktuellen Version stellt Amazon EMR jedoch nicht automatisch einen weiteren Knoten zur Verfügung, um ausgefallene Slave-Knoten zu übernehmen.

F: Kann ich SSH auf meine Cluster-Knoten anwenden?

Ja. Sie können sich per SSH mit Ihren Cluster-Knoten verbinden und Hadoop-Befehle direkt auf ihnen ausführen. Wenn Sie sich per SSH mit einem Slave-Knoten verbinden möchten, muss zunächst eine SSH-Verbindung mit dem Master-Knoten hergestellt werden. Anschließend können Sie sich per SSH mit dem Slave-Knoten verbinden.

F: Kann ich Microsoft Windows-Instances mit Amazon EMR verwenden?

Derzeit unterstützt Amazon EMR Debian/Lenny im 32- und 64-Bit-Modus. Wir erweitern stets als Reaktion auf Feedback unserer Kunden die Funktionalität, damit sie ihre Datenverarbeitungsprobleme schnell und effektiv lösen können.

F: Was sind Amazon EMR-Bootstrap-Aktionen?

Bootstrap-Aktionen sind eine Funktion in Amazon EMR, die den Benutzern eine kundenspezifische Einrichtung vor der Ausführung ihrer Cluster ermöglicht. Bootstrap-Aktionen können verwendet werden, um Software zu installieren oder Instances zu konfigurieren, bevor der Cluster ausgeführt wird. Weitere Informationen zu Bootstrap-Aktionen finden Sie im Handbuch für Entwickler zu EMR.

F: Wie kann ich Bootstrap-Aktionen verwenden?

Sie können ein Bootstrap-Aktionsskript in einer Sprache schreiben, die bereits für die Cluster-Instance installiert ist, z. B. Bash, Perl, Python, Ruby, C++ oder Java. Mehrere vordefinierte Bootstrap-Aktionen sind verfügbar. Nachdem das Skript geschrieben wurde, müssen Sie es in Amazon S3 hochladen und auf seinen Speicherort verweisen, wenn Sie einen Cluster starten. Nähere Informationen zur Verwendung von Bootstrap-Aktionen finden Sie im "Handbuch für Entwickler": http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/.

F: Wie kann ich Hadoop-Einstellungen für meinen Cluster konfigurieren?

Die Hadoop-Standardkonfiguration von EMR ist für die meisten Arbeitslasten geeignet. Jedoch kann es angesichts der spezifischen Arbeitsspeicher- und Verarbeitungsanforderungen Ihres Clusters angebracht sein, diese Einstellungen zu ändern. Wenn Ihre Cluster-Aufgaben beispielsweise arbeitsspeicherintensiv sind, können Sie beispielswese weniger Aufgaben pro Kern nutzen und die Heap-Größe des Auftrag-Trackers verringern. Für diesen Fall steht eine vordefinierte Bootstrap-Aktion zur Konfiguration Ihres Clusters beim Start zur Verfügung. Im Abschnitt Konfiguration von arbeitsspeicherintensiven Bootstrap Actions des Handbuchs für Entwickler erfahren Sie mehr über die Konfiguration und Verwendung. Eine zusätzliche vordefinierte Bootstrap Action steht zur Verfügung. Dadurch haben Sie die Möglichkeit Ihre Clustereinstellungen Ihren Wünschen entsprechend anzupassen. Im Abschnitt Konfiguration von Hadoop Bootstrap Action des Handbuchs für Entwickler erfahren Sie mehr über die Verwendung.

F: Kann ich die Anzahl von Slave-Knoten in einem ausgeführten Cluster ändern?

Ja. Zwei Typen von Slave-Knoten sind möglich: (1) Kernknoten, die sowohl persistente Daten im Hadoop Distributed File System (HDFS) hosten als auch Hadoop-Aufgaben ausführen, und (2) Auftragsknoten, die nur Hadoop-Aufgaben ausführen. Während der Ausführung eines Clusters können Sie die Anzahl der Kernknoten erhöhen oder Anzahl von Aufgabenknoten verringern. Dies kann über die API, das Java SDK oder den Befehlszeilen-Client erfolgen. Nähere Informationen zum Ändern der Größe eines ausgeführten Clusters erhalten Sie im Abschnitt Resize a Running Cluster im Handbuch für Entwickler.

F: Wann sollte ich Kernknoten anstelle von Aufgabenknoten verwenden?

Da Kernknoten persistente Daten in HDFS hosten und nicht entfernt werden können, sollten Kernknoten für die Kapazität reserviert werden, die bis zum Abschluss des Clusters benötigt wird. Da Aufgabenknoten hinzugefügt oder entfernt werden können und kein HDFS enthalten, sind sie optimal für Kapazität geeignet, die nur temporär benötigt wird.

F: Aus welchem Grund sollte ich die Anzahl von Slave-Knoten in meinem ausgeführten Cluster ändern?

Es gibt einige Szenarien, bei denen die Anzahl von Slave-Knoten in einem ausgeführten Cluster geändert werden sollte. Wenn ein Cluster langsamer als erwartet ausgeführt wird oder sich die zeitlichen Anforderungen ändern, können Sie die Anzahl von Kernknoten erhöhen, um die Cluster-Leistung zu steigern. Wenn einzelne Phasen des Clusters unterschiedliche Kapazitätserfordernisse haben, können Sie mit einer geringen Anzahl von Kernknoten beginnen und die Anzahl von Aufgabenknoten den wechselnden Anforderungen an die Cluster-Kapazität entsprechend erhöhen oder verringern.

F: Kann ich die Anzahl der Slave-Knoten zwischen Cluster-Schritten ändern?

Ja. Der Cluster kann einen vordefinierten Schritt enthalten, der die Cluster-Größe zwischen Schritten, die bekanntermaßen unterschiedliche Kapazitätserfordernisse haben, automatisch anpasst. Da alle Schritte garantiert sequenziell ausgeführt werden, kann auf diese Weise die Anzahl von Slave-Knoten festgesetzt werden, die einen bestimmten Schritt des Clusters ausführen.

F: Wie kann ich anderen IAM-Benutzern erlauben, auf meinen Cluster zuzugreifen?

Um einen neuen Cluster zu erstellen, der allen IAM-Benutzern an der Befehlszeilen-Schnittstelle von EMR angezeigt wird, fügen Sie beim Erstellen des Clusters das Kennzeichen "--visible-to-all-users" hinzu. Beispiel: elastic-mapreduce --create --visible-to-all-users. Wählen Sie in der Management Console im Create Cluster Wizard im Bereich "Advanced Options" die Option "Visible to all IAM Users" aus.

Damit ein vorhandener Cluster allen IAM-Benutzern angezeigt wird, müssen Sie die Befehlszeilen-Schnittstelle von EMR verwenden. Verwenden Sie "--set-visible-to-all-users" und geben Sie die Cluster-ID an. Beispiel: elastic-mapreduce --set-visible-to-all-users true --jobflow j-xxxxxxx. Dies ist nur dem Ersteller des Clusters möglich.

Weitere Informationen finden Sie im Abschnitt Configuring User Permissions im EMR Developer Guide.


F: Welche Amazon EMR-Ressourcen kann ich mit Tags versehen?

Sie können Tags zu einem aktiven Amazon EMR-Cluster hinzufügen. Ein Amazon EMR-Cluster besteht aus Amazon EC2-Instances, und ein zu einem Amazon EMR-Cluster hinzugefügtes Tag wird auf alle aktiven Amazon EC2-Instances in diesem Cluster verteilt. Tags aus beendeten Clustern oder beendeten Amazon EC2-Instances, die Teil eines aktiven Clusters waren, können nicht hinzugefügt, bearbeitet oder entfernt werden.

F: Unterstützt das Amazon EMR-Tagging ressourcenbasierte Berechtigungen bei IAM-Benutzern?

Nein, Amazon EMR unterstützt keine ressourcenbasierten Genehmigungen nach Tag. Allerdings ist unbedingt zu beachten, dass sich auf Amazon EC2-Instances verteilte Tags wie normale Amazon EC2-Tags verhalten. Daher wirkt sich eine IAM-Richtlinie für Amazon EC2 auf Tags aus, die von Amazon EMR verteilt wurden, wenn sie den Bedingungen in dieser Richtlinie entsprechen.

F: Wie viele Tags kann ich einer Ressource hinzufügen?

Sie können maximal zehn Tags zu einem Amazon EMR-Cluster hinzufügen.

F: Werden meine Amazon EMR-Tags für einen Cluster in jeder Amazon EC2-Instance in diesem Cluster angezeigt? Wenn ich ein Tag für meinem Amazon EMR- Cluster entferne, wird dieses Tag automatisch aus jeder zugehörigen EC2-Instance entfernt?

Ja, Amazon EMR verteilt die zu einem Cluster hinzugefügten Tags auf die EC2-Instances, die diesem Cluster zugrunde liegen. Wenn Sie ein Tag zu einem Amazon EMR-Cluster hinzufügen, wird es auch in den dazugehörigen Amazon EC2-Instances angezeigt. Dasselbe gilt, wenn Sie ein Tag aus einem Amazon EMR-Cluster entfernen. Es wird dann ebenfalls aus den dazugehörigen Amazon EC2-Instances entfernt. Wenn Sie für Amazon EC2 jedoch IAM-Richtlinien verwenden und die Tagging-Funktionalität von Amazon EMR nutzen möchten, sollten Sie sich vergewissern, dass die Verwendung der Tagging-APIs CreateTags und DeleteTags von Amazon EC2 genehmigt ist.

F: Was muss ich tun, damit meine Tags in meiner Abrechnung für Segmentkosten erscheinen?

Wählen Sie hier die Tags, die Sie für Ihren AWS Abrechnungsbericht verwenden möchten. Zum Anzeigen der Kosten für die kombinierten Ressourcen können Sie anschließend Ihre Abrechnungsdaten nach Ressourcen mit denselben Tag-Schlüsselwerten gliedern.

F: Woran erkenne ich, welche Amazon EC2-Instances Teil eines Amazon EMR-Clusters sind?

Eine Amazon EC2-Instance, die einem Amazon EMR-Cluster zugeordnet ist, weist zwei System-Tags auf:

  • aws:elasticmapreduce:instance-group-role=CORE
    • Schlüssel = instance-group role ; Wert = [CORE oder TASK] 
  • aws:elasticmapreduce:job-flow-id=j-12345678
    • Schlüssel = job-flow-id ; Wert = [JobFlowID]

F: Kann ich Tags direkt in den Amazon EC2-Instances bearbeiten?

Ja, Sie können Tags direkt zu Amazon EC2-Instances hinzufügen oder daraus entfernen, die Teil eines Amazon EMR-Clusters sind. Wir raten von dieser Vorgehensweise jedoch ab, weil das Tagging-System von Amazon EMR die von Ihnen direkt an einer zugehörigen Amazon EC2-Instance vorgenommenen Änderungen nicht synchronisiert. Wir empfehlen, Tags für Amazon EMR-Cluster zu Amazon EMR-Konsole, CLI oder API hinzuzufügen oder daraus zu entfernen, um sicherzustellen, dass der Cluster und eine zugehörigen Amazon EC2-Instances die richtigen Tags aufweisen.


F: Was ist Apache Hive?

Bei Hive handelt es sich um ein Open-Source-Data-Warehouse und Analyse-Paket von Datensätzen, das auf Hadoop ausgeführt wird. Hive wird mit einer SQL-basierten Sprache namens "Hive QL" betrieben, die es Nutzern ermöglicht, in Amazon S3 gespeicherte Datenquellen zu strukturieren, zu summieren und abzufragen. Hive QL geht über Standard-SQL hinaus: Es wird ein erstklassiger Support für "Map"- und "Reduce"-Funktionen sowie komplexe erweiterbare, benutzerdefinierte Datentypen wie Json und Thrift angeboten. Damit wird die Verarbeitung komplexer und sogar unstrukturierter Datenquellen wie Textdokumente und Protokolldateien ermöglicht. Hive unterstützt Benutzer-Erweiterungen über benutzerdefinierte Funktionen, die in Java erstellt und über die Speicherung in Amazon S3 eingesetzt wurden.

F: Welche Funktionen bietet mir in Amazon EMR ausgeführtes Hive?

Bei Verwendung von Hive zusammen mit Amazon EMR können Sie anspruchsvolle Datenverarbeitungsanwendungen mit einer bekannten, SQL-ähnlichen Sprache und benutzerfreundlichen Tools implementieren, die mit Amazon EMR verfügbar sind. Mit Amazon EMR können Sie außerdem Ihre Hive-Anwendungen in ein zuverlässiges Data Warehouse verwandeln, mit dem Aufgaben wie Datenanalyse, Überwachung und Business Intelligence erfolgen können.

F: Was unterscheidet Hive von traditionellen RDBMS-Systemen?

Traditionelle RDBMS-Systeme bieten Transaktionssemantik- und ACID-Eigenschaften. Außerdem können Tabellen indiziert und im Cache abgelegt werden. So können kleine Datenmengen sehr schnell abgefragt werden. Sie bieten eine schnelle Aktualisierung kleiner Datenmengen und die Durchsetzung von referentieller Integrität. In der Regel werden sie auf einem einzigen großen System ausgeführt und unterstützen weder die Durchführung von "Map"- und "Reduce"-Funktionen in der Tabelle noch die Ausführung komplexer benutzerdefinierter Datentypen.

Hive hingegen führt SQL-ähnliche Abfragen mit MapReduce durch. Dadurch ist es optimiert für vollständige Tabellen-Scans auf einem Rechner-Cluster und kann somit sehr große Datenmengen verarbeiten. Hive unterteilt Tabellen in kleinere Einheiten, wodurch nach Bedarf Partitionen einer Tabelle gescannt werden können, ohne dass die gesamte Tabelle gescannt werden muss.

Traditionelle RDMS-Systeme eignen sich hervorragend für Transaktionssemantik und referentielle Integrität sowie die Durchführung kleiner, häufiger Updates. Hive hingegen ist optimiert für Offline-Reporting, Transformationen und die Analyse großer Datensätze, beispielsweise die Durchführung von Clickstream-Analysen einer großen Website oder sogar mehrerer Websites.

Häufig werden Daten aus RDBMS-Systemen in Amazon S3 exportiert. So kann eine Offline-Analyse durch Amazon EMR-Cluster in Kombination mit Hive durchgeführt werden.

F: Was sind die ersten Schritte für in Amazon EMR ausgeführtes Hive?

Unter http://developer.amazonwebservices.com/connect/entry.jspa?externalID=2862 finden Sie sowohl ein textbasiertes als auch Video-Tutorial, die Ihnen einen einfachen Einstieg ermöglichen.

F: Verfügt Hive über neue Funktionen speziell für Amazon EMR?

Ja. Es gibt vier neue Funktionen, durch die Hive in Kombination mit Amazon EMR jetzt noch leistungsfähiger ist:

a. Tabellenpartitionen automatisch aus Amazon S3 laden. Zuvor wurde beim Import einer partitionierten Tabelle für jede einzelne Partition eine separate "Alter Table"-Anweisung benötigt. Amazon EMR enthält jetzt eine neue Art von Anweisung für die Hive-Sprache: "alter table recover partitions". Diese Anweisung ermöglicht den einfachen Import von Tabellen in mehrere Cluster gleichzeitig, ohne dass ein gemeinsam genutzter Metadatenspeicher erforderlich ist. Verwenden Sie diese Funktion, um Tabellen auszulesen, in die Daten aus externen Prozessen gespeichert werden, z. B. Protokolldateien.

b. Festlegung eines Metadatenspeichers außerhalb von Instances. Standardmäßig befindet sich der Metadatenspeicher, in dem Hive seine Schema-Informationen speichert, auf dem Master-Knoten. Er wird beim Abschließen des Clusters gelöscht. Mit dieser Funktion können Sie den Speicherort des Metadatenspeichers selbst festlegen, beispielsweise in einer bereits in EC2 ausgeführten MySQL-Instance.

c. Direktes Schreiben von Daten in Amazon S3. Beim Schreiben von Daten in Tabellen in Amazon S3 speichert die in Amazon EMR installierte Hive-Version ohne die Verwendung temporärer Dateien die Daten direkt in Amazon S3. Dies führt zu einer erheblichen Leistungsverbesserung, jedoch bedeutet es auch, dass sich HDFS und S3 aus der Hive-Perspektive anders verhalten. Sie können innerhalb derselben Anweisung nicht auf dieselbe Tabelle lesen und schreiben, wenn sich diese in Amazon S3 befindet. Zur Aktualisierung einer Tabelle in S3 muss zunächst eine temporäre Tabelle im lokalen HDFS-Dateisystem des Clusters erstellt werden. Dann werden die Ergebnisse in diese Tabelle geschrieben und anschließend in Amazon S3 kopiert.

d. Zugriff auf Ressourcen in Amazon S3. Mit der in Amazon EMR installierten Hive-Version können Sie innerhalb Ihres Hive-Skripts direkt auf Ressourcen wie Skripts zum Anpassen von "Map"- und "Reduce"-Operationen oder zusätzliche Bibliotheken in Amazon S3 zurückgreifen (z. B. Hinzufügen einer Jar-Datei: s3://elasticmapreduce/samples/hive-ads/libs/jsonserde.jar).

F: Welche Typen von Hive-Clustern werden unterstützt?

Hive unterstützt zwei Cluster-Typen: Interaktiv und Batch. Im interaktiven Modus können Kunden Cluster direkt auf dem Master-Knoten Cluster starten und Hive-Skripts interaktiv ausführen. Normalerweise wird dieser Modus zur Durchführung von Ad-hoc-Datenanalysen sowie für die Anwendungsentwicklung verwendet. Im Batch-Modus wird das Hive-Skript in Amazon S3 gespeichert und beim Starten des Clusters referenziert. Der Batch-Modus wird normalerweise für sich wiederholende Prozesse wie beispielsweise die Berichterstellung genutzt.

F: Wie starte ich einen Hive-Cluster?

Sowohl Batch- als auch interaktive Cluster können über die AWS Management Console, den Befehlszeilen-Client von EMR und über APIs gestartet werden. Nähere Informationen zum Starten eines Hive-Clusters finden Sie im Abschnitt Using Hive im Handbuch für Entwickler.

F: Wann sollte ich Hive anstatt PIG verwenden?

Sowohl Hive als auch PIG bieten extrem leistungsfähige Datenverarbeitungssprachen mit Unterstützung komplexer Datentypen zur Verarbeitung von großen Datensätzen. Die Hive-Sprache ist eine Variante von SQL und daher für Nutzer, die bereits mit SQL und relationalen Datenbanken vertraut sind, leichter zugänglich. Hive unterstützt partitionierte Tabellen, sodass Amazon EMR-Cluster lediglich auf die für die Abfrage relevante Partition zugreifen können und keinen vollständigen Tabellen-Scan durchführen müssen. Sowohl PIG als auch Hive bieten Abfrageplan-Optimierung. PIG kann über das gesamte Skript hinweg optimieren, während Hive-Abfragen auf der Anweisungsebene optimiert werden.

Die Entscheidung für Hive oder PIG ist letztendlich von den genauen Anforderungen der Anwendungsdomäne und den Vorzügen der Anwender und Abfragensteller abhängig.

F: Welche Hive-Version unterstützt Amazon EMR?

Amazon EMR unterstützt mehrere Versionen von Hive, einschließlich 0.11.0.

F: Können zwei Cluster gleichzeitig in eine Tabelle schreiben?

Nein. Das gleichzeitige Schreiben in eine Tabelle wird von Hive derzeit nicht unterstützt. Vermeiden Sie sowohl das gleichzeitige beschreiben einer Tabelle als auch das Lesen einer Tabelle während diese beschrieben wird. Hive zeigt ein nicht-deterministisches Verhalten, wenn während des Schreibens gleichzeitig gelesen oder geschrieben wird.

F: Können Cluster Daten gemeinsam nutzen?

Ja. Wenn oben in Ihrem Skript die Anweisung "Create External Table" angezeigt wird, können Sie Daten innerhalb eines Hive-Skripts in Amazon S3 lesen. Für jede externe Ressource, auf die Sie zugreifen möchten, benötigen Sie ein "Create Table"-Anweisung.

F: Soll ich einen großen Cluster ausführen, der von mehreren Benutzern gemeinsam genutzt wird, oder besser mehrere kleinere Cluster?

Amazon EMR bietet Ihnen beide Möglichkeiten. Zur Verarbeitung normaler Batch-Arbeitslasten ist ein einzelner, großer Cluster wahrscheinlich effizienter. Bei Ad-hoc-Abfragen oder variierenden Arbeitslasten können Sie jedoch auch mehrere separate Cluster erstellen, die auf bestimmte, in Amazon S3 zur Aufgabenteilung gespeicherte Daten abgestimmt sind.

F: Habe ich Zugriff auf Skripte oder Jar-Ressourcen, die sich in meinem lokalen Dateisystem befinden?

Nein. Damit eine Referenzierung erfolgen kann, müssen Sie das Skript oder die Jar-Ressource vorher in Amazon S3 oder in den Master-Knoten des Clusters hochladen. Zum Hochladen in Amazon S3 können Sie Tools wie s3cmd, jets3t oder S3Organizer verwenden.

F: Kann ich einen permanenten Cluster betreiben, der mehrere Hive-Abfragen ausführt?

Ja. Wählen Sie für Ihren Cluster den Modus der manuellen Beendigung, damit er zwischen den Hive-Schritten nicht beendet wird. Um das Risiko eines Datenverlusts möglichst gering zu halten, empfiehlt es sich, wichtige Daten regelmäßig in Amazon S3 dauerhaft zu speichern. Außerdem sollten Sie Ihre Daten regelmäßig in einen neuen Cluster übertragen, um für den Fall eines Master-Knotenausfalls den Wiederherstellungsprozess zu testen.

F: Können mehrere Benutzer Hive-Schritte mit denselben Quelldaten ausführen?

Ja. Von mehreren Benutzern in verschiedenen Clustern ausgeführte Hive-Skripts können "Create External Table"-Anweisungen enthalten, um Quelldaten aus Amazon S3 gleichzeitig importieren zu können.

F: Können mehrere Benutzer Abfragen auf denselben Cluster anwenden?

Ja. Im Batch-Modus werden Schritte serialisiert. Mehrere Benutzer können demselben Cluster Hive-Schritte hinzufügen, allerdings werden diese Schritte seriell ausgeführt. Im interaktiven Modus können mehrere Benutzer am selben Cluster angemeldet sein und Hive-Anweisungen gleichzeitig ausführen.

F: Können Daten von mehreren AWS-Benutzern gemeinsam benutzt werden?

Ja. Die Standard-Sharing-Funktion von Amazon S3 ermöglicht eine gemeinsame Nutzung von Daten. Weitere Informationen erhalten Sie unter http://docs.amazonwebservices.com/AmazonS3/latest/index.html?S3_ACLs.html

F: Unterstützt Hive den Zugriff von JDBC?

Ja. Hive verfügt über einen JDBC-Treiber, der zur programmatischen Ausführung von Hive-Anweisungen verwendet werden kann. Der JDBC-Service wird in Ihrem Cluster durch Eingabe eines optionalen Parameters in den Befehlszeilen-Client von Amazon EMR gestartet. Da die Sicherheitsgruppe keine externen Verbindungen zulässt, muss ein SSH-Tunnel aufgebaut werden.

F: Wie werden Pakete für EMR-AMIs aktualisiert?

Wir betreiben ausgewählte Pakete von Debian/Stable, einschließlich Sicherheitspatches. Sobald ein Paket in Debian/Stable aktualisiert wird, übernehmen wir diese Aktualisierung. Das Paket "r-recommended" auf unserem Image ist bezüglich Debian/stable auf dem neuesten Stand (http://packages.debian.org/search?keywords=r-recommended).

F: Kann ich meine eigenen Pakete für EMR-Cluster aktualisieren?

Ja. Sie können Bootstrap Actions verwenden, um Paketaktualisierungen auf Ihren Clustern zu installieren.

F: Kann ich DynamoDB-Daten auch mit Hive verarbeiten?

Ja. Legen Sie ganz einfach eine externe Hive-Tabelle fest, die auf Ihrer DynamoDB-Tabelle basiert. Dann können Sie mithilfe von Hive die in DynamoDB gespeicherten Daten analysieren und die Ergebnisse entweder wieder in DynamoDB laden oder in Amazon S3 archivieren. Weitere Informationen finden Sie im Entwicklerhandbuch.


F: Was ist Impala?

Impala ist ein Open-Source-Tool im Hadoop-Umfeld für interaktives Ad-hoc-Abfragen mit SQL-Syntax. Anstelle von MapReduce wird eine massive Parallelverarbeitungs- (Massive Parallel Processing – MPP) Engine verwendet, die derjenigen in herkömmlichen relationalen Datenbankmanagementsystemen (RDBMS) ähnelt. Bei dieser Architektur können die Daten in HDFS- oder HBase-Tabellen sehr rasch abgefragt werden, und Sie können die Fähigkeit von Hadoop nutzen, verschiedene Datentypen zu verarbeiten und während der Laufzeit ein Schema bereitzustellen. Dadurch ist Impala für interaktive Analysen mir kurzer Latenzzeit gut geeignet. Außerdem verwendet Impala den Hive-Metastore zum Speichern von Informationen über die Eingabedaten, einschließlich der Partitionsnamen und Datentypen. Für Impala auf Amazon EMR sind außerdem AMIs erforderlich, die auf Hadoop 2.x oder höher ausgeführt werden. Weitere Informationen über Impala finden Siehier.

F: Welche Funktionen bietet mir in Amazon EMR ausgeführtes Impala?

Ähnlich wie mit Hive in Amazon EMR kann Impala in Amazon EMR komplizierte Datenverarbeitungsanwendungen unter Verwendung von SQL-Syntax implementieren. Allerdings ist Impala so aufgebaut, dass in bestimmten Anwendungsfällen (siehe unten) eine schnellere Leistung erzielt wird. Mit Amazon EMR können Sie Impala als zuverlässiges Data Warehouse nutzen, um Aufgaben wie Datenanalyse, Überwachung und Business Intelligence auszuführen. Im Folgenden sind drei Verwendungsfälle aufgeführt:

  • Verwendung von Impala anstelle von Hive in Langläufer-Clustern zum Ausführen von Ad-hoc-Abfragen. Impala reduziert die Dauer von interaktiven Abfragen auf einige Sekunden und wird dadurch zum bestens geeigneten Tool für schnelle Recherchen. Sie könnten Impala auf demselben Cluster wie Ihre Stapel-Workflows in MapReduce ausführen, Impala in einem Langläuferanalyse-Cluster mit Hive und Pig ausführen, oder ein speziell auf Impala-Abfragen abgestimmtes Cluster erstellen.
  • Verwendung von Impala anstelle von Hive für ETL-Stapelaufträge in Amazon EMR-Kurzzeit-Clustern. Im Falle zahlreicher Abfragen ist Impala schneller als Hive, wodurch für diese Arbeitslasten eine bessere Leistung erzielt wird. Genau wie Hive arbeitet auch Impala mit SQL. Somit können Abfragen problemlos von Hive nach Impala modifiziert werden.
  • Verwendung von Impala in Verbindung mit einem Business-Intelligence-Tool eines Drittanbieters. Verbinden Sie einen Client-ODBC- oder JDBC-Treiber mit Ihrem Cluster, um Impala als Engine für leistungsstarke Visualisierungs-Tools und Dashboards nutzen zu können.

Sowohl Stapel- als auch interaktive Impala-Cluster können in Amazon EMR erstellt werden. Sie können beispielsweise ein Amazon EMR-Langläufer-Cluster für interaktives Ad-hoc-Abfragen mit Impala ausführen oder Impala-Kurzzeit-Cluster für schnelle ETL-Workflows nutzen.

F: Wie unterscheidet sich Impala von herkömmlichen relationalen Datenbank-Managementsystemen?

Herkömmliche relationale Datenbanksysteme stellen Transaktionssemantik und ACID-Eigenschaften (Atomizität, Konsistenz, Isolation, Dauerhaftigkeit) der Datenbank bereit. Sie gestatten auch die Indizierung und Zwischenspeicherung von Tabellen, sodass kleine Datenmengen sehr schnell abgerufen und rasch aktualisiert sowie referentielle Integritätsbedingungen durchgesetzt werden können. Typischerweise werden sie auf einer einzelnen großen Maschine ausgeführt und unterstützen die Handhabung komplexer benutzerdefinierter Datentypen nicht. Impala verwendet ein ähnliches verteiltes Abfragesystem wie dasjenige in RDBMSs, fragt aber in HDFS gespeicherte Daten ab und verwendet den Hive-Metastore für die Ablage von Informationen über die Eingabedaten. Wie bei Hive wird das Schema für eine Abfrage während der Laufzeit bereitgestellt, wodurch einfachere Schema-Änderungen ermöglicht werden. Impala kann eine Reihe von komplexen Datentypen abfragen und benutzerdefinierte Funktionen ausführen. Da Impala Daten jedoch speicherintern verarbeitet, müssen Sie die Hardware-Einschränkungen Ihres Clusters jedoch unbedingt kennen und Ihre Abfragen optimieren, um die beste Leistung zu erzielen.

F: Wie unterscheidet sich Impala von Hive?

Impala führt SQL-Abfragen mithilfe einer massiven Parallelverarbeitungs- (Massive Parallel Processing – MPP) Engine aus, Hive hingegen führt SQL-Abfragen mit MapReduce aus. Der Overhead in Hive infolge der Erstellung von MapReduce-Aufträgen wird bei Impala vermieden, und somit sind die Abfragezeiten schneller als bei Hive. Impala verwendet jedoch enorme Speicherressourcen, und der verfügbare Speicher des Clusters gibt vor, wieviel Speicherplatz jede Abfrage belegen darf. Hive ist diesbezüglich nicht eingeschränkt und kann größere Datensätze mit derselben Hardware erfolgreich verarbeiten. Im Allgemeinen sollten Sie Impala für schnelle, interaktive Abfragen verwenden, Hive dagegen ist die bessere Lösung für ETL-Arbeitslasten in größeren Datensätzen. Impala ist auf Geschwindigkeit ausgelegt und hervorragend geeignet für Ad-hoc-Recherchen. Allerdings wird eine enorme Speichermenge belegt, um kostspielige Abfragen auszuführen oder sehr große Datensätze zu verarbeiten. Aufgrund dieser Einschränkungen empfehlen wir Hive für Arbeitslasten, bei denen nur der Abschluss, nicht aber die Geschwindigkeit eine Rolle spielt. Hier finden Sie einige Leistungsvergleichswerte zwischen Impala und Hive.

F: Kann ich Hadoop 1 verwenden?

Nein, für Impala ist Hadoop 2 erforderlich, und es läuft nicht auf einem Cluster mit einem AMI, das mit Hadoop 1.x ausgeführt wird.

F: Welche Instance-Typen soll ich für meinen Impala-Cluster verwenden?

Unsere Empfehlung für die besten Erfahrungswert für Impala ist, für Ihr Cluster speicheroptimierte Instances zu verwenden. Wie haben jedoch nachgewiesen, dass im Vergleich mit Hive Leistungssteigerungen auch mit standardmäßigen Instance-Typen möglich sind. Wir empfehlen Ihnen, den Abschnitt Leistungstests und Abfrage-Optimierung im Entwicklerhandbuch für Amazon EMR durchzulesen, um die Speicherressourcen besser einschätzen zu können, die Ihr Cluster hinsichtlich Datensatz und Abfragetypen benötigt. Komprimierungstyp, Partitionen und tatsächliche Abfrage (Anzahl von Joins, Ergebnisgröße usw.), all das spielt eine Rolle für den erforderlichen Speicher. Sie können die EXPLAIN-Anweisung zum Schätzen des Speicherbedarfs und anderer für eine Impala-Abfrage benötigter Ressourcen verwenden.

F: Was geschieht, wenn bei einer Abfrage nicht mehr genügend Speicherplatz vorhanden ist?

Wenn der Speicherplatz zu knapp wird, schlagen die Abfragen fehl, und der auf dem betreffenden Knoten installierte Impala-Daemon schaltet ab. Amazon EMR startet den Daemon auf dem Knoten dann neu, sodass Impala zum Ausführen einer weiteren Abfrage bereit ist. Ihre Daten in HDFS auf dem Knoten bleiben verfügbar, weil nur der auf dem Knoten ausgeführte Daemon abschaltet, nicht aber der gesamte Knoten selbst. Für Ad-hoc-Analysen mit Impala kann die Abfragezeit oft in Sekunden gemessen werden; wenn daher eine Abfrage fehlschlägt, können Sie das Problem rasch ausfindig machen und kurz darauf eine neue Abfrage starten.

F: Unterstützt Impala benutzerdefinierte Funktionen?

Ja, Impala unterstützt benutzerdefinierte Funktionen (UDFs). Impala-spezifische UDFs können Sie in Java oder C++ schreiben. Sie können UDFs oder benutzerdefinierte Aggregatfunktionen, die für Hive erstellt wurden, auch für die Verwendung mit Impala modifizieren. Weitere Informationen über UDFs in Hive finden Sie hier.

F: Wo sind die Daten gespeichert, die Impala abfragen soll?

Impala fragt Daten in HDFS- oder in HBase-Tabellen ab. Wenn Sie Ihre Daten in Amazon S3 speichern, empfehlen wir Ihnen unser Amazon EMR Whitepaper: Bewährte Vorgehensweisen. Es gibt die besten Methoden für den Transfer Ihrer Daten in HDFS an.

F: Kann ich Impala und MapReduce in einem Cluster gleichzeitig ausführen?

Ja, Sie können ein Multitenant-Cluster mit Impala und MapReduce einrichten. Sie sollten allerdings sicherstellen, dass unter Verwendung von YARN in Hadoop 2.x Ressourcen (Speicher, Platte und CPU) zu jeder Anwendung zugewiesen werden. Die Ressourcen sollten abhängig vom Bedarf für die Aufträge zugewiesen werden, die Sie auf jeder Anwendung beabsichtigen auszuführen.

F: Unterstützt Impala ODBC- und JDBC-Treiber?

Sie können selbstverständlich ODBC-Treiber verwenden. Impala ist aber auch eine großartige Engine für Tools von Drittanbietern, die über JDBC verbunden werden. Sie können den Impala Client-JDBC-Treiber herunterladen von http://elasticmapreduce.s3.amazonaws.com/libs/impala/1.2.1/impala-jdbc-1.2.1.zip. Vom Client-Computer aus, auf dem Ihr Business-Intelligence-Tool installiert ist, verbinden Sie den JDBC-Treiber mit dem Hauptknoten eines Impala-Clusters mittels SSH oder eines VPN auf dem Port 21050. Weitere Informationen finden Sie unterSSH-Tunnel zum Hauptknoten öffnen.


F: Was ist Apache Pig?

Bei Pig handelt es sich um ein Open-Source-Paket zur Analyse von Datensätzen, das auf Hadoop ausgeführt wird. Pig wird mit einer SQL-ähnlichen Sprache namens "Pig Latin" betrieben, die es Nutzern ermöglicht, in Amazon S3 gespeicherte Datenquellen zu strukturieren, zu summieren und abzufragen. Neben SQL-ähnlichen Abläufen bietet Pig Latin auch eine erstklassige Unterstützung für "Map"- und "Reduce"-Funktionen sowie komplexe erweiterbare, benutzerdefinierte Datentypen. Damit wird die Verarbeitung komplexer und sogar unstrukturierter Datenquellen wie Textdokumente und Protokolldateien ermöglicht. Pig unterstützt Benutzer-Erweiterungen über benutzerdefinierte Funktionen, die in Java geschrieben und über die Speicherung in Amazon S3 bereitgestellt wurden.

F: Welche Funktionen bietet mir in Amazon EMR ausgeführtes Pig?

Bei Verwendung von Pig zusammen mit Amazon EMR können Sie anspruchsvolle Datenverarbeitungsanwendungen mit einer bekannten, SQL-ähnlichen Sprache und benutzerfreundlichen Tools implementieren. Mit Amazon EMR können Sie außerdem Ihre Pig-Anwendungen in ein zuverlässiges Data Warehouse verwandeln, mit dem Aufgaben wie Datenanalyse, Überwachung und Business Intelligence erfolgen können.

F: Was sind die ersten Schritte für die Ausführung von Pig in Amazon EMR?

Unter http://developer.amazonwebservices.com/connect/entry.jspa?externalID=2735&categoryID=269 finden Sie sowohl ein textbasiertes als auch Video-Tutorial, die Ihnen einen einfachen Einstieg ermöglichen.

F: Verfügt Pig über neue Funktionen speziell für Amazon EMR?

Ja. Es gibt drei neue Funktionen, durch die Pig in Kombination mit Amazon EMR jetzt noch leistungsfähiger ist:

a/ Zugriff auf mehrere Dateisysteme. Standardmäßig kann ein Pig-Auftrag für die Eingabe, Ausgabe oder temporäre Dateien nur auf ein einziges entferntes Dateisystem zugreifen (HDFS-Speicher oder S3-Bucket). Durch EMR wurde Pig erweitert, sodass jeder Auftrag auf beliebig viele Dateisysteme zugreifen kann. Dies hat den Vorteil, dass temporäre Auftragsdateien immer im lokalen HDFS gespeichert werden, was zu einer verbesserten Leistung führt.

b/ Laden von Ressourcen aus S3. Pig wurde durch EMR erweitert, sodass benutzerdefinierte JAR-Dateien und Skripts auch aus dem S3-Dateisystem stammen können, beispielsweise "REGISTER s3:///my-bucket/piggybank.jar".

c/ Zusätzliche Piggybank-Funktion für String- und DateTime-Verarbeitung. Unter http://developer.amazonwebservices.com/connect/entry.jspa?externalID=2730 erhalten Sie weitere Informationen.

F: Welche Typen von Pig-Clustern werden unterstützt?

Pig unterstützt zwei Cluster-Typen: Interaktiv und Batch. Im interaktiven Modus können Kunden Cluster direkt auf dem Master-Knoten Cluster starten und Pig-Skripts interaktiv ausführen. Normalerweise wird dieser Modus zur Durchführung von Ad-hoc-Datenanalysen sowie für die Anwendungsentwicklung verwendet. Im Batch-Modus wird das Pig-Skript in Amazon S3 gespeichert und beim Starten des Clusters referenziert. Der Batch-Modus wird normalerweise für sich wiederholende Prozesse wie beispielsweise die Berichterstellung genutzt.

F: Wie starte ich einen Pig-Cluster?

Sowohl Batch- als auch interaktive Cluster können über die AWS Management Console, den Befehlszeilen-Client von EMR und über APIs gestartet werden.

F: Welche Pig-Version unterstützt Amazon EMR?

Amazon EMR unterstützt mehrere Versionen von Pig, einschließlich 0.11.1.

F: Können Daten aus zwei Clustern gleichzeitig in einen S3-Bucket geschrieben werden?

Ja, Sie können Daten von zwei Clustern gleichzeitig in einen Bucket schreiben.

F: Können in S3 vorhandene Eingabedaten von Clustern gemeinsam genutzt werden?

Ja, Sie können dieselben Daten in S3 von zwei Clustern gleichzeitig lesen.

F: Können Daten von mehreren AWS-Benutzern gemeinsam benutzt werden?

Ja. Die Standard-Sharing-Funktion von Amazon S3 ermöglicht eine gemeinsame Nutzung von Daten. Weitere Informationen erhalten Sie unter http://docs.amazonwebservices.com/AmazonS3/latest/index.html?S3_ACLs.html

F: Soll ich einen großen Cluster ausführen, der von mehreren Benutzern gemeinsam genutzt wird, oder besser mehrere kleinere Cluster?

Amazon EMR bietet Ihnen beide Möglichkeiten. Zur Verarbeitung normaler Batch-Arbeitslasten ist ein einzelner, großer Cluster wahrscheinlich effizienter. Bei Ad-hoc-Abfragen oder variierenden Arbeitslasten können Sie jedoch auch mehrere separate Cluster erstellen, die auf bestimmte, in Amazon S3 zur Aufgabenteilung gespeicherte Daten abgestimmt sind.

F: Habe ich Zugriff auf Skripte oder Jar-Ressourcen, die sich in meinem lokalen Dateisystem befinden?

Nein. Damit eine Referenzierung erfolgen kann, müssen Sie das Skript oder die Jar-Ressource vorher in Amazon S3 oder in den Master-Knoten des Clusters hochladen. Zum Hochladen in Amazon S3 können Sie Tools wie s3cmd, jets3t oder S3Organizer verwenden.

F: Kann ich einen permanenten Cluster betreiben, der mehreren Pig-Abfragen ausführt?

Ja. Wählen Sie für Ihren Cluster den Modus der manuellen Beendigung, damit er zwischen den Pig-Schritten nicht beendet wird. Um das Risiko eines Datenverlusts möglichst gering zu halten, empfiehlt es sich, wichtige Daten regelmäßig in Amazon S3 dauerhaft zu speichern. Außerdem sollten Sie Ihre Daten regelmäßig in einen neuen Cluster übertragen, um für den Fall eines Master-Knotenausfalls den Wiederherstellungsprozess zu testen.

F: Unterstützt Pig den Zugriff von JDBC?

Nein. Pig unterstützt keinen Zugriff über JDBC.


F: Was ist Apache HBase?

HBase ist eine nicht relationale, verteilte Open-Source-Datenbank nach dem Vorbild von Google BigTable. Sie wurde im Rahmen des Hadoop-Projekts der Apache Software Foundation entwickelt und wird auf Hadoop Distributed File System (HDFS) ausgeführt, um für Hadoop Kapazitäten wie bei BigTable bereitzustellen. HBase bietet eine fehlertolerante, effiziente Methode für die Speicherung großer Mengen von Daten mit geringer Dichte. Es setzt dazu spaltenbasierte Kompression und Speicherung ein. Darüber hinaus ermöglicht HBase schnellen Datenaufruf, da die Daten nicht auf einem Datenträger, sondern In-Memory gespeichert werden. HBase ist für serielle Schreiboperationen optimiert und besonders effizient für Batch-Inserts, Updates und Löschvorgänge. HBase arbeitet problemlos mit Hadoop, verwendet dasselbe Dateisystem und dient als Direktein- und -ausgabe für Hadoop-Aufträge. HBase lässt sich auch mit Apache Hive integrieren, ermöglicht SQL-artige Abfragen von HBase-Tabellen und Join-Vorgänge mit Hive-basierten Tabellen und unterstützt Java Database Connectivity (JDBC).

F: Verfügt HBase über neue Funktionen speziell für Amazon EMR?

Mit Amazon EMR können Sie HBase auf Amazon S3 sichern (vollständig oder inkrementell, manuell oder automatisiert) und von einem früher erstellten Backup wiederherstellen. Weitere Informationen zu HBase und EMR.

F: Welche HBase-Versionen werden für Amazon EMR unterstützt?

Amazon EMR unterstützt HBase 0.94.7 und HBase 0.92.0. Zum Verwenden von HBase 0.94.7 müssen Sie die AMI-Version 3.0.0 angeben. Bei Verwenden der Befehlszeilen-Schnittstelle müssen Sie Version 2013-10-07 oder höher verwenden.


F: Was ermöglicht der EMR Connector für Kinesis?

Der Connector ermöglicht EMR das direkte Lesen und Abfragen von Daten in Kinesis-Streams. Sie können mit vorhandenen Hadoop-Tools wie Hive, Pig, MapReduce, Hadoop Streaming und Cascading eine Stapelverarbeitung auf Kinesis-Streams anwenden.

F: Was ermöglicht der EMR Connector für Kinesis, was zuvor nicht möglich war?

Für das Lesen und Verarbeiten von Daten in einem Kinesis-Stream ist das Schreiben, Bereitstellen und Pflegen unabhängiger Stream-Verarbeitungsanwendungen erforderlich. Dies ist mit Zeit- und Personalaufwand verbunden. Mit diesem Connector können Sie hingegen mit dem Lesen und Analysieren eines Kinesis-Streams beginnen, indem Sie ein einfaches Hive- oder Pig-Skript schreiben. Das heißt, dass Sie Kinesis mithilfe von SQL analysieren können! Andere Hadoop-Tools können freilich ebenfalls zum Einsatz kommen. Sie müssen keine neuen Verarbeitungsanwendungen entwickeln und pflegen.

F: Für wen ist diese Funktionalität nützlich?

Für die folgenden Benutzertypen ist diese Integration nützlich:

  • Hadoop-Benutzer mit Interesse an der Nutzung des umfassenden Angebots an Hadoop-Tools für die Analyse von Kinesis-Streams.
  • Kinesis-Benutzer, die eine einfache Möglichkeit der Einrichtung der Stream-Verarbeitung und und zum Extrahieren, Transformieren und Laden von Kinesis-Daten suchen.
  • Wirtschaftsanalysten und IT-Fachleute, die Daten in Kinesis-Streams mit vertrauten SQL-Tools (über Hive) oder Skriptsprachen wie Pig ad hoc analysieren möchten.

F: Was sind Anwendungsfälle für diese Integration?

Es folgen repräsentative Anwendungsfälle, die durch diese Integration ermöglicht werden:

  • Streaming-Protokollanalyse: Sie können Streaming-Webprotokolle analysieren, um eine Liste der 10 häufigsten Fehlertypen alle "x" Minuten nach Region, Browser und Zugriffs-Domain zu erzeugen.
  • Komplexe Datenverarbeitungs-Workflows: Sie können in S3, DynamoDB-Tabellen und HDFS gespeicherte Daten einem Kinesis-Stream hinzufügen. Sie können Abfragen schreiben, die Clickstream-Daten aus Kinesis mit Informationen zu Werbekampagnen in einer DynamoDB-Tabelle verknüpfen, um die effektivsten Kategorien von Anzeigen zu bestimmen, die auf bestimmten Websites angezeigt werden.
  • Ad-hoc-Abfragen: Sie können Daten regelmäßig aus Kinesis in HDFS laden und diese für schnelle, interaktive Analyseabfragen als lokale Impala-Tabelle zur Verfügung stellen.

F: Welche EMR-AMI-Version benötige ich für die Nutzung des Connectors?

Sie benötigen mindestens die EMR-AMI-Version 3.0.4.

F: Ist dieser Connector ein eigenständiges Tool?

Nein, es handelt sich um eine in die Amazon-Verteilung von Hadoop integrierte Komponente, die in EMR-AMI-Versionen ab 3.0.4 vorhanden ist. Der Kunde muss lediglich einen Cluster mit einer AMI-Version ab 3.0.4 einrichten, um diese Funktion nutzen zu können.

F: Welches Datenformat ist erforderlich, damit EMR Daten in einem Kinesis-Stream lesen kann?

Die Integration von EMR und Kinesis ist nicht datenformatspezifisch. Sie können Daten in einem beliebigen Format lesen. Einzelne Kinesis-Datensätze werden Hadoop als Standarddatensätze gezeigt, die von jedem Hadoop MapReduce-Framework gelesen werden können. Einzelne Frameworks wie Hive, Pig und Cascading verfügen über integrierte Komponenten zur Unterstützung der Serialisierung und Deserialisierung, was es Entwicklern erleichtert, Daten in vielen Formaten abzufragen, ohne angepassten Code zu implementieren. In Hive können Benutzer beispielsweise Daten in JSON-, XML- und SEQ-Dateien lesen, indem sie beim Definieren einer Tabelle die entsprechende Einstellung Hive SerDe angeben. Die vergleichbare Komponente in Pig heißt Loadfunc/Evalfunc und in Cascading Tap. Hadoop-Benutzer können das umfangreiche Angebot von Hadoop-Adaptern nutzen, ohne formatspezifischen Code schreiben zu müssen. Sie können auch angepasste Deserialisierungsformate implementieren, um Domain-spezifische Daten in diesen Tools zu lesen.

F: Wie analysiere ich einen Kinesis-Stream mit Hive in EMR?

Erstellen Sie eine Tabelle, die auf einen Kinesis-Stream verweist. Sie können anschließend die Tabelle wie jede andere in Hive analysieren. Weitere Informationen finden Sie auf unser Seite mit Tutorials.

F: Wie erstelle ich mithilfe von Hive Abfragen, die Kinesis-Stream-Daten mit anderen Datenquellen kombinieren?

Erstellen Sie zunächst eine Tabelle, die auf einen Kinesis-Stream verweist. Nach dem Erstellen einer Hive-Tabelle können Sie diese mit Tabellen verknüpfen, die anderen Datenquellen wie Amazon S3, Amazon Dynamo DB und HDFS zugeordnet sind. Dadurch werden Daten im Kinesis-Stream mit anderen Datenquellen verbunden.

F: Gibt es diese Integration nur für Hive?

Nein, Sie können Hive, Pig, MapReduce, Hadoop Streaming und Cascading verwenden.

F: Wie richte ich geplante Aufträge für die Anwendung auf einen Kinesis-Stream ein?

Der Eingabe-Connector für EMR Kinesis bietet Funktionen zum Konfigurieren und Verwalten geplanter regelmäßiger Aufträge in herkömmlichen Zeitplanungslösungen wie Cron. Sie können beispielsweise ein Hive-Skript schreiben, das alle "x" Minuten ausgeführt wird. In den Konfigurationsparametern für den Auftrag können Sie einen logischen Namen dafür angeben. Der logische Name ist eine Bezeichnung, die den Eingabe-Connector für EMR Kinesis informiert, dass einzelne Instanzen des Auftrags Elemente desselben regelmäßigen Zeitplans sind. Der logische Name erlaubt dem Prozess, mit Iterationen zu arbeiten, was nachstehend erläutert wird.

Da MapReduce ein Framework für Stapelverarbeitung ist, wird zum Analysieren eines Kinesis-Streams mit EMR der laufende Stream in Stapel unterteilt. Jeder Stapel wird als Iteration bezeichnet. Jeder Iteration wird eine bei 0 beginnende Nummer zugewiesen. Die Begrenzungen jeder Iteration werden durch eine Startsequenz- und Endsequenznummer definiert. Iterationen werden dann durch EMR sequenziell verarbeitet.

Bei einem Fehlversuch wiederholt der Eingabe-Connector für EMR Kinesis die Iteration innerhalb des logischen Namens ab der bekannten Startsequenznummer der Iteration. Diese Funktionalität stellt sicher, dass nachfolgende Versuche für dieselbe Iteration genau dieselben Eingabedatensätze aus dem Kinesis-Stream wie vorherige Versuche aufweisen. Dies gewährleistet die idempotente (einheitliche) Verarbeitung eines Kinesis-Streams.

Sie können in Ihrem jeweiligen Hadoop-Tool die logischen Namen und Iterationen als Laufzeitparameter angeben. Im Tutorial-Abschnitt "Running queries with checkpoints" enthält das Codebeispiel eine geplante Hive-Abfrage, die einen logischen Namen für die Abfrage bestimmt, und die Iteration mit jeder erfolgreichen Ausführung des Auftrags numerisch erhöht.

In den Tutorials finden Sie auch ein Cron-Beispielskript für die Zeitplanung.

F: Wo sind die Metadaten für logische Namen und Iterationen gespeichert?

Die Metadaten, die dem Eingabe-Connector für EMR Kinesis das Arbeiten in geplanten regelmäßigen Workflows ermöglichen, sind in Amazon DynamoDB gespeichert. Sie müssen eine Amazon Dynamo DB-Tabelle bereitstellen und sie als Eingabeparameter für den Hadoop-Auftrag angeben. Sie müssen für die Ermöglichung dieser Integration einen geeigneten Wert für E/As pro Sekunde konfigurieren. Im Tutorial für die ersten Schritte finden Sie weitere Informationen zum Einrichten Ihrer Amazon DynamoDB-Tabelle.

F: Was geschieht, wenn eine Iterationsverarbeitung fehlschlägt?

Iterations-IDs sind vom Benutzer angegebene Werte, die einer bestimmten Begrenzung (Start- und Endsequenznummern) in einem Kinesis-Stream zugeordnet sind. Diesen Begrenzungen entsprechende Daten werden in der Phase "Map" des MapReduce-Auftrags geladen. Diese Phase wird vom Framework verwaltet und bei misslungener Auftragsausführung automatisch wiederholt (standardmäßig dreimal). Wenn alle Wiederholungen nicht erfolgreich sind, haben Sie weitere Möglichkeiten, die Verarbeitung ab der letzten erfolgreichen Datenbegrenzung oder vorherigen Datenbegrenzungen zu starten. Dieses Verhalten wird durch Angabe des Parameters "kinesis.checkpoint.iteration.no parameter" während der Verarbeitung gesteuert. Weitere Informationen dazu, wie dieser Wert für verschiedene Tools im Hadoop-Entwicklungssystem konfiguriert wird, finden Sie im Tutorial für die ersten Schritte.

F: Kann ich mehrere Abfragen für dieselbe Iteration ausführen?

Ja, Sie können eine zuvor ausgeführte Iteration angeben, indem Sie den Parameter "kinesis.checkpoint.iteration.no" für die nachfolgende Verarbeitung angeben. Diese Implementierung stellt sicher, dass nachfolgende Läufe für dieselbe Iteration genau dieselben Eingabedatensätze aus dem Kinesis-Stream wie vorherige Läufe aufweisen.

F: Was passiert, wenn Datensätze in einer Iteration im Kinesis-Stream ablaufen?

Falls die Anfangs- oder Endsequenznummer einer Iteration zu Datensätzen gehört, die im Kinesis-Stream abgelaufen sind, schlägt der Hadoop-Auftrag fehl. Sie müssen einen anderen logischen Namen verwenden, um Daten ab dem Anfang des Kinesis-Streams zu verarbeiten.

F: Kan ich Data per PUSH-Verfahren aus EMR in den Kinesis-Stream verlagern?

Nein. Der Kinesis-Connector für EMR unterstützt derzeit nicht das Zurückschreiben von Daten in einen Kinesis-Stream.

F: Ermöglicht der EMR Hadoop-Eingabe-Connector für Kinesis die fortlaufende Stream-Verarbeitung?

Das Hadoop MapReduce-Framework ist ein Stapelverarbeitungssystem. Als solches unterstützt es keine fortlaufenden Abfragen. Es gibt im Hadoop-Entwicklungssystem jedoch mittlerweile Frameworks wie Twitter Storm und Spark Streaming, die Entwicklern das Erstellen von Anwendungen für die fortlaufende Stream-Verarbeitung ermöglichen. Einen Storm-Connector für Kinesis finden Sie hier auf GitHub. Ein Tutorial mit einer Erläuterung der Einrichtung von Spark Streaming für EMR und Ausführung fortlaufender Abfragen finden Sie hier.

Darüber hinaus können Entwickler die Kinesis-Client-Bibliothek nutzen, um Anwendungen für die Stream-Verarbeitung in Echtzeit zu entwickeln. Weitere Informationen zum Entwickeln angepasster Kinesis-Anwendungen finden Sie hier in der Kinesis-Dokumentation.

F: Kann ich Anmeldeinformationen für den Lesezugriff auf einen Kinesis-Stream angeben, der in einem anderen AWS-Konto verwaltet wird?

Ja. Sie können Streams in einem anderen AWS-Konto lesen, indem Sie die entsprechenden Anmeldeinformationen des Kontos angeben, zu dem der Kinesis-Stream gehört. Der Kinesis-Connector nutzt standardmäßig die vom Benutzer angegebenen Anmeldeinformationen, die bei der Erstellung des Clusters festgelegt werden. Sie können diese Anmeldeinformationen außer Kraft setzen, um auf Streams in anderen AWS-Konten zuzugreifen, indem Sie die Parameter "kinesis.accessKey" und "kinesis.secretKey" festlegen. Die folgenden Beispiele zeigen, wie Sie die Parameter "kinesis.accessKey" und "kinesis.secretKey" in Hive und Pig festlegen.

Codebeispiel für Hive:
...
STORED BY
'com.amazon.emr.kinesis.hive.KinesisStorageHandler'
TBLPROPERTIES(
"kinesis.accessKey"="AwsAccessKey",
"kinesis.secretKey"="AwsSecretKey",
);

Codebeispiel für Pig:

raw_logs = LOAD 'AccessLogStream' USING com.amazon.emr.kinesis.pig.Kin
esisStreamLoader('kinesis.accessKey=AwsAccessKey', 'kinesis.secretKey=AwsSecretKey'
) AS (line:chararray);

F: Kann ich mehrere parallele Abfragen auf einen Kinesis-Stream anwenden? Hat das Auswirkungen auf die Leistung?

Ja, ein Kunde kann mithilfe gesonderter logischer Namen für jede Abfrage mehrere Abfragen parallel auf denselben Stream anwenden. Das Lesen von Daten aus einem Shard innerhalb eines Kinesis-Streams unterliegt einer Begrenzung der Datenübertragungsrate auf 2 MB/s. Wenn also "n" parallele Abfragen auf denselben Stream angewendet werden, erhält jede eine ungefähre Ausgangsrate von (2/n) MB/s pro Shard im Stream. Dies kann die Verarbeitung verlangsamen und mitunter auch zu einem Fehlschlagen der Abfragen führen.

F: Kann ich mehrere Kinesis-Streams in EMR verknüpfen und analysieren?

Ja. In Hive können Sie beispielsweise zwei Tabellen erstellen, die zwei verschiedenen Kinesis-Streams zugeordnet sind, und Joins zwischen den Tabellen erstellen.

F: Verarbeitet der Kinesis-Connector für EMR Kinesis-Skalierungsereignisse wie das Zusammenführen und Aufteilen von Ereignissen?

Ja. Die Implementierung verarbeitet das Zusammenführen und Aufteilen von Ereignissen. Der Kinesis-Connector bindet einzelne Kinesis-Shards (die logische Skalierungseinheit in einem Kinesis-Stream) an Hadoop MapReduce-Zuordnungsaufgaben (Map). Jede eindeutige Shard, die in einem Stream im logischen Zeitraum einer Iteration vorhanden ist, resultiert in genau einer Zuordnungsaufgabe. Bei einem Aufteilungs- oder Zusammenführungsereignis für eine Shard stellt Kinesis neue eindeutige Shard-IDs bereit. Dies hat zur Folge, dass das MapReduce-Framework weitere Zuordnungsaufgaben zum Lesen von Daten aus Kinesis bereitstellt. Dies alles erfolgt vom Benutzer unbemerkt.

F: Was passiert, wenn es in meinem Stream Phasen der Inaktivität gibt?

Die Implementierung erlaubt die Konfiguration des Parameters "kinesis.nodata.timeout". Beispiel: In einem Szenario, in dem "kinesis.nodata.timeout" auf 2 Minuten festgelegt ist, wollen Sie eine Hive-Abfrage alle 10 Minuten ausführen. Beachten Sie außerdem, dass einige Daten seit der letzten Iteration (vor 10 Minuten) in den Stream geschrieben wurden. Doch aktuell gehen keine neuen Datensätze ein, d. h. es gibt eine Inaktivität im Stream. In diesem Fall stellt der Kinesis-Connector fest, wenn die aktuelle Iteration der Abfrage gestartet wird, dass keine neue Datensätze eingehen. Der Connector fragt den Stream weitere 2 Minuten ab. Falls in diesem Zeitraum keine Datensätze eingehen, wird er beendet und verarbeitet nur die Datensätze, die bereits im aktuellen Stapel des Streams gelesen wurden. Wenn jedoch neue Datensätze eingehen, bevor das Intervall von "kinesis.nodata.timeout" abgelaufen ist, wartet der Connector ein weiteres Intervall ab, das dem Parameter "kinesis.iteration.timeout" entspricht. In den Tutorials erfahren Sie, wie diese Parameter festgelegt werden.

F: Wie debugge ich eine Abfrage, die bei jeder Iteration ständig fehlschlägt?

Bei einem Verarbeitungsfehler können Sie dieselben Tools nutzen, mit denen Sie derzeit Hadoop-Aufträge debuggen. Dazu zählt die Amazon EMR-Webkonsole, über die Sie Fehlerprotokolle öffnen und untersuchen können. Weitere Details zum Debugging eines EMR-Auftrags finden Sie hier.

F: Was passiert, wenn ich eine DynamoDB-Tabelle angebe, auf die ich keinen Zugriff habe?

Der Auftrag schlägt fehl und die Ausnahme wird in den Fehlerprotokollen des Auftrags angezeigt.

F: Was geschieht, wenn der Auftrag nicht fehlschlägt, das Setzen von Prüfpunkten in DynamoDB hingegen schon?

Der Auftrag schlägt fehl und die Ausnahme wird in den Fehlerprotokollen des Auftrags angezeigt.

F: Wie maximiere ich den Lesedurchsatz aus dem Kinesis-Stream in EMR?

Der Durchsatz aus dem Kinesis-Stream steigt mit der verwendeten Instance-Größe und der Datensatzgröße im Kinesis-Stream. Wir empfehlen für diese Funktionalität als Instance-Größe mindestens "m1.xlarge" für sowohl den Haupt- als auch die Kernknoten.