Anpassen der Mapper - Amazon-DynamoDB

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

Anpassen der Mapper

Wenn Hive einen Hadoop-Auftrag startet, wird dieser von einer oder mehreren Mapper-Aufgaben verarbeitet. Unter der Voraussetzung, dass Ihre DynamoDB-Tabelle über genügend Durchsatzkapazität verfügt, können Sie die Anzahl von Mappern im Cluster ändern und die Leistung so möglicherweise verbessern.

Anmerkung

Die Anzahl von Mapper-Aufgaben, die in einem Hadoop-Auftrag verwendet werden, wird von Input Splits beeinflusst, d. h. Hadoop teilt die Daten in logische Blöcke auf. Wenn Hadoop nicht genügend Input Splits vornimmt, können Ihre Schreibvorgänge möglicherweise nicht die gesamte Schreibdurchsatzkapazität der DynamoDB-Tabelle nutzen.

Erhöhen der Anzahl der Mapper

Jeder Mapper in einem Amazon EMR verfügt über eine maximale Leserate von 1 MiB pro Sekunde. Die Anzahl der Mapper in einem Cluster hängt von der Größe der Knoten in Ihrem Cluster ab. (Informationen über Knotengrößen und die Anzahl der Mapper pro Knoten finden Sie unter Aufgabenkonfiguration im Amazon EMR-Entwicklerhandbuch.)

Wenn Ihre DynamoDB-Tabelle über ausreichend Durchsatzkapazität für Lesevorgänge verfügt, können Sie versuchen, die Anzahl der Mapper erhöhen, indem Sie einen der folgenden Schritte ausführen:

  • Erhöhen Sie die Größe der Knoten in Ihrem Cluster. Wenn Ihr Cluster z. B. Knoten vom Typ m1.large (drei Mapper pro Knoten) verwendet, können Sie auf m1.xlarge-Knoten (acht Mapper pro Knoten) erhöhen.

  • Erhöhen Sie die Anzahl der Knoten in Ihrem Cluster. Wenn Sie z. B. über ein Drei-Knoten-Cluster mit m1.xlarge-Knoten verfügen, stehen insgesamt 24 Mapper zur Verfügung. Wenn Sie die Größe des Clusters mit demselben Knotentyp verdoppeln, erhalten Sie 48 Mapper.

Sie können den verwenden AWS Management Console , um die Größe oder Anzahl der Knoten in Ihrem Cluster zu verwalten. (Sie müssen den Cluster möglicherweise neu starten, damit diese Änderungen wirksam werden.)

Eine andere Möglichkeit, die Anzahl der Mapper zu erhöhen, besteht darin, den mapred.tasktracker.map.tasks.maximum Hadoop-Konfigurationsparameter zu ändern. (Dies ist ein Hadoop- und kein Hive-Parameter. Sie können ihn nicht interaktiv an der Eingabeaufforderung ändern.) Wenn Sie den Wert mapred.tasktracker.map.tasks.maximum erhöhen, steigern Sie die Anzahl der Mapper ohne die Größe oder Anzahl der Knoten zu ändern. Allerdings kann es passieren, dass der Speicherplatz der Cluster-Knoten nicht mehr ausreicht, wenn Sie den Wert zu hoch festlegen.

Sie legen den Wert für mapred.tasktracker.map.tasks.maximum als Bootstrap-Aktion fest, wenn Sie Ihren Amazon-EMR-Cluster das erste Mal starten. Weitere Informationen finden Sie unter (Optional) Erstellen von Bootstrap-Aktionen zum Installieren zusätzlicher Software im Management Guide für Amazon EMR.

Reduzieren der Anzahl der Mapper

Wenn Sie die SELECT-Anweisung verwenden, um Daten aus einer externen Hive-Tabelle auszuwählen, die DynamoDB zugeordnet ist, kann der Hadoop-Auftrag so viele Aufgaben nutzen wie erforderlich, und zwar bis zur maximalen Anzahl der Mapper im Cluster. In diesem Szenario ist es möglich, dass eine zeitaufwändige Hive-Abfrage die gesamte bereitgestellte Lesekapazität der DynamoDB-Tabelle nutzt, was negative Auswirkungen auf andere Benutzer hat.

Sie können den Parameter dynamodb.max.map.tasks nutzen, ob eine Obergrenze für Zuordnungsaufgaben festzulegen:

SET dynamodb.max.map.tasks=1

Dieser Wert muss gleich oder größer 1 sein. Wenn Hive Ihre Abfrage verarbeitet, verbraucht der entsprechende Hadoop-Auftrag beim Lesen aus der DynamoDB-Tabelle nicht mehr als dynamodb.max.map.tasks.