Como otimizar tarefas MapReduce

Além de otimizar o código da aplicação real com MapReduce para projetos de big data, você pode usar algumas técnicas de otimização para melhorar a confiabilidade eo desempenho. Eles se dividem em três categorias: hardware / topologia de rede, sincronização e sistema de arquivos.

hardware de dados grande / topologia de rede

Independente da aplicação, o hardware e redes mais rápido, provavelmente, produzir os tempos de execução mais rápido para o seu software. Uma vantagem distinta de MapReduce é a capacidade de executar em clusters de baixo custo de hardware commodity e das redes convencionais. Se você não prestar atenção para onde os servidores estão fisicamente organizado, você não vai obter o melhor desempenho e alto grau de tolerância a falhas necessários para apoiar tarefas de big data.

hardware comum é muitas vezes armazenados em racks no data center. A proximidade do hardware no rack oferece uma vantagem de desempenho em oposição a movimentação de dados e / ou código de rack para rack. Durante a implementação, você pode configurar o seu MapReduce motor para estar ciente e aproveitar essa proximidade.

Manter os dados eo código em conjunto é um dos melhores otimizações para MapReduce desempenho. Em essência, quanto mais próximo os elementos de processamento de hardware são um para o outro, a menos latência você terá que lidar com eles.

sincronização de dados grande

Como é ineficiente para conter todos os resultados de seu mapeamento dentro do nó, os mecanismos de sincronização copiar os resultados de mapeamento para os gânglios reduzindo imediatamente depois de terem concluído para que o processamento possa começar imediatamente. Todos os valores a partir da mesma chave são enviados para a mesma redutor, garantindo novamente um desempenho mais elevado e uma melhor eficiência.

As saídas de redução são escritos diretamente para o sistema de arquivos, por isso deve ser projetado e ajustado para melhores resultados.

sistema de arquivos de dados grande

Sua implementação MapReduce é apoiado por um sistema de arquivos distribuídos. A principal diferença entre os sistemas de arquivos locais e distribuídas é capacidade. Para lidar com as enormes quantidades de informação em um mundo de dados grande, sistemas de arquivos precisam ser distribuídos em várias máquinas ou nós em uma rede.

implementações MapReduce contar com um estilo de mestre-escravo de distribuição, onde o mestre nó armazena todos os metadados, direitos de acesso, mapeamento e localização de arquivos e blocos, e assim por diante. Os escravos são nós, onde os dados reais são armazenados. Todos os pedidos de ir para o mestre e, em seguida, são tratados pelo nó escravo apropriado. Como você contempla a concepção do sistema de arquivos, você deve considerar o seguinte:

  • Mantê-lo aquecido: Como você poderia esperar, o nó mestre poderia ficar sobrecarregado, porque tudo começa lá. Além disso, se o nó mestre falhar, todo o sistema de arquivos é inacessível até que o mestre é restaurada. A optimização é muito importante para criar um # 147-quente # 148- nó mestre de espera que pode saltar em serviço se ocorrer um problema com o mestre online.

  • Quanto maior melhor: o tamanho do arquivo também é uma consideração importante. Lotes de arquivos pequenos (menos de 100 MB) devem ser evitados. sistemas de arquivos distribuídos de apoio motores MapReduce funcionam melhor quando são preenchidos com um número modesto de arquivos grandes.

  • A visão de longo prazo: Porque cargas de trabalho são geridos em lotes, largura de banda de rede altamente sustentado é mais importante do que os tempos de execução rápidos dos mapeadores ou redutores. A melhor abordagem é para o código para transmitir grandes quantidades de dados quando está lendo e novamente quando é hora de escrever para o sistema de arquivos.

  • Mantê-la segura: Mas sem exagero. Adicionando camadas de segurança no sistema de arquivos distribuídos irá degradar o seu desempenho. As permissões de arquivo estão lá para proteger contra consequências não intencionais, comportamento não malicioso. A melhor abordagem é para garantir que somente usuários autorizados tenham acesso ao ambiente de centro de dados e para manter o sistema de arquivos distribuídos protegido do exterior.

menu