Prévia do material em texto
TEMA 4 – PROCESSAMENTO DE DADOS Após a captura e armazenamento dos dados, inicia-se a fase de processamento, que envolve questões críticas como alocação de recursos, escalabilidade, disponibilidade, desempenho e o tipo de processamento. by Yasmim Cedro https://gamma.app 4.1 Escalabilidade A escalabilidade é crucial ao lidar com grandes volumes de dados que podem crescer significativamente. Um sistema escalável mantém seu desempenho mesmo com o aumento dos dados processados, escalando proporcionalmente à demanda. A execução precisa ser monitorada para evitar o esgotamento de recursos e a plataforma deve permanecer disponível, mesmo em caso de falhas. Existem duas estratégias principais para a escalabilidade: vertical e horizontal. Escalabilidade Vertical A escalabilidade vertical implica em aumentar a capacidade de processamento atualizando a infraestrutura existente. Esta estratégia pode comprometer a disponibilidade do serviço, exceto se houver redundância. A vantagem é que não exige modificações nos algoritmos, mas geralmente não atende bem a contextos onde o volume de dados cresce rapidamente, como no Big Data. Escalabilidade Horizontal A escalabilidade horizontal distribui o processamento entre várias tarefas menores em um cluster de recursos. Assim, o aumento dos recursos computacionais supre a demanda crescente. Esta estratégia melhora a disponibilidade e reduz o custo de melhorias na infraestrutura, pois não requer a interrupção das operações. A redistribuição de carga entre os recursos do cluster é eficiente, mas a tecnologia tradicional não foi projetada para essa estratégia, geralmente exigindo reimplementação de software para utilizar tecnologias de sistemas distribuídos. https://gamma.app 4.2 Processamento de Dados com Hadoop O Hadoop é um framework de código aberto projetado para armazenamento e processamento distribuído de grandes volumes de dados. Baseia-se em duas tecnologias principais: Hadoop Distributed File System (HDFS) e MapReduce. 1 Baixo Custo Utiliza servidores tradicionais, sem necessidade de hardware específico. 2 Escalabilidade A capacidade de processamento escala linearmente com o aumento dos recursos de computação. 3 Tolerância a Falhas O modelo de escalabilidade horizontal garante continuidade mesmo em caso de falhas. 4 Balanceamento de Carga Otimiza o uso dos recursos, evitando gargalos. https://gamma.app 4.3 Processamento em Tempo Real O Hadoop é mais adequado para processamento em lote, o que pode não ser ideal para todas as soluções de Big Data. Aplicações que exigem processamento contínuo e imediato dos dados, como rastreamento de usuários e detecção de fraudes, requerem processamento em tempo real. Este tipo de processamento precisa atender a requisitos como: Baixa Latência Processamento rápido dos dados à medida que chegam. Consistência Capacidade de lidar com imperfeições e inconsistências. Alta Disponibilidade Minimizar impactos de indisponibilidade. https://gamma.app 4.4 Processamento de Dados com Spark O Spark é um framework que se destaca no processamento em tempo real, otimizando o desempenho em programação distribuída. Diferente do Hadoop, que inclui componentes de armazenamento e processamento, o Spark foca no processamento de dados e pode ser usado em conjunto com o HDFS do Hadoop. 1 Driver Program Gerencia a criação e execução do processamento. 2 Cluster Manager Administra o cluster de máquinas. 3 Workers Executam as tarefas enviadas pelo Driver Program. https://gamma.app Conceitos Chave no Spark Conceitos chave no Spark incluem: Resilient Distributed Dataset (RDD) Abstração de objetos distribuídos pelo cluster, sendo o principal objeto de programação no Spark. Operações Transformações e ações realizadas em um RDD. Spark Context Representa a conexão da aplicação com o cluster, criando RDDs, acumuladores e variáveis. https://gamma.app Vantagens do Spark O Spark oferece um desempenho superior para processamento em tempo real, sendo uma solução eficiente para necessidades de processamento contínuo e imediato de grandes volumes de dados. Velocidade Processamento rápido e eficiente. Flexibilidade Pode ser usado em conjunto com o Hadoop. Eficiência Otimiza o uso de recursos. Escalabilidade Capacidade de lidar com grandes volumes de dados. https://gamma.app Aplicações do Spark O Spark é amplamente utilizado em diversas áreas, incluindo: 1 Análise em Tempo Real Monitoramento de dados em tempo real para tomada de decisões rápidas. 2 Aprendizado de Máquina Treinamento de modelos de aprendizado de máquina em grandes conjuntos de dados. 3 Processamento de Grafos Análise de dados complexos em forma de grafos. 4 Processamento de Fluxo de Dados Processamento contínuo de dados em tempo real. https://gamma.app