Pergunta

Atualmente estou usando trabalhos de Hadoop MapReduce com SequenceFiles de Write. O mesmo tipo gravável é usado para a serialização também nas partes relacionadas ao sistema não hadoop do sistema.

Este método é difícil de manter - principalmente por causa da falta de esquema e a necessidade de manuseio manual de alterações de versão.

Parece que o Apache AVRO lida com essas questões.

O problema é que, durante a migração, terei dados em ambos os formatos. Existe uma maneira simples de lidar com a migração?

Foi útil?

Solução

Geralmente, não há nada que impeça você usando dados do AVRO e seqüência de forma intercalada. Use qualquer entrada é necessário para o tipo de dados que você precisa, e para a saída, é claro que faz sentido usar os formatos AVRO sempre que prática. Se a sua entrada estiver em formatos diferentes, dê uma olhada em Multipleinputs . Essencialmente, você ainda terá que implementar maphers separados, mas isso deve ser expectado, considerando a chave / valor de entrada do mapa é diferente.

Movendo-se para AVRO é um movimento sábio. Se você tiver a capacidade de tempo e hardware, pode até ser valioso para converter explicitamente seus dados do SequenceFile para Avro imediatamente. Você pode usar qualquer idioma suportado pela Avro, que também aconteça para suportar SequenceFiles para fazer isso. Java certamente faz (claramente), mas o porco também é bem útil para fazer isso.

O projeto de Piggybank contribuído pelo usuário tem funcionalidade para ler um seqüênciafile e, em seguida, é simplesmente uma questão de usar avrostorage do mesmo projeto piggybank com o esquema AVRO apropriado para obter o seu arquivo Avro.

Se apenas porco suportou o carregamento de esquemas AVRO do arquivo ..! Se você usar porco, infelizmente, você terá que formar scripts que contêm explicitamente o esquema Avro, que pode ser um pouco irritante.

Outras dicas

Eu não tentei isso sozinho, mas talvez usar o formato AvroSequenceFile ajudaria.É apenas um invólucro em torno de SequenceFile assim em teoria você deve ser capaz de gravar dados no seu formato antigo SequenceFile, bem como seu novo formato de Avro que deve facilitar a migração.

Aqui é Mais informações Sobre este formato.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top