2016-05-31 7 views
0

Ich habe eine riesige 20-GB-CSV-Datei zum Kopieren in Hadoop/HDFS. Natürlich muss ich alle Fehlerfälle verwalten (wenn der Server oder die Transfer/Load-Anwendung abstürzt).Die beste Methode zum Importieren von 20-GB-CSV-Dateien nach Hadoop

In einem solchen Fall muss ich die Verarbeitung (in einem anderen Knoten oder nicht) neu starten und die Übertragung fortsetzen, ohne die CSV-Datei von Anfang an zu starten.

Was ist der beste und einfachste Weg, das zu tun?

Verwendung von Flume? Sqoop? eine native Java-Anwendung? Funke?

Vielen Dank.

+0

Warum verwenden Sie distcp nicht? Es sei denn, Sie möchten Daten als Stream während des Checkpointings lesen – eliasah

+0

Ursache meine Src-Datei (20 GB) ist nicht auf hadoopn ist WebHDFS für große Dateien geeignet? –

+0

Ich habe WebHDFS noch nie ausprobiert, aber ich glaube, dass Hadoop in der Lage ist, von lokalen zu hdfs in verteiltem Material mit distcp – eliasah

Antwort

1

Wenn die Datei nicht in HDFS gehostet wird, kann sie diese Datei nicht parallelisieren (dasselbe Problem mit Spark oder anderen Hadoop-basierten Frameworks). Können Sie Ihr HDFS auf NFS mounten und dann die Datei kopieren? Ein Vorteil des Lesens mit dem Kanal wäre, die Datei zu lesen und jede Zeile als einen separaten Datensatz zu veröffentlichen und diese Datensätze zu veröffentlichen und den Kanal einen Datensatz gleichzeitig in HDFS schreiben zu lassen. Wenn etwas schief geht, könnte man von diesem Datensatz ausgehen anstatt von Anfang an zu beginnen.

Verwandte Themen