novo Flashcards
(14 cards)
- Em um cluster de Big Data, a conteinerização oferece quais vantagens principais?
( ) Garantia de ambiente de execução consistente entre nós
( ) Isolamento em nível de hardware usando hipervisores aninhados
( ) Escalonamento rápido via plataformas de orquestração
( ) Reconhecimento automático de localidade de dados no kernel do SO
✅ Garantia de ambiente de execução consistente entre nós
❌ Isolamento em nível de hardware usando hipervisores aninhados → Isso se aplica a máquinas virtuais, não containers.
✅ Escalonamento rápido via plataformas de orquestração
❌ Reconhecimento automático de localidade de dados no kernel do SO → Não é uma vantagem específica de conteinerização.
✅ Corretas: 1 e 3
Em computação, um cluster é um grupo de computadores interconectados que trabalham juntos como um único sistema para alcançar um objetivo comum. Em vez de ter uma única máquina poderosa executando todas as tarefas, um cluster distribui a carga de trabalho entre várias máquinas, chamadas de “nós” (nodes).
Virtualização é a base que constrói a nuvem, os containers são a forma mais inteligente e ágil de rodar seus apps dentro dessa nuvem.
- Para orquestrar workloads de Big Data conteinerizados, são normalmente utilizados:
( ) Kubernetes
( )Docker Swarm
( ) Hyper-V Manager
( ) YARN em modo standalone
✅ Kubernetes
✅ Docker Swarm
❌ Hyper-V Manager → Gerenciador de VMs, não para orquestração de containers em clusters.
❌ YARN em modo standalone → YARN pode ser usado, mas não em modo standalone para orquestrar containers.
✅ Corretas: Kubernetes e Docker Swarm
(Docker Swarm é menos comum hoje em grandes clusters, mas ainda pode ser usado)
Workloads (ou cargas de trabalho) são conjuntos de tarefas, processos ou aplicações que consomem recursos computacionais — como CPU, memória, armazenamento e rede — para realizar um determinado objetivo em um sistema computacional.
- Comparando VMs e containers
( ) Containers costumam ter tempo de inicialização menor que VMs
( ) VMs compartilham diretamente o kernel do host com processos guest
( ) Containers permitem maior densidade de implantação no mesmo hardware
( ) VMs possibilitam versões distintas de kernel para cada sistema convidado
✅ Containers costumam ter tempo de inicialização menor que VMs
❌ VMs compartilham diretamente o kernel do host com processos guest → Errado, containers compartilham o kernel.
✅ Containers permitem maior densidade de implantação no mesmo hardware
✅ VMs possibilitam versões distintas de kernel para cada sistema convidado
✅ Corretas: 1, 3 e 4
- Na fase Map de um job MapReduce, ocorrem:
( ) Divisão dos dados de entrada em pares chave-valor
( ) Agregação global de todas as chaves nos reducers
( ) Aplicação de lógica de transformação definida pelo usuário
( ) Ordenação global das chaves
✅ Divisão dos dados de entrada em pares chave-valor
❌ Agregação global de todas as chaves nos reducers → Isso acontece na fase Reduce.
✅ Aplicação de lógica de transformação definida pelo usuário
❌ Ordenação global das chaves → Ocorre no Shuffle/Reduce.
✅ Corretas: 1 e 3
O que é MapReduce?
É uma forma de processar muitos dados, dividindo o trabalho em duas partes:
Map separa e organiza
Reduce junta e calcula
Um job MapReduce é uma tarefa completa que processa e resume dados em dois passos: Map e Reduce.
- Para reduzir I/O de rede durante a etapa de shuffle, pode-se:
( ) Utilizar combiners
( ) Definir fator de replicação igual a 1
( ) Comprimir a saída dos mappers
( ) Aumentar o tamanho do bloco HDFS para > 1 GB
✅ Utilizar combiners
❌ Definir fator de replicação igual a 1 → Não reduz I/O do shuffle.
✅ Comprimir a saída dos mappers
❌ Aumentar o tamanho do bloco HDFS para > 1 GB → Pode afetar performance, mas não é direto na redução de shuffle I/O.
✅ Corretas: 1 e 3
I/O significa Input/Output — ou seja, entrada e saída de dados.
Operações de I/O são lentas, especialmente com arquivos grandes
Por isso, o desempenho de jobs depende muito de minimizar o I/O
Shuffle é a fase intermediária entre o Map e o Reduce no MapReduce ou Spark.
Redistribuição e ordenação dos dados antes do Reduce
Juntar todas as “maçãs” espalhadas pelo cluster
- São características típicas de processamento MapReduce:
( ) Baixa latência adequada a análises interativas
( ) Tolerância a falhas via reexecução de tarefas perdidas
( ) Processamento stateless em cada map task
( ) Dependência de sistemas de arquivos distribuídos para localidade de dados
❌ Baixa latência adequada a análises interativas → MapReduce não é ideal para análises interativas.
✅ Tolerância a falhas via reexecução de tarefas perdidas
✅ Processamento stateless em cada map task
✅ Dependência de sistemas de arquivos distribuídos para localidade de dados
✅ Corretas: 2, 3 e 4
- Linguagens/APIs comuns para desenvolver jobs MapReduce no ecossistema Hadoop:
( ) Java
( ) C++
( ) SQL
( ) Ruby
- Linguagens/APIs comuns para desenvolver jobs MapReduce no ecossistema Hadoop:
✅ Java
✅ C++
❌ SQL → SQL é mais usado com Hive, Pig, Spark SQL, não diretamente com MapReduce.
❌ Ruby → Não é comum nem oficialmente suportado.
✅ Corretas: Java e C++
- Componentes do YARN incluem:
( ) ResourceManager
( ) DataNode
( ) NodeManager
( ) JobHistoryServer
✅ ResourceManager
❌ DataNode → Pertence ao HDFS, não ao YARN.
✅ NodeManager
✅ JobHistoryServer
✅ Corretas: 1, 3 e 4
YARN é um gerenciador de recursos. é um dos componentes principais do hadoop
- Sobre replicação de dados no HDFS:
( ) O fator de replicação padrão é 3
( ) Réplicas são sempre colocadas no mesmo rack para maior throughput
( ) A replicação aumenta a tolerância a falhas
( ) É possível alterar o fator de replicação por arquivo individualmente
✅ O fator de replicação padrão é 3
❌ Réplicas são sempre colocadas no mesmo rack para maior throughput → Pelo contrário, o HDFS espalha réplicas entre racks para tolerância a falhas.
✅ A replicação aumenta a tolerância a falhas
✅ É possível alterar o fator de replicação por arquivo individualmente
✅ Corretas: 1, 3 e 4
HDFS é um sistema de arquivos distribuído. é um dos componentes principais do hadoop
- O Secondary NameNode:
( ) Atua como standby imediato para fail-over automático
( ) Faz merge periódico do FsImage com os edit logs
( ) Normalmente reside na mesma máquina do NameNode por padrão
( ) Ajuda a reduzir o consumo de memória do NameNode
❌ Atua como standby imediato para fail-over automático → Isso é o HA NameNode, não o Secondary.
✅ Faz merge periódico do FsImage com os edit logs
❌ Normalmente reside na mesma máquina do NameNode por padrão → Não é recomendável; idealmente em máquina separada.
❌ Ajuda a reduzir o consumo de memória do NameNode → Não diretamente.
✅ Correta: 2
Secondary NameNode, Um assistente que ajuda o NameNode a manter os metadados organizados e leves
Não substitui o NameNode Só faz manutenção, não assume se o NameNode cair
O NameNode é o “cérebro” do HDFS.
ele sabe onde estão todos os dados, mas não armazena os dados em si.
- No Spark, são transformações avaliadas de forma lazy:
( ) map()
( ) collect()
( ) filter()
( ) count()
✅ map()
❌ collect() → É uma ação, não transformação.
✅ filter()
❌ count() → Também é uma ação.
✅ Corretas: 1 e 3
- O DataFrame API do PySpark oferece, em relação a RDDs:
( ) Otimização automática de consultas via Catalyst
( ) Type-safety em tempo de compilação
( ) Possibilidade de expressar consultas SQL
( ) Processamento em formato colunar
✅ Otimização automática de consultas via Catalyst
❌ Type-safety em tempo de compilação → PySpark é dinâmico.
✅ Possibilidade de expressar consultas SQL
✅ Processamento em formato colunar
✅ Corretas: 1, 3 e 4
RDDs são a forma como o Spark armazena e processa dados em paralelo, de forma segura e eficiente.
- A computação em memória do Spark, comparada ao Hadoop MapReduce, resulta em:
( ) Menor latência para algoritmos iterativos
( ) Maior sobrecarga de I/O em disco
( ) Possibilidade de cache de resultados intermediários
( ) Necessidade de reescrever algoritmos usando apenas map e reduce de baixo nível
✅ Menor latência para algoritmos iterativos
❌ Maior sobrecarga de I/O em disco → Spark reduz essa sobrecarga.
✅ Possibilidade de cache de resultados intermediários
❌ Necessidade de reescrever algoritmos usando apenas map e reduce de baixo nível → Spark oferece APIs mais ricas.
✅ Corretas: 1 e 3
- Gerenciadores de cluster oficialmente suportados pelo Apache Spark 3.x:
( ) Spark Standalone
( ) Kubernetes
( ) Apache Mesos
( ) Amazon EMR (via YARN ou Standalone)
✅ Spark Standalone
✅ Kubernetes
✅ Apache Mesos
✅ Amazon EMR (via YARN ou Standalone)
✅ Todas corretas