Com a diversificação das aplicações que empregam conjuntos de dados classificados como Big Data, foram desenvolvidos frameworks, heurísticas e metodologias para armazenar, acessar e processá-los sem comprometer o desempenho dos sistemas envolvidos. Duas soluções que se destacam nesse contexto são o Apache Hadoop e o Apache Spark. A respeito dessas soluções, assinale a afirmativa correta.
- A)O GraphX é um componente do Hadoop permite visualizar e analisar dados com gráficos.
Errada: GraphX é uma biblioteca do Apache Spark para processamento de grafos, não um componente do Hadoop nem uma ferramenta de visualização.
- B)O Apache Spark copia os dados para a RAM antes de processá-los em vez de acessar dados do armazenamento externo.
Certa: o Apache Spark processa os dados preferencialmente em memória RAM, reduzindo a dependência de leitura direta do armazenamento externo.
- C)O Yet Another Resource Negotiator (YARN) é um componente do Spark que aloca recursos para a execução de aplicações.
Errada: YARN é componente do Hadoop, responsável por gerenciamento e alocação de recursos em cluster, não do Spark.
- D)O Apache Spark não tem bibliotecas de machine learning integradas, enquanto o Apache Spark dispõe da biblioteca de machine learning MLlib.
Errada: está invertido, porque o Spark tem a biblioteca MLlib para machine learning integrado.
- E)O Apache Hadoop conta com uma tecnologia especial de processamento de dados chamada Conjunto de Dados Distribuídos Resiliente (RDD).
Errada: RDD é um conceito central do Apache Spark, não uma tecnologia do Hadoop.
Gabarito: B
Quando a ideia é lidar com Big Data, duas filosofias aparecem bastante: a do Hadoop, que ficou famoso pelo armazenamento distribuído e pelo processamento em lote, e a do Spark, que ganhou espaço por trabalhar de forma muito mais rápida ao usar memória RAM sempre que possível. Isso ajuda bastante quando o volume de dados é grande e o tempo de resposta importa. O Hadoop se apoia em componentes como HDFS e YARN, enquanto o Spark tem ecossistema próprio, com APIs e bibliotecas integradas. O ponto central da questão está na característica do Spark de carregar os dados na memória antes de processá-los, em vez de depender o tempo todo do disco ou de armazenamento externo. Na prática, isso acelera muito as operações, especialmente quando há várias etapas de processamento sobre os mesmos dados. Não é mágica, é engenharia para evitar o gargalo clássico do acesso ao disco. Por isso, a alternativa B está correta. O Spark foi projetado para processamento in-memory, o que o torna mais eficiente em muitos cenários do que abordagens mais tradicionais baseadas apenas em disco. Já as demais alternativas misturam componentes de sistemas diferentes ou trocam as bibliotecas de lugar, o que é exatamente o tipo de pegadinha que a FGV adora usar.