2016-03-19 4 views
0

Ich bin neu in Hadoop und einige Tests auf lokalen Maschine.Hadoop: Gibt die Verwendung von CombineFileInputFormat für kleine Dateien eine Leistungsverbesserung?

Es gab viele Lösungen, um mit viele kleine Dateien umzugehen. Ich benutze CombinedInputFormat welche erweitert CombineFileInputFormat.

Ich sehe, dass die Anzahl der Mapper von 100 auf 25 mit CombinedInputFormat geändert haben. Sollte ich auch einen Leistungszuwachs erwarten, da sich die Anzahl der Mapper verringert hat?

ich die Karte-reduzieren durchgeführt haben Arbeit auf viele kleine Dateien ohneCombinedInputFormat: 100 Mapper dauerte 10 Minuten

Aber wenn die Karten reduzieren Job mitCombinedInputFormat ausgeführt wurde: 25 Mapper dauerte 33 Minuten.

Jede Hilfe wird geschätzt.

+0

Ich habe versucht, dieses Beispiel auf aws mit drei Knoten Cluster ausführen, aber keine Verbesserung in der Leistung in irgendeiner Weise gefunden. Mit insgesamt 1000 kleinen Dateien wurde die Anzahl der Mapper von 1000 auf 67 reduziert. – Astro

Antwort

0

Hadoop funktioniert besser mit einer kleinen Anzahl großer Dateien, im Gegensatz zu einer großen Anzahl kleiner Dateien. ("Klein" bedeutet hier deutlich kleiner als ein HDFS-Block). "Zahl" bedeutet, dass die Anzahl der 1000er-Werte überschritten wird.

Das bedeutet, wenn Sie eine Datei mit 1000 1MB Größe haben, erstellt der Map-reduce-Job basierend auf normal TextInputFormat 1000 Map-Aufgaben. Jede dieser Map-Aufgaben benötigt eine bestimmte Zeit zum Starten und Beenden. Diese Wartezeit bei der Aufgabenerstellung kann die Leistung des Jobs reduzieren

In einem Multi-Tenant-Cluster mit Ressourcenbeschränkung wird es auch schwierig, eine große Anzahl von Kartensteckplätzen zu erhalten.

Weitere Informationen und Benchmark-Ergebnisse finden Sie unter link.

Verwandte Themen