/ / Hadoop seq-Verzeichnis mit Index-, Daten- und Bloom-Dateien - wie liest man? - Hadoop, HDFS

Hadoop seq-Verzeichnis mit Index-, Daten- und Bloom-Dateien - wie liest man? - hadoop, hdfs

Neu bei Hadoop ...Ich habe eine Reihe von HDFS-Verzeichnissen mit der Namenskonvention filename.seq. Jedes Verzeichnis enthält eine Index-, Daten- und Bloom-Datei. Diese haben binären Inhalt und scheinen SequenceFiles zu sein (SEQ startet den Header). Ich möchte die Struktur / das Schema kennen. Alles, was ich lese, bezieht sich auf das Lesen einer einzelnen Sequenzdatei, sodass ich nicht sicher bin, wie ich diese lesen soll oder wie sie erstellt wurden. Danke.

Update: Ich habe empfohlene Tools zum Streamen und Ausgeben von Text in den Dateien ausprobiert, keines hat funktioniert:

hadoop fs -text /path/to/hdfs-filename.seq/data | head

hadoop jar /usr/lib/hadoop-0.20-mapreduce/contrib/streaming/hadoop-streaming-2.0.0-mr1-cdh4.1.2.jar 
-input /path/to/hdfs-filename.seq/data 
-output /tmp/outputfile 
-mapper "/bin/cat" 
-reducer "/bin/wc -l" 
-inputformat SequenceFileAsTextInputFormat

Fehler war:

ERROR streaming.StreamJob: Job not successful. Error: NA

Antworten:

1 für die Antwort № 1

Der SEQ-Header bestätigt diese Hadoop-Sequenzdatei. (Eine Sache, die ich noch nie gesehen habe, ist die von Ihnen erwähnte Bloom-Datei.)

Die Struktur / das Schema einer typischen Sequenzdatei ist:

  • Header (Version, Schlüsselklasse, Wertklasse, Komprimierung, Komprimierungscode, Metadaten)
  • Aufzeichnung
  • Aufzeichnungslänge
  • Schlüssellänge
  • Schlüsselwert
  • Ein Sync-Marker alle paar 100 Bytes oder so.

Für mehr Details:

  1. siehe die Beschreibung Hier.
  2. Sequence File Reader und Wie lese ich eine sequentielle Hadoop-Datei?