Arquivos de Sequência no Hadoop

Como esses arquivos de sequência são gerados? Eu vi um link sobre o arquivo de sequencia aqui,

http://wiki.apache.org/hadoop/SequenceFile 

Esses são escritos usando o serializador Java padrão? e como eu leio um arquivo de seqüência?

Os arquivos de sequência são gerados por tarefas MapReduce e podem ser usados ​​como formato comum para transferir dados entre tarefas MapReduce.

Você pode lê-los da seguinte maneira:

 Configuration config = new Configuration(); Path path = new Path(PATH_TO_YOUR_FILE); SequenceFile.Reader reader = new SequenceFile.Reader(FileSystem.get(config), path, config); WritableComparable key = (WritableComparable) reader.getKeyClass().newInstance(); Writable value = (Writable) reader.getValueClass().newInstance(); while (reader.next(key, value)) // perform some operating reader.close(); 

Além disso, você pode gerar arquivos de sequência usando o SequenceFile.Writer.

As classs usadas no exemplo são as seguintes:

 import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.SequenceFile; import org.apache.hadoop.io.Writable; import org.apache.hadoop.io.WritableComparable; 

E estão contidos dentro da dependência do maven do hadoop-core :

  org.apache.hadoop hadoop-core 1.2.1  

Graças à resposta de Lev Khomich, meu problema foi resolvido.

No entanto, a solução ficou obsoleta por um tempo e a nova API oferece mais resources e também é fácil de usar.

Confira o código fonte do hadoop.io.SequenceFile, clique aqui :

 Configuration config = new Configuration(); Path path = new Path("/Users/myuser/sequencefile"); SequenceFile.Reader reader = new Reader(config, Reader.file(path)); WritableComparable key = (WritableComparable) reader.getKeyClass() .newInstance(); Writable value = (Writable) reader.getValueClass().newInstance(); while (reader.next(key, value)) { System.out.println(key); System.out.println(value); System.out.println("------------------------"); } reader.close(); 

Informação extra, aqui está o exemplo de saída correndo contra o arquivo de dados gerado pelo Nutch / injector:

 ------------------------ https://wiki.openoffice.org/wiki/Ru/FAQ Version: 7 Status: 1 (db_unfetched) Fetch time: Sun Apr 13 16:12:59 MDT 2014 Modified time: Wed Dec 31 17:00:00 MST 1969 Retries since fetch: 0 Retry interval: 2592000 seconds (30 days) Score: 1.0 Signature: null Metadata: ------------------------ https://www.bankhapoalim.co.il/ Version: 7 Status: 1 (db_unfetched) Fetch time: Sun Apr 13 16:12:59 MDT 2014 Modified time: Wed Dec 31 17:00:00 MST 1969 Retries since fetch: 0 Retry interval: 2592000 seconds (30 days) Score: 1.0 Signature: null Metadata: 

Obrigado!