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.