O que é o arquivo de sequência em hadoop?

sou novo para mapear-reduce e quero entender o que é sequência de dados de entrada? Estudei no Livro de Hadoop, mas foi difícil para mim entender.

Author: Soghra Gargari, 2015-12-12

1 answers

Primeiro devemos entender que problemas o SequenceFile tenta resolver, e então como pode SequenceFile ajudar a resolver os problemas.

Em HDFS

  • SequenceFile é uma das soluções para o pequeno problema de arquivo em Hadoop.
  • o ficheiro pequeno é significativamente menor do que o tamanho do bloco HDFS(128MB).
  • cada ficheiro, directório, bloco em HDFS é representado como objecto e ocupa 150 bytes.
  • 10 milhões de ficheiros, usariam cerca de 3 gigabytes de memória de NameNode.
  • Um bilião de ficheiros não é viável.

Em MapReduce

  • As tarefas de mapeamento geralmente processam um bloco de entrada de cada vez (usando o FileInputFormat padrão).

  • Quanto mais o número de arquivos é, mais o número de tarefa de mapa precisa e o tempo de trabalho pode ser muito mais lento.

Cenários de ficheiros pequenos

  • os ficheiros são peças de um ficheiro lógico maior.
  • os ficheiros são inerentemente pequenos, por exemplo, imagem.

Estes dois casos exigem soluções diferentes.

    Para o primeiro, escreva um programa para concatenar os pequenos arquivos juntos.(see Nathan Marz'S post about a tool called the Consolidator which does exactly this)
  • para o segundo, algum tipo de recipiente é necessário para agrupar os arquivos de alguma forma.

Soluções em Hadoop

Ficheiros HAR

  • HAR (arquivos Hadoop ) foram introduzidos para aliviar o problema de muitos arquivos colocando pressão na memória do namenode.
  • é provável que os Hares sejam utilizados apenas para fins de arquivo.

SequenceFile

  • o conceito de SequenceFile é colocar cada pequeno ficheiro num único ficheiro maior.
  • Por exemplo, suponha que existem 10,000 arquivos 100KB, então nós podemos escrever um programa para colocá-los em um único SequenceFile como abaixo, onde você pode usar o nome do arquivo para ser a chave e conteúdo a ser valor.

    Disposição do ficheiro de sequenciação http://img.blog.csdn.net/20151213123516719

  • Alguns benefícios:
    1. um número menor de memória necessária no NameNode. Continue com o exemplo de 10 000 ficheiros 100KB,
      • Antes de utilizar o SequenceFile, 10 000 objectos ocupam cerca de 4,5 MB de RAM no NameNode.
      • Depois de usar SequenceFile, SequenceFile 1GB com 8 blocos HDFS, estes objetos ocupam cerca de 3,6 KB de RAM no NameNode.
    2. O SequenceFile é splittable, por isso é adequado para MapReduce.
    3. O SequenceFile é suportado por compressão.
  • Compressões suportadas, a estrutura do ficheiro depende do tipo de compressão.

    1. Não Comprimido
    2. Comprimido para registo: comprime cada registo à medida que é adicionado ao ficheiro. record_compress_seq http://img.blog.csdn.net/20151213182753789

    3. Comprimido Em Bloco 这里写图片描述 http://img.blog.csdn.net/20151213183017236

        Espera que os dados atinjam o tamanho do bloco para comprimir.
    4. a compressão em bloco proporciona uma melhor taxa de compressão do que a compressão registada.
    5. a compressão em bloco é geralmente a opção preferida ao usar o SequenceFile.
    6. O Bloco aqui não está relacionado com HDFS ou bloco do sistema de ficheiros .
 29
Author: JiaMing Lin, 2015-12-13 15:22:15