2016-04-26 3 views
1

Grundsätzlich habe ich ein Programm, das Dateien auf das HDFS hochlädt. Die Dateien werden am Ende der Ausführung einer Aufgabe hochgeladen. Was passiert, ist, dass viele Aufgaben gleichzeitig (am Ende ihrer Ausführung) Dateien auf das HDFS hochladen, wodurch Konflikte entstehen. Die Dateigrößen sind kleiner als ein HDFS-Block (< 64 MB). Ich frage mich, ob es schneller wäre, einfach eine HDFS-Datei im Voraus zu erstellen (während die Task eine Verarbeitung durchführt, um Konflikte zu vermeiden) und dann nach Abschluss der Verarbeitung den Inhalt einer lokalen Datei in einer Zeichenfolge liest und einfach anfügt Diese Zeichenfolge an die HDFS-Datei, die bereits im Voraus erstellt wurde.Was ist schneller, wenn Sie eine Datei auf HDFS hochladen oder direkt eine HDFS-Datei erstellen und schreiben?

Also, im Grunde ist meine Frage, die mehr Aufwand hat, erstellen eine HDFS-Datei oder Anhängen einer Zeichenfolge an eine bereits erstellte HDFS-Datei?

+0

Ich würde es einfach versuchen und sehen. Ich glaube nicht, dass es so schwer wäre. –

+0

Stimmt, aber ich wollte nur ein paar Meinungen. – pythonic

+0

Bitte geben Sie weitere Informationen an. Was meinst du: "Wenn es schneller wäre, den Inhalt einer solchen Datei in einer Zeichenkette zu lesen, erstelle eine HDFS-Datei und schreibe diese Zeichenkette dann direkt in die HDFS-Datei". Wie unterscheidet es sich von "Ich habe ein Programm, das Dateien auf das HDFS hochlädt" –

Antwort

0

Ich habe das selbst getestet und festgestellt, dass das Erstellen einer HDFS-Datei fast die gleiche Zeit dauert wie das Anhängen. Dies setzt voraus, dass der geschriebene Inhalt kleiner als die HDFS-Blockgröße ist. Wenn Sie eine HDFS-Datei hochladen, entspricht das dem Erstellen der HDFS-Datei und dem Anhängen an sie. Es bedeutet also, dass es doppelt so lange dauert wie das Anhängen.

Verwandte Themen