Como escrever aplicativos mapreduce

A API MapReduce é escrito em Java, para que os aplicativos MapReduce são principalmente baseadas em Java. A lista a seguir especifica os componentes de um aplicativo MapReduce que você pode desenvolver:

  • Driver (obrigatório): Este é o shell aplicativo que está chamado a partir do cliente. Ele configura a classe MapReduce (que você não personalizar) e submete-o para o Gerenciador de recursos (ou JobTracker se você estiver usando Hadoop 1).

  • classe (obrigatório): A classe implementar necessidades para definir os formatos dos pares de chave / valor que você entrada e de saída como você processa cada registro. Essa classe tem apenas um único método, que é onde você codificar como cada registro será processado e qual chave / valor para a saída. Para saída de pares de chave / valor da tarefa mapeador, escrevê-los para uma instância da classe.

    Video: Desenvolvendo uma app nativa iOS e Android para uma pizzaria em 15 minutos com Xamarin e C#

  • class (opcional): O redutor é opcional para aplicações só de mapa onde a fase Reduzir não é necessário.

    Video: Qual é o Melhor Editor de Texto?

  • class (opcional): Um combinador muitas vezes pode ser definida como um redutor, mas em alguns casos, ele precisa ser diferente. (Lembre-se, por exemplo, que um redutor pode não ser capaz de executar várias vezes em um conjunto de dados sem mutação os resultados.)

    Video: Como criar e ganhar dinheiro com aplicativos - fabrica de aplicativos - CASOS REAIS



  • class (opcional): Personalize o partitioner padrão para executar tarefas especiais, como uma espécie secundária sobre os valores para cada tecla ou para raros casos que envolvem dados esparsos e arquivos de saída desequilibrada das tarefas Mapper.

  • andclasses (opcional): Hadoop tem alguns formatos de dados padrão (por exemplo, arquivos de texto, arquivos de seqüência e bancos de dados), que são úteis para muitos casos. Para os dados formatados especificamente, a implementação de suas próprias classes para ler e gravar dados pode simplificar muito o seu mapeador e código redutor.

De dentro do driver, você pode usar a API MapReduce, que inclui métodos de fábrica para criar instâncias de todos os componentes da lista anterior. (No caso de você não é uma pessoa de Java, um método de fábrica é uma ferramenta para criação de objetos.)

A API genérico chamado Hadoop Transmissão permite usar outras linguagens de programação (mais comumente, C, Python e Perl). Embora esta API permite que as organizações com habilidades não-Java para escrever código MapReduce, usando ele tem algumas desvantagens.

Por causa das camadas de abstração adicionais que este código de streaming precisa passar por para funcionar, há uma penalidade de desempenho e uso de memória maior. Além disso, você pode codificar funções mapeador e redutor somente com Hadoop Streaming. leitores e gravadores de discos, bem como todos os seus partitioners, precisa ser escrito em Java.

Uma conseqüência direta - e desvantagem adicional - de ser incapaz de personalizar os leitores e escritores recorde é que os aplicativos Hadoop Transmissão são adequados para lidar com apenas dados baseados em texto.


Publicações relacionadas