Hadoop HDFS: Leia os arquivos de sequência que estão sendo gravados

Eu estou usando o Hadoop 1.0.3.

Eu escrevo logs para um arquivo de sequência do Hadoop no HDFS, chamo syncFS () após cada grupo de logs, mas nunca fecho o arquivo (exceto quando estou executando a rolagem diária).

O que quero garantir é que o arquivo esteja disponível para os leitores enquanto o arquivo ainda estiver sendo gravado.

Eu posso ler os bytes do arquivo de seqüência via FSDataInputStream, mas se eu tentar usar SequenceFile.Reader.next (key, val), ele retorna false na primeira chamada.

Eu sei que os dados estão no arquivo, pois posso lê-lo com FSDataInputStream ou com o comando cat e tenho 100% de certeza de que syncFS () é chamado.

Eu verifiquei os logs namenode e datanode, sem erro ou aviso.

Por que o SequenceFile.Reader não consegue ler meu arquivo atualmente sendo gravado?

questionAnswers(4)

yourAnswerToTheQuestion