Pular para o conteúdo

Tema

Hadoop

Folha de revisão · 2 temas · Engenharia de Dados

Feita para a véspera. Imprimir esta página tira o menu e as abas.

Hadoop: conceito e arquitetura

Hadoop é o pano de fundo de quase todo conceito de engenharia de dados moderna. A banca pergunta menos 'o que é' e mais 'ainda faz sentido', porque essa é a pergunta que revela se você entende separação de armazenamento e computação.

Como cai: HDFS ainda faz sentido se a empresa está na AWS?

Erros comuns

  • Dizer que Hadoop é um banco de dados. Hadoop é um framework de armazenamento e processamento distribuído; quem oferece semântica de tabela é o Hive por cima dele.
  • Confundir HDFS com YARN. HDFS guarda arquivo em blocos replicados; YARN reparte CPU e memória entre aplicações. São responsabilidades separadas desde o Hadoop 2.
  • Achar que replicação substitui backup. Réplica protege contra falha de disco e de nó; ela copia fielmente o comando de exclusão e a corrupção lógica.
  • Tratar o NameNode como detalhe. Ele guarda os metadados de todo o sistema de arquivos; sem alta disponibilidade, é ponto único de falha e limita o número de arquivos pequenos.
  • Dizer que Hadoop morreu. O que perdeu espaço foi o HDFS como camada de armazenamento primária; YARN, Hive e o modelo de processamento distribuído deixaram herança direta no que se usa hoje.
  • Explicar a queda do Hadoop só por 'Spark é mais rápido'. A razão estrutural é separar armazenamento de computação, o que permite escalar e pagar cada um por conta.

MapReduce

É o exercício clássico de raciocínio distribuído: a banca pede o contador de palavras não para ver se você sabe contar, mas para ver se você identifica shuffle e escrita em disco como os pontos caros, e se sabe explicar por que Spark ganhou.

Como cai: Explique um contador de palavras e diga onde está o gargalo.

Erros comuns

  • Esquecer o shuffle. Map e reduce são as duas fases que todo mundo cita; o shuffle entre elas é onde o trabalho pesado acontece e é o que a banca quer ouvir.
  • Dizer que o combiner sempre pode ser usado. Ele só é seguro quando a agregação é associativa e comutativa: soma e máximo sim, média direta não.
  • Confundir combiner com reducer. O combiner roda no lado do map, sobre a saída parcial daquele mapper, e é opcional — o framework pode chamá-lo zero, uma ou várias vezes.
  • Achar que a lentidão do MapReduce é da CPU. O custo dominante é I/O: gravar a saída do map em disco, transferir pela rede no shuffle e gravar o resultado de cada job antes do próximo começar.
  • Explicar que Spark é rápido só porque usa memória. A outra metade é o DAG: o Spark planeja a cadeia inteira e evita materializar resultado intermediário entre estágios.
  • Ignorar a chave enviesada. Se uma chave concentra a maior parte dos registros, um reducer trabalha sozinho enquanto os outros terminam, e o job fica refém dele.