Allgemeine Fragen
-
F: Worum handelt es sich bei Amazon Elastic MapReduce?
-
Bei Amazon Elastic MapReduce handelt es sich um einen Web-Service, mit dem Unternehmen, Marktforscher, Datenanalysten und Entwickler einfach und kostengünstig große Datenmengen verarbeiten können. Zum Einsatz kommt dabei ein Hadoop-Framework, das auf der weboptimierten Infrastruktur von Amazon Elastic Compute Cloud (Amazon EC2) und Amazon Simple Storage Service (Amazon S3) ausgeführt wird.
-
F: Wie wende ich Amazon Elastic MapReduce an?
-
Mit Amazon Elastic MapReduce 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 Elastic MapReduce können Sie sich auf das Zerlegen oder Analysieren Ihrer Daten konzentrieren, ohne sich über die zeitraubende Einrichtung, Verwaltung oder das Abgleichen von Hadoop-Clustern beziehungsweise die Rechenkapazität, auf der diese aufbauen, kümmern zu müssen.
Amazon Elastic MapReduce eignet sich hervorragend für Prozesse, die eine schnelle und effiziente Verarbeitung großer Datenmengen erfordern. Mit der Web-Service-Oberfläche können Verarbeitungs-Workflows erstellt sowie der Fortschritt von ausgeführten Auftragsabläufen überwacht werden. Zudem können Sie die unkomplizierte Web-Oberfläche der AWS Management Console verwenden, um Ihre Auftragsabläufe zu starten und verarbeitungsintensive Cluster-Berechnung auf Amazon EC2 Instances durchzuführen.
-
F: Wer kann Amazon Elastic MapReduce verwenden?
-
Jeder, der einen unkomplizierten Zugang zu leistungsstarker Datenanalyse wünscht, kann Amazon Elastic MapReduce 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 Elastic MapReduce?
-
Amazon Elastic MapReduce vereinfacht Installation, Verwaltung und Abstimmung mit Hadoop-Clustern und der zugrundeliegenden Datenverarbeitung. Sie können ohne Wartezeit große Hadoop-Auftragsabläufe erstellen, mit denen die Verarbeitung innerhalb von Minuten, und nicht von Stunden oder Tagen, gestartet wird. Wenn Sie nichts anderes angegeben haben, fährt der Dienst Ihre Instanzen automatisch herunter, sobald der Auftragsablauf abgeschlossen ist.
Mit dieser Dienstleistung können datenintensive Aufgaben für Anwendungen wie Web-Indexing, Data-Mining, Logdateien-Analysen, Machine Learning, 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 Elastic MapReduce?
-
Amazon Elastic MapReduce 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 Auftragsablauf von Amazon Elastic MapReduce?
-
Ein Auftragsablauf besteht aus mehreren Verarbeitungsschritten, die Amazon Elastic MapReduce auf einem spezifischen Datensatz unter Verwendung eines Sets von Amazon EC2 Instances durchführt. Ein Auftragsablauf besteht aus mindestens einem Schritt. Jeder Schritt muss zum Abschluss des Auftragsablaufs der Reihenfolge nach erfolgreich durchgeführt werden.
-
F: Worin besteht ein Schritt im Auftragsablauf?
-
Ein Auftragsablauf ist eine benutzerdefinierte Verarbeitungseinheit, die 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 Auftragsablauf befinden?
-
STARTING – Der Auftragsablauf startet und konfiguriert EC2 Instances.
RUNNING – Ein Schritt für den Auftragsablauf wird derzeit ausgeführt.
WAITING – Der Auftragsablauf ist derzeit aktiv, es werden jedoch keine Schritte ausgeführt.
SHUTTING – Der Auftragsablauf wird derzeit beendet.
COMPLETED – Der Auftragsablauf wird nach erfolgreichem Abschluss aller Schritte beendet.
FAILED – Das Beenden des Auftragsablaufs nach einem Schritt ist fehlgeschlagen oder es ist ein interner Fehler aufgetreten.
TERMINATED – Der Auftrag wurde auf Wunsch des Benutzers abgebrochen.
-
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 Auftragsablauf vor der Ausführung abgebrochen wurde.
FAILED – Der Schritt ist während der Ausführung fehlgeschlagen.
Starten eines Auftragsablaufs
-
F: Wie erhalte ich Zugriff auf Amazon Elastic MapReduce?
-
Sie können mit der AWS Management Console, mithilfe von Befehlszeilen-Tools oder per API je nach Dienstleistung auf Amazon Elastic MapReduce zugreifen.
-
F: Wie starte ich einen Auftragsablauf?
-
Sie können mit AWS Management Console durch Ausfüllen eines einfachen Formulars einen Auftragsablauf starten. Legen Sie im Auftragsformular den Namen Ihres Auftragsablaufs, den Ort Ihrer Eingabedaten in Amazon S3, Ihre Verarbeitungsanwendung, den gewünschten Ort der Datenausgabe sowie Anzahl und Typ der gewünschten Amazon EC2-Instanzen fest. Optional können Sie einen Ort zur Ablage Ihrer Logdateien zum Auftragsablauf sowie einen SSH-Schlüssel zur Auftragsanmeldung bei der Ausführung angeben. Alternativ können Sie einen Auftragsablauf mit der RunJobFlow API oder mithilfe des Kommandos "create" im Befehlzeilen-Tool starten.
-
F: Wie verwende ich Amazon Elastic MapReduce?
-
Zur Anmeldung bei Amazon Elastic MapReduce klicken Sie auf die Schaltfläche "Für diesen Web-Service anmelden" auf der Amazon Elastic MapReduce Detailseite http://aws.amazon.com/elasticmapreduce. Für den Zugriff auf Amazon Elastic MapReduce müssen Sie bei EC2 und Amazon S3 angemeldet sein. Ansonsten werden Sie während des Anmeldeprozesses bei Amazon Elastic MapReduce um eine Anmeldung gebeten. In der Amazon Elastic MapReduce-Dokumentation erhalten Sie mit dem Handbuch "Erste Schritte" eine erste Einführung in MapReduce.
-
F: Wie breche ich einen Auftragsablauf ab?
-
Sie können einen Auftragsablauf jederzeit über die AWS Management Console beenden, indem sie auf den entsprechenden Auftragsablauf und anschließend auf die Schaltfläche "Abbrechen" klicken. Alternativ können Sie die "TerminateJobFlows"-API verwenden. Wenn Sie einen derzeit ausgeführten Auftragsablauf abbrechen, gehen alle Ergebnisse, die nicht in Amazon S3 bestehen, verloren und alle Amazon EC2 Instances werden beendet.
-
F: Unterstützt Amazon Elastic MapReduce mehrere Auftragsabläufe gleichzeitig?
-
Ja. Sie können jederzeit einen neuen Auftragsablauf beginnen, auch wenn bereits ein oder mehrere Auftragsabläufe ausgeführt werden.
-
F: Wie viele Auftragsabläufe kann ich gleichzeitig ausführen?
-
Sie können beliebig viele Auftragsabläufe ausführen. Die Anzahl der Instanzen ist auf insgesamt 20 beschränkt. Falls Sie weitere Instanzen benötigen, füllen Sie bitte das Antragsformular für Amazon EC2 Instances aus. Ihr Fall und die Instanz-Aufstockung werden dann erwogen. Wenn Ihr Amazon-EC2-Limit bereits erhöht wurde, wird das neue Limit bei Ihren Auftragsabläufen von Amazon Elastic MapReduce berücksichtigt.
Entwicklung
-
F: Gibt es Beispiele für Auftragsabläufe?
-
Im Entwicklerhandbuch zu Amazon Elastic MapReduce finden Sie zwei Beispiele für Auftragsabläufe. Weitere Beispiele werden im Ressourcenzentrum zur Verfügung gestellt.
-
F: Wie entwickle ich eine Anwendung zur Datenverarbeitung?
-
Sie können einen Datenverarbeitungsauftrag auf Ihrem Desktop entwickeln, indem Sie beispielsweise Eclipse– oder NetBeans-Plugins wie IBM MapReduce Tools for Eclipse (http://www.alphaworks.ibm.com/tech/mapreducetools) oder Karmasphere Studio (http://www.karmasphere.com) 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 Auftragsablauf unter Einsatz von einer oder mehreren Instanzen direkt auf Amazon Elastic MapReduce 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, programmatisch den Durchführungsprozess von Auftragsabläufen zu starten und zu überwachen, zusätzliche maßgeschneiderte Funktionen für Auftragsabläufe zu erstellen (z. B. Sequenzen mit mehreren Verarbeitungsschritten, Planung, Auftragsabläufe oder Überwachung) oder wertvolle Tools und Anwendungen für andere Amazon Elastic MapReduce-Benutzer zu entwickeln. Die AWS Management Console hingegen bietet eine benutzerfreundliche grafische Oberfläche, mit der Ihre Auftragsabläufe direkt von einem Web-Browser aus gestartet und überwacht werden können.
-
F: Kann ich zu einem bereits ausgeführten Auftragsablauf zusätzliche 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 Auftragsablauf oder für Debug-Vorgänge zu implementieren.
-
F: Kann ich einen permanenten Auftragsablauf ausführen?
-
Ja. Auftragsabläufe von Amazon Elastic MapReduce, die mit der Flag "alive" gestartet wurden, werden fortgesetzt, bis sie ausdrücklich beendet werden. Dies erlaubt es Kunden nach Bedarf Schritte zu einem Auftragsablauf hinzuzufügen. Sie können diese Möglichkeit zum Debuggen der Logik Ihres Auftragsablaufs nutzen, ohne wiederholt auf den Start des Auftragsablaufs warten zu müssen. Der permanente Auftragsablauf bietet sich ebenfalls an, um umfangreiche Data-Warehouse-Cluster auszuführen. Dies kann mit Data-Warehouse-Paketen und Paketen zur Analyse von Datensätzen, die auf Hadoop ausgeführt werden, beispielsweise Hive und Pig, kombiniert werden.
-
F: Werde ich benachrichtigt, wenn mein Auftragsablauf beendet ist?
-
Nein, derzeit nicht. Sie können den Fortschritt Ihres Auftragsablaufs in der AWS Management Console einsehen oder die "DescribeJobFlows"-API abrufen, um den Status Ihres Auftragsablaufs zu ermitteln.
-
F: Welche Programmiersprachen unterstützt Amazon Elastic MapReduce?
-
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 Betriebssysteme und Versionen unterstützt Amazon Elastic MapReduce?
-
Derzeit unterstützt Amazon Elastic MapReduce Debian/Squeeze im 32– und 64-Bit-Modus.
-
F: Ist die Hadoop-Benutzeroberfläche während der Ausführung eines Auftragsablaufs 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 Elastic MapReduce Softwarepakete von anderen Herstellern?
-
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 Elastic MapReduce?
-
Amazon Elastic MapReduce unterstützt Hadoop 0.20.205 und Hadoop 1.0.3 mit kundenspezifischen Patches.
-
F: Kann ich Alternativen zu Hadoop verwenden?
-
Derzeit unterstützt Amazon Elastic MapReduce nur Hadoop 0.20.205 und Hadoop 1.0.3. Wir richten uns immer nach den Wünschen unserer Kunden und stellen zusätzliche Kapazitäten zur Verfügung, wenn die entsprechende Nachfrage besteht.
-
F: Stellt Amazon der Open-Source-Community Verbesserungen für Hadoop zur Verfügung?
-
Ja. Amazon Elastic MapReduce arbeitet aktiv mit der Open-Source-Community zusammen und stellt zahlreiche Patches für die Hadoop Source zur Verfügung.
-
F: Aktualisiert Amazon die von Elastic MapReduce unterstützte Hadoop-Version?
-
Amazon Elastic MapReduce aktualisiert regelmäßig seine unterstützte Version von Hadoop und richtet sich dabei nach Hadoop-Veröffentlichungen der Community. Dabei kann es vorkommen, dass einzelne Amazon Elastic MapReduce Hadoop-Versionen übersprungen werden.
-
F: Wie lange dauert es in der Regel, bis Amazon Elastic MapReduce ältere Versionen von Hadoop nicht mehr unterstützt?
-
Amazon Elastic MapReduce stellt die Unterstützung für ältere Hadoop-Versionen einige Monate nach der Aktualisierung ein. Amazon Elastic MapReduce APIs sind jedoch rückwirkend kompatibel. Wenn Tools auf der Basis dieser APIs entwickelt werden, sind diese auch dann funktionsfähig, wenn Amazon Elastic MapReduce die verwendete Hadoop-Version aktualisiert.
Debuggen
-
F: Wie kann ich meinen Auftragsablauf debuggen?
-
Klicken Sie zuerst auf den Auftragsablauf, den Sie debuggen möchten. Klicken Sie dann auf die Schaltfläche "Debug", um das Auftragsablauf-Debug-Fenster in der AWS Management Console zu öffnen. Hier können Sie die Fortschritte im Ablauf verfolgen und Probleme in den einzelnen Schritten, Aufgaben bzw. versuchten Aufgaben der Auftragsabläufe zu identifizieren. Alternativ können Sie über SSH direkt auf die Amazon Elastic Compute Cloud (Amazon EC2) Instanzen zugreifen, die die Auftragsabläufe ausführen und Ihren bevorzugten Befehlszeilen-Debugger zur Fehlerbehebung im Auftragsablauf einsetzen.
-
F: Was ist das Auftragsablauf-Debug-Fenster?
-
Das Auftragsablauf-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 Auftragsabläufe identifizieren können. Um Zugriff auf das Auftragsablauf-Debug-Fenster zu erhalten, klicken Sie zuerst auf den Auftragsablauf, den Sie debuggen möchten, und klicken Sie dann auf die Schaltfläche "Debug".
-
F: Wie kann ich Debugging für den Auftragsablauf aktivieren?
-
Um Debugging zu aktivieren, müssen Sie die Flag "Enable Debugging" setzen, wenn Sie einen Auftragsablauf in der AWS Management Console erstellen. Alternativ können Sie beim Erstellen eines Auftragsablaufs die Flags --enable-debugging und --log-uri im Befehlszeilen-Client setzen.
-
F: Wo kann ich Anweisungen zur Verwendung eines Auftragsablauf-Debug-Fensters finden?
-
Informationen zum Zugriff und zur Verwendung eines Auftragsablauf-Debug-Fensters finden Sie im Abschnitt AWS Management Console des Entwicklerleitfadens.
-
F: Welche Arten von Auftragsabläufen kann ich mit dem Auftragsablauf-Debug-Fenster debuggen?
-
Sie können alle Arten von Auftragsabläufen debuggen, die derzeit durch Amazon Elastic MapReduce unterstützt werden, einschließlich benutzerdefiniertes jar, streaming, Hive und Pig.
-
F: Warum muss ich mich für Amazon SimpleDB anmelden, um Auftragsabläufe zu debuggen?
-
Amazon Elastic MapReduce speichert Informationen über Hadoop Projekte, Aufgaben und versuchte Aufgaben unter Ihrem Konto in Amazon SimpleDB. Sie können Amazon SimpleDB hier abonnieren.
-
F: Kann ich die Funktion zum Debuggen von Auftragsabläufen ohne Amazon SimpleDB-Abonnement verwenden?
-
Sie können Auftragsablaufschritte und Schrittprotokolle durchsuchen, Sie können ohne Amazon SimpeDB-Abonnement jedoch keine Hadoop Projekte, Aufgaben und versuchte Aufgaben durchsuchen.
-
F: Kann ich historische Auftragsablaufdaten aus Amazon SimpleDB löschen?
-
Ja. Sie können Amazon SimpleDB Domänen löschen, die Amazon Elastic MapReduce für Sie erstellt hat. Anweisungen hierzu finden Sie in der Amazon SimpleDB Dokumentation.
Datenverwaltung
-
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 Auftragsabläufe?
-
Hadoop System– und Benutzerprotokolle werden in den Amazon S3-Bucket platziert, den Sie bei der Erstellung eines Auftragsablaufs festlegen.
-
F: Werden die Protokolle komprimiert?
-
Nein. Derzeit komprimiert Amazon Elastic MapReduce keine Protokolle, da diese nach 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 Elastic MapReduce bietet ebenfalls Hive-basierten Zugriff auf Daten in DynamoDB.
Fakturierung
-
F: Kann Amazon Elastic MapReduce ermitteln, wie lange es dauert, meine Eingabedaten zu verarbeiten?
-
Nein. Da Auftragsabläufe und Eingabedaten unterschiedlich sind, können wir die Auftragsdauer nicht schätzen.
-
F: Wie viel kostet Amazon Elastic MapReduce?
-
Amazon Elastic MapReduce ist in den Regionen USA, EU und im Wirtschaftsraum APAC verfügbar. 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 Elastic MapReduce wird zusätzlich zu Amazon EC2 und Amazon S3 abgerechnet.
Informationen über die Abrechnung von Amazon Elastic MapReduce erhalten Sie auf der Detailseite von Amazon Elastic MapReduce.
Die Gebühren für Amazon EC2, Amazon S3 und Amazon SimpleDB werden getrennt in Rechnung gestellt. Die Preise für Amazon Elastic MapReduce verstehen sich pro genutzter Instanzstunde je Instanztyp ab dem Verarbeitungsbeginn des Auftragsablaufs bis zu seiner Beendigung. Jede angefangene Instanz-Stunde wird als volle Stunde in Rechnung gestellt. Für weitere Informationen über Amazon EC2 Instance-Typen, Preise für Amazon EC2 Spot sowie Preise für Amazon EC2 Reserved Instances, Amazon S3 oder Amazon SimpleDB klicken Sie auf folgende Links:
Amazon-EC2-Instanztypen
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 meines Auftragsablaufs in Amazon Elastic MapReduce?
-
Die Fakturierung beginnt mit dem Starten des Auftragsablaufs in Amazon Elastic MapReduce. Ihnen werden nur die tatsächlich genutzten Ressourcen in Rechnung gestellt. Angenommen, Sie haben für einen Amazon Elastic MapReduce-Auftragsablauf 100 Amazon EC2 Standard Small Instances gestartet, wobei die Kosten von Amazon Elastic MapReduce jeweils 0,015 USD pro Stunde betragen. Die Amazon EC2 Instances werden sofort gebootet, sie werden jedoch nicht unbedingt alle im selben Moment gestartet. Amazon Elastic MapReduce hält die Startzeit der einzelnen Instances fest und bindet sie in das Cluster ein, damit sie die Verarbeitung von Aufgaben annehmen können.
In den ersten zehn Minuten nach Ihrer Startanforderung startet Amazon Elastic MapReduce entweder den Auftragsablauf (wenn alle Instances verfügbar sind) oder bindet so viele Instances wie möglich ein. Wenn die zehn Minuten verstrichen und 90 % der angeforderten Instances verfügbar sind, beginnt Amazon Elastic MapReduce mit der Verarbeitung Ihres Auftragsablaufs (und mit der Gebührenerhebung). Wenn die restlichen 10 % der angeforderten Instances eingebunden werden, beginnt Amazon Elastic MapReduce auch mit der Gebührenerhebung für diese Instances.
Wenn also alle der angeforderten 100 Instances zehn Minuten nach Abgabe der Startanforderung verfügbar sind, werden Ihnen 1,50 USD pro Stunde (100 * 0,015 USD) berechnet, bis der Auftragsablauf abgeschlossen ist. Wenn nur 90 der angeforderten Instances nach den zehn Minuten verfügbar sind, werden Ihnen so lange 1,35 USD pro Stunde (90 * 0,015 USD) berechnet, wie dies die Anzahl der Instances ist, auf denen Ihr Auftragsablauf ausgeführt wird. Wenn die verbleibenden zehn Instanzen eingebunden sind, werden Ihnen so lange 1,50 USD pro Stunde (100 * 0,015 USD) berechnet, wie diese Instanzen benötigen, um den Auftragsablauf abzuschließen.
Jeder Auftragsablauf wird so lange ausgeführt, bis eines der folgenden Ereignisse eintritt: Sie beenden den Auftragsablauf mit dem API-Aufruf TerminateJobFlows (oder einem ähnlichen Tool), der Auftragsablauf fährt selbst herunter oder der Auftragsablauf 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 Elastic MapReduce, Amazon EC2 und Amazon S3 abfragen?
-
Informationen zu Ihren Nutzungsdaten erhalten Sie auf Ihrer Seite zur AWS-Kontoaktivität.
-
F: Kann ich ermitteln, wie viele Instanzstunden einzelne Auftragsabläufe benötigt haben?
-
Ja. In der AWS Management Console verfügt jeder Auftrag über eine Spalte mit der ungefähren Angabe der bisher im Auftragsablauf 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. Auf der Seite zur AWS-Kontoaktiviät erhalten Sie weitere Informationen zur Fakturierung für die Nutzung von Amazon Elastic MapReduce.
-
F: Unterstützt Amazon Elastic MapReduce On-Demand, Spot und Reserved Instances von Amazon EC2?
-
Ja. Amazon Elastic MapReduce unterstützt 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.
Sicherheit
-
F: Wie verhindere ich, dass andere Nutzer meine Daten während der Auftragsausführung einsehen können?
-
Amazon Elastic MapReduce startet Ihre Instanzen in zwei Amazon EC2 Security Groups, 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 Elastic MapReduce-Kunden können das HTTPS-Protokoll für eine sichere Datenübertragung nutzen. Amazon Elastic MapReduce nutzt zudem HTTPS, um Daten zwischen Amazon S3 und Amazon EC2 zu senden. 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 Auftragsablaufs ein Verschlüsselungsschritt eingefügt werden, wenn Amazon Elastic MapReduce die Daten von Amazon S3 abruft.
Regionen und Availability Zones
-
F: Wie verwendet Amazon Elastic MapReduce Availability Zones?
-
Amazon Elastic MapReduce startet alle Knoten für ein bestimmtes Cluster in derselben Amazon EC2 Availability Zone. Die Ausführung eines Clusters in derselben Zone verbessert die Leistung von Auftragsabläufen, da somit eine höhere Zugriffsrate ermöglicht wird. Standardmäßig wählt Amazon Elastic MapReduce die Availability Zone mit den meisten verfügbaren Ressourcen zur Ausführung Ihres Auftragsablaufs aus. Sie können jedoch bei Bedarf eine andere Availability Zone festlegen.
-
F: In welchen Regionen ist diese Dienstleistung verfügbar?
-
Amazon Elastic MapReduce ist in den folgenden Regionen verfügbar: USA Ost (Nord-Virginia), USA West (Oregon), USA West (Nordkalifornien), EU (Irland), 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 Auftragsabläufe auszuführen?
-
Bei der Erstellung eines Auftragsablaufs ist es in der Regel erforderlich, die Region auszuwählen, in der sich Ihre Daten befinden.
-
F: Kann ich für einen Auftragsablauf, der in der US-Region ausgeführt wird, EU-Daten verwenden 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: Worin unterscheidet sich die 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.
Cluster-Verwaltung
-
F: Wie werden Amazon EC2 und Amazon S3 von Amazon Elastic MapReduce verwendet?
-
Der Kunde lädt seine Eingabedaten sowie eine Datenverarbeitungsanwendung in Amazon S3 hoch. Amazon Elastic MapReduce startet mehrere Amazon EC2-Instanzen, wie vom Kunden festgelegt. Der Dienst beginnt mit der Ausführung des Auftragsablaufs. Die Eingabedaten von Amazon S3 werden mit dem S3N-Protokoll in die geöffneten Amazon EC2 Instances übertragen. Nach Abschluss des Auftragsablaufs überträgt Amazon Elastic MapReduce die Ausgabedaten an Amazon S3. Dort kann der Kunde diese abrufen oder als Eingabe für einen anderen Auftragsablauf verwenden.
-
F: Wie werden in Amazon Elastic MapReduce Berechnungen durchgeführt?
-
Amazon Elastic MapReduce verwendet den Hadoop-Datenverarbeitungs-Engine 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 Elastic MapReduce führt auf diesen Instanzen 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 Auftragsablauf kann eine Reihe dieser MapReduce-Schritte enthalten.
-
F: Wie zuverlässig ist Amazon Elastic MapReduce?
-
Amazon Elastic MapReduce verwaltet ein Amazon-EC2-Cluster mit Recheninstanzen unter Verwendung der hochverfügbaren und erprobten Netzwerkinfrastruktur und Rechenzentren von Amazon. Amazon Elastic MapReduce verwendet bewährte, fehlerresistente 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 Auftragsablauf startbereit ist und Eingabedaten verarbeiten kann?
-
Amazon Elastic MapReduce beginnt fast sofort mit der Ressourcen-Bereitstellung von Amazon EC2 On-Demand Instances. Sind die Instanzen nicht verfügbar, versucht Amazon Elastic MapReduce, die Ressourcen für Ihren Auftragsablauf weiterhin bereitzustellen, bis diese bereit sind oder bis Sie Ihre Anfrage abbrechen. Die Bereitstellung der Instanzen erfolgt auf bestmöglicher Basis und ist abhängig von der Anzahl der verlangten Instanzen, dem Zeitpunkt der Auftragsablauf-Erstellung sowie der Gesamtzahl der Anfragen im System. Nach der Ressourcen-Bereitstellung beginnt die Verarbeitung normalerweise innerhalb von 15 Minuten.
Zur Gewährleistung der Kapazitäten für Ihre Auftragsabläufe zum benötigten Zeitpunkt können Sie mit der Zahlung einer einmaligen Gebühr für Amazon EC2 Reserved Instance die gewünschten Instanzkapazitäten reservieren, die Ihnen dann zu einem ermäßigten Preis 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 Instanztypen von Amazon EC2 unterstützt Amazon Elastic MapReduce?
-
Amazon Elastic MapReduce unterstützt 12 EC2-Instance-Typen, z. B. Standard, High CPU, High Memory, Cluster Compute, and 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 den EMR-Preisen finden Sie Details zu den verfügbaren Instance-Typen und Preisen der jeweiligen Region.
-
F: Wie wähle ich den richtigen Amazon EC2 Instance-Typ aus?
-
Bei der Auswahl Ihrer Instance-Typen sollten Sie die Eigenschaften Ihrer Anwendung im Hinblick auf die Ressourcenauslastung beachten. Einer der Vorteile von Amazon Elastic MapReduce mit Amazon EC2 liegt darin, dass Sie nur für das bezahlen, was Sie tatsächlich nutzen. So können Sie ganz einfach und kostensparend selber testen, wie Ihre Anwendung auf verschiedenen Instanzvarianten läuft. Ein effektiver Weg zur Ermittlung des passenden Instanztyps ist das Öffnen verschiedener kleiner Cluster und die Durchführung eines Benchmark-Tests mit Ihrem Auftragsablauf.
-
F: Wie wähle ich die richtige Anzahl an Instanzen für meinen Auftragsablauf aus?
-
Die Anzahl der Instanzen für Ihren Auftragsablauf hängt von der Anwendung ab. Die Entscheidung, wie viele Instanzen 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 Auftragsablauf zahlreiche Zwischendaten generiert oder beträchtliche E/A-Anforderungen hat. Vielleicht möchten Sie ebenfalls zusätzliche Auftragsknoten einbeziehen, um die Verarbeitungsleistung zu verbessern. Unter Amazon EC2 Instances-Typen erfahren Sie mehr über die lokale Instanzenspeicherung für jede Instanztypkonfiguration.
-
F: Wie lange dauert die Ausführung meines Auftragsablaufs?
-
Dies ist abhängig von verschiedenen Faktoren: Typ des Auftragsablaufs, Menge der Eingabedaten sowie Anzahl und Typ der für den Auftragsablauf gewählten Amazon EC2-Instanzen.
-
F: Kann ein während des Auftragsablaufs ausgefallener Master-Knoten von Amazon Elastic MapReduce wiederhergestellt werden?
-
Nein. Wenn der Master-Knoten ausfällt, wird Ihr Auftragsablauf beendet, und der Auftrag muss neu gestartet werden. Amazon Elastic MapReduce unterstützt derzeit keine automatische Ausfallsicherung oder Wiederherstellungsfunktion für die Master-Knoten. Bei einem Ausfall des Master-Knotens zeigt die AWS Management Console folgende Meldung an: "Der Master-Knoten wurde beendet". Sie müssen dann einen neuen Auftragsablauf starten. Für die Auftragsabläufe können jedoch Kontrollpunkte genutzt werden, um Zwischendaten (während eines noch nicht abgeschlossenen Auftragsablaufs erstellte Daten) auf Amazon S3 zu sichern. Bei einem Ausfall können Sie so den Auftragsablauf ab dem letzten Kontrollpunkt wiederaufnehmen.
-
F: Kann ein während des Auftragsablaufs ausgefallener Slave-Knoten von Amazon Elastic MapReduce wiederhergestellt werden?
-
Ja. Amazon Elastic MapReduce ist bei Slave-Ausfällen fehlertolerant. Der Auftrag wird bei Ausfall eines Slave-Knotens weiter ausgeführt. In der aktuellen Version stellt Amazon Elastic MapReduce 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 für Ihre Cluster-Knoten SSH anwenden und direkt von dort aus Hadoop-Befehle ausführen. Wenn Sie SSH für einen Slave-Knoten anwenden möchten, muss zunächst eine SSH-Verbindung für den Master-Knoten erstellt werden. Anschließend kann SSH für den Slave-Knoten angewendet werden.
-
F: Kann ich Microsoft Windows-Instanzen mit Amazon Elastic MapReduce anwenden?
-
Derzeit unterstützt Amazon Elastic MapReduce Debian/Lenny im 32– und 64-Bit-Modus. Wir erweitern nach und nach unsere Kapazitäten, damit unsere Kunden ihre Datenverarbeitungsprobleme schnell und effektiv lösen können.
-
F: Worum handelt es sich bei Amazon Elastic MapReduce Bootstrap Actions?
-
Bootstrap Actions sind eine Funktion in Amazon Elastic MapReduce, die den Nutzern die Ausführung kundenspezifischer Setups vor der Ausführung ihres Arbeitsauftrags ermöglicht. Bootstrap Actions können verwendet werden, um Software zu installieren oder Instanzen zu konfigurieren, bevor der Arbeitsauftrag ausgeführt wird.
-
F: Wie kann ich Bootstrap Actions verwenden?
-
Sie können ein Bootstrap Action-Script in einer Sprache schreiben, die bereits auf der Auftragsablaufinstanz installiert ist, z. B. Bash, Perl, Python, Ruby, C++ oder Java. Mehrere vordefinierte Bootstrap Actions sind verfügbar. Nachdem das Script geschrieben wurde, müssen Sie es zu Amazon S3 hochladen und auf seinen Speicherort verweisen, wenn Sie einen Auftragsablauf starten. Nähere Informationen zur Verwendung von Bootstrap Actions finden Sie im "Handbuch für Entwickler": http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/.
-
F: Wie kann ich Hadoop-Einstellungen für meinen Auftragsablauf konfigurieren?
-
Die Standard-Hadoop-Konfiguration von Elastic MapReduce ist für die meisten Arbeitslasten angemessen. Jedoch kann es angesichts der spezifischen Arbeitsspeicher– und Verarbeitungsanforderungen Ihres Auftragsablaufs angebracht sein, diese Einstellungen zu verändern. Wenn Ihre Auftragsabläufe beispielsweise arbeitsspeicherintensiv sind, können Sie sich dazu entschließen, weniger Aufgaben pro Kern zu nutzen und die Heapgröße des Auftrag-Trackers zu verringern. Für diesen Fall steht eine vordefinierte Bootstrap Action zur Konfiguration Ihres Arbeitsablaufs 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 während eines Auftragsablaufs ändern?"
-
Ja. Zwei Typen von Slave-Knoten sind möglich: (1) Kernknoten, die sowohl persistente Daten im Hadoop Distribute File System (DHFS) hosten als auch Hadoop-Aufgaben ausführen, und (2) Auftragsknoten, die nur Hadoop-Aufgaben ausführen. Während eines Auftragsablaufs können Sie die Anzahl der Kernknoten erhöhen oder Anzahl von Auftragsknoten verringern. Dies kann über das API, Java SDK, oder über den Befehlzeilen-Client durchgeführt werden. Nähere Informationen zum Ändern der Größe eines ausgeführten Auftragsablaufs erhalten Sie im Abschnitt Ändern der Größe ausgeführter Auftragsabläufe im Leitfaden für Entwickler.
-
F: Wann würde ich Kernknoten anstelle von Aufgabenknoten verwenden?
-
Da Core-Knoten persistente Daten in HDFS hosten und nicht entfernt werden können, sollten Core-Knoten für die Kapazität reserviert werden, die bis zum Abschluss des Auftragsablauf 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 während eines Auftragsablaufs ändern wollen?
-
Es gibt einige Szenarien für das Ändern der Anzahl von Slave-Knoten während eines Auftragsablaufs. Wenn ein Auftragsablauf langsamer als erwartet abläuft oder sich die zeitlichen Anforderungen ändern, können Sie die Anzahl von Kernknoten erhöhen, um die Auftragsablaufleistung zu erhöhen. Wenn einzelne Phasen des Auftragsablaufs unterschiedliche Kapazitätserfordernisse haben, können Sie mit einer geringen Anzahl von Kernknoten beginnen und die Anzahl von Aufgabenknoten den wechselnden Anforderungen der Auftragsablaufkapazität entsprechend erhöhen oder verringern.
-
F: Kann ich die Anzahl von Slave-Knoten zwischen den Schritten eines Auftragsablaufs automatisch anpassen?
-
Ja. Der Auftragsablauf kann einen vordefinierten Schritt enthalten, der die Auftragsablaufgröße zwischen Schritten, die bekannterweise 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 Auftragsablaufs ausführen.
-
F: Wie kann ich anderen IAM-Benutzern erlauben, auf meinen Auftragsablauf zuzugreifen?
-
So können Sie einen neuen Auftragsablauf erstellen, der allen IAM-Benutzern an der EMR-Befehlszeilen-Schnittstelle angezeigt wird: Fügen Sie beim Erstellen des Auftragsablaufs das Kennzeichen "--visible-to-all-users" hinzu. Beispiel: elastic-mapreduce –-create –-visible-to-all-users. Wählen Sie in der Management Console im Create Job Flow Wizard im Bereich "Advanced Options" die Option "Visible to all IAM Users" aus.
Damit ein vorhandener Auftragsablauf allen IAM-Benutzern angezeigt wird, müssen Sie die EMR-Befehlszeilen-Schnittstelle verwenden. Verwenden Sie --set-visible-to-all-users , und geben Sie die Auftragsablauf-ID an. Beispiel: elastic-mapreduce –-set-visible-to-all-users true –-jobflow j-xxxxxxx. Dies ist nur dem Ersteller des Auftragsablauf möglich.
Weitere Informationen finden Sie im Abschnitt Configuring User Permissions des EMR Developer Guide.
Die Verwendung von Hive
-
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 Hive in Amazon Elastic MapReduce?
-
Bei Verwendung von Hive zusammen mit Amazon Elastic MapReduce können Sie anspruchsvolle Datenverarbeitungsanwendungen mit einer bekannten, SQL-ähnlichen Sprache und benutzerfreundlichen Tools implementieren, die mit Amazon Elastic MapReduce verfügbar sind. Mit Amazon Elastic MapReduce können Sie außerdem Ihre Hive-Anwendungen in ein zuverlässiges Data-Warehouse verwandeln, mit dem Aufgaben wie Datenanalyse und Überwachung sowie unternehmensinterne Informationsdienste durchgeführt werden 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 Anfragen 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 Elastic MapReduce-Auftragsabläufe in Kombination mit Hive durchgeführt werden.
-
F: Welche ersten Schritte sind für die Benutzung von Hive in Amazon Elastic MapReduce notwendig?
-
Unter http://developer.amazonwebservices.com/connect/entry.jspa?externalID=2862 finden Sie sowohl eine schriftliche als auch eine Video-Anleitung, die Ihnen einen einfachen Einstieg ermöglichen.
-
F: Verfügt Hive über neue Funktionen speziell für Amazon Elastic MapReduce?
-
Ja. Es gibt vier neue Funktionen, durch die Hive in Kombination mit Amazon Elastic MapReduce jetzt noch leistungsfähiger ist:
a/ Automatisches Laden von Tabellen-Partitionen von Amazon S3. Zuvor wurde beim Import einer partitionierten Tabelle für jede einzelne Partition eine separate "Alter Table"-Anweisung benötigt. Amazon Elastic MapReduce 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 Auftragsabläufe gleichzeitig, ohne dass ein gemeinsam benutzter 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 Instanzen. Standardmäßig befindet sich der Metadatenspeicher, in dem Hive seine Schema-Informationen speichert, auf dem Master-Knoten. Er wird beim Abschließen des Auftragsablaufs gelöscht. Mit dieser Funktion können Sie den Speicherort des Metadatenspeichers selbst festlegen, beispielsweise in einer bereits in EC2 ausgeführten MySQL-Instanz.
c/ Direktes Schreiben von Daten in Amazon S3. Beim Schreiben von Daten in Tabellen speichert die in Amazon Elastic MapReduce 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-Dateiensystem des Auftragsablaufs 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 Elastic MapReduce installierten Hive-Version können Sie innerhalb Ihres Hive-Skripts direkt auf Ressourcen wie Skripte zum Anpassen von Map– and Reduce-Operationen oder zusätzliche Bibliotheken in Amazon S3 zurückgreifen (Beispiel: Hinzufügen von Jar s3://elasticmapreduce/samples/hive-ads/libs/jsonserde.jar).
-
F: Welche Arten von Hive-Auftragsabläufen werden unterstützt?
-
Hive unterstützt zwei Arten von Auftragsabläufen: Interaktiv und Batch. Im interaktiven Modus können direkt auf dem Master-Knoten Auftragsabläufe begonnen und Hive-Skripte interaktiv ausgeführt werden. 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 Auftragsablaufs aufgerufen. Der Stapelmodus wird normalerweise für sich wiederholende Prozesse wie beispielsweise die Berichterstellung genutzt.
-
F: Wie starte ich einen Hive-Auftragsablauf?
-
Sowohl Batch– als auch interaktive Auftragsabläufe können über die AWS Management Console, den Befehlszeilen-Client von Elastic MapReduce und über APIs gestartet werden. Nähere Informationen zum Starten eines Hive-Auftragsablaufs finden Sie im Abschnitt Die Verwendung von 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 Elastic MapReduce-Auftragsabläufe lediglich auf die für die Anfrage relevante Partition zugreifen können und keinen vollständigen Tabellen-Scan durchführen müssen. Sowohl PIG als auch Hive bieten Anfrageplan-Optimierung. PIG kann über das gesamte Skript hinweg optimieren, während Hive-Anfragen 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 Anfragensteller abhängig.
-
F: Welche Hive-Version unterstützt Amazon Elastic MapReduce?
-
Amazon Elastic MapReduce unterstützt die Hive-Versionen 0.7.1 und 0.8.1.
-
F: Kann ich gleichzeitig von zwei Auftragsabläufen 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: Kann ich Daten zwischen Auftragsabläufen teilen?
-
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 Auftragsablauf ausführen, der von mehreren Nutzern gemeinsam benutzt wird, oder besser mehrere kleinere Auftragsabläufe?
-
Amazon Elastic MapReduce bietet Ihnen die einzigartige Möglichkeit, beide Methoden einzusetzen. Zur Verarbeitung normaler Batch-Arbeitslasten ist ein einzelner, großer Auftragsablauf wahrscheinlich effizienter. Bei Ad-hoc-Abfragen oder variierenden Arbeitslasten können Sie jedoch auch mehrere separate Auftragsabläufe 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. Um Zugriff zu erhalten, müssen Sie das Skript oder die Jar-Ressource vorher in Amazon S3 oder in den Master-Knoten des Auftragsablaufs hochladen. Zum Hochladen in Amazon S3 können Sie Tools wie s3cmd, jets3t oder S3Organizer verwenden.
-
F: Kann ich einen permanenten Auftragsablauf mit mehreren Hive-Abfragen ausführen?
-
Ja. Wählen Sie für Ihren Auftragsablauf 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 abzuspeichern. Des Weiteren sollten Sie Ihre Daten regelmäßig in einen neuen Auftragsablauf übertragen, um im Falle eines Master-Knoten-Ausfalls eine Wiederherstellung zu gewährleisten.
-
F: Können mehrere Nutzer Hive-Schritte mit denselben Quelldaten ausführen?
-
Ja. Von mehreren Nutzern in verschiedenen Auftragsabläufen ausgeführte Hive-Skripte können "Create External Table"-Anweisungen enthalten, um Quelldaten gleichzeitig aus Amazon S3 importieren zu können.
-
F: Können mehrere Nutzer Anfragen im selben Auftragsablauf ausführen?
-
Ja. Im Batch-Modus werden Schritte serialisiert. Mehrere Nutzer können demselben Auftragsablauf Hive-Schritte hinzufügen, allerdings werden diese Schritte seriell ausgeführt. Im interaktiven Modus können mehrere Nutzer in demselben Auftragsablauf angemeldet sein und gleichzeitig Hive-Anweisungen durchfü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 Auftragsablauf durch Eingabe eines optionalen Parameters in den Befehlszeilen-Client von Amazon Elastic MapReduce gestartet. Da die Security Group keine externen Verbindungen zulässt, muss ein SSH-Tunnel aufgebaut werden.
-
F: Wie werden Pakete in Elastic MapReduce 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 in Elastic MapReduce Auftragsabläufen 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.
Die Verwendung von Pig
-
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 Pig in Amazon Elastic MapReduce?
-
Bei Verwendung von Pig zusammen mit Amazon Elastic MapReduce können Sie anspruchsvolle Datenverarbeitungsanwendungen mit einer bekannten, SQL-ähnlichen Sprache und benutzerfreundlichen Tools implementieren. Mit Amazon Elastic MapReduce können Sie außerdem Ihre Pig-Anwendungen in ein zuverlässiges Data-Warehouse verwandeln, mit dem Aufgaben wie Datenanalyse und Überwachung sowie unternehmensinterne Informationsdienste durchgeführt werden können.
-
F: Welche ersten Schritte sind für die Benutzung von Pig in Amazon Elastic MapReduce notwendig?
-
Unter http://developer.amazonwebservices.com/connect/entry.jspa?externalID=2735&categoryID=269 finden Sie sowohl eine schriftliche als auch eine Video-Anleitung, die Ihnen einen einfachen Einstieg ermöglichen.
-
F: Verfügt Pig über neue Funktionen speziell für Amazon Elastic MapReduce?
-
Ja. Es gibt drei neue Funktionen, durch die Pig in Kombination mit Amazon Elastic MapReduce 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 Elastic MapReduce 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 Elastic MapReduce erweitert, sodass benutzerdefinierte JAR-Dateien und Skripte 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 Arten von Pig-Auftragsabläufen werden unterstützt?
-
Pig unterstützt zwei Arten von Auftragsabläufen: Interaktiv und Batch. Im interaktiven Modus können direkt auf dem Master-Knoten Auftragsabläufe begonnen und Pig-Skripte interaktiv ausgeführt werden. 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 Auftragsablaufs aufgerufen. Der Batch-Modus wird normalerweise für wiederholte Prozesse wie beispielsweise Berichterstellungen genutzt.
-
F: Wie starte ich einen Pig-Auftragsablauf?
-
Sowohl Batch– als auch interaktive Auftragsabläufe können über die AWS Management Console, den Befehlszeilen-Client von Elastic MapReduce und über APIs gestartet werden.
-
F: Welche Pig-Version unterstützt Amazon Elastic MapReduce?
-
Amazon Elastic MapReduce unterstützt Pig-Version 0.6 und Pig-Version 0.9.1.
-
F: Kann ich gleichzeitig von zwei Auftragsabläufen in einen S3-Bucket schreiben?
-
Ja, Sie können gleichzeitig von zwei Auftragsabläufen in einen Bucket schreiben.
-
F: Kann ich Eingabedaten in S3 zwischen Auftragsabläufen teilen?
-
Ja, Sie können dieselben Daten in S3 von zwei Auftragsabläufen 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 Auftragsablauf ausführen, der von mehreren Nutzern gemeinsam benutzt wird, oder besser mehrere kleinere Auftragsabläufe?
-
Amazon Elastic MapReduce bietet Ihnen die einzigartige Möglichkeit, beide Methoden einzusetzen. Zur Verarbeitung normaler Batch-Arbeitslasten ist ein einzelner, großer Auftragsablauf wahrscheinlich effizienter. Bei Ad-hoc-Abfragen oder variierenden Arbeitslasten können Sie jedoch auch mehrere separate Auftragsabläufe 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. Um Zugriff zu erhalten, müssen Sie das Skript oder die Jar-Ressource vorher in Amazon S3 oder in den Master-Knoten des Auftragsablaufs hochladen. Zum Hochladen in Amazon S3 können Sie Tools wie s3cmd, jets3t oder S3Organizer verwenden.
-
F: Kann ich einen permanenten Auftragsablauf mit mehreren Pig-Abfragen ausführen?
-
Ja. Wählen Sie für Ihren Auftragsablauf 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 abzuspeichern. Des Weiteren sollten Sie Ihre Daten regelmäßig in einen neuen Auftragsablauf übertragen, um im Falle eines Master-Knotenausfalls eine Wiederherstellung zu gewährleisten.
-
F: Unterstützt Pig den Zugriff von JDBC?
-
Nein. Pig unterstützt keinen Zugriff über JDBC.