UNIVERSIDADE FEDERAL DE MINAS GERAIS DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO ESPECIALIZAÇÃO EM INFORMÁTICA - ÁREA DE CONCENTRAÇÃO: GESTÃO DE TECNOLOGIA DA INFORMAÇÃO DANILO ALMEIDA PAIVA Relatório da Disciplina de Processamento de Dados Massivos Brasília 2018 Resumo O presente trabalho visa a registrar a pesquisa e discussão sobre as opções de serviços e soluções voltadas especificamente para Processamento de Dados Massivos (PDM) ofertadas pelos grandes provedores de nuvem (Amazon, Google, Microsoft, outros). Palavras-chave: PDM. Serviços PDM. Grandes provedores de nuvem. 2 1 Sobre a Amazon EMR O principal macroserviço de PMD da Amazon denominado Elastic MapReduce (EMR) é composto por um conjunto de funcionalidades e outros subserviços para o processamento e análise de Big Data. O EMR faz parte da Amazon Web Services (AWS) - uma plataforma de serviços de computação em nuvem oferecida pela Amazon.com. O EMR fornece o poder computacional e a infraestrutura sob demanda necessária para resolver problemas complexos: entender grandes volumes e dados e descobrir tendências (PHILLIPS; SCHMIDT, 2013). O Amazon EMR é baseado no Hadoop, plataforma de software em Java de computação distribuída voltada para clusters e processamento de grandes volumes de dados, com atenção a tolerância a falhas. O projeto Hadoop foi inspirado no MapReduce e no GoogleFS (GFS) (WIKIPEDIA, 2018). O usuário dos serviços da Amazon EMR contrata elementos de infraestrutura que já estão pré-configurados - dessa forma existe um baixo custo com configuração de ambiente - e paga pelo que foi efetuamente utilizado. Para a utililização do Amazon EMR, o usuário estabelece o quantitativo inicial de nós de processadores a serem utilizados na Amazon Elastic Compute Cloud (EC2) e o espaço de armazenamento no Amazon Simple Storage Service (S3) - é o armazenamento persistente da AWS. De acordo com a quantidade de dados de entrada e o prazo na obtenção de respostas, os elementos de infraestrutura podem ser redimensionados para mais ou menos (por isso o nome Elastic - de elasticidade). A solução Amazon EMR é utilizada para análise de dados de logs, indexação web, aprendizado de máquina, análise financeira, simulação científica, bioinformática, até mesmo como armazém de dados (data warehousing) e suporta cargas de trabalho baseadas em Apache Spark (solução de processamento massivo de dados distribuídos), Presto (mecanismo de consulta SQL distribuído de código aberto otimizado para baixa latência e análise de dados ad-hoc) e Apache HBase (é a base de dados do Hadoop, um repositório de Big Data distribuído e escalável) (ROUSE, 2017). HIVE (armazém de dados que funciona a partir do HBase e provê busca de dados - data query e análise) e PIG (abstração de linguagem de procedimentos mais simples sobre o MapReduce) provém funcionalidades adicionais e podem ser acopladas à arquitetura. O Yelp - aplicação voltada para a avaliação de serviços usa solução da AWS. Capítulo 1. Sobre a Amazon EMR Figura 1 – Cluster EMR Típico (PHILLIPS; SCHMIDT, 2013) Figura 2 – Instalação Hadoop tradicional versus Arquitetura Amazon EMR 3 4 2 Sobre o Google Cloud Dataproc e Dataflow O Cloud Dataproc é um dos serviços existentes da plataforma de serviços de nuvem do Google (Google Cloud Plataform - GCP). Ele é capaz de criar e executar clusters de Apache Spark e Apache Hadoop para o processamento massivo de dados e se integra a outros serviços da GCP para oferecer, por exemplo, insights através de visualizações. Essa solução é indicada para quem já tem conhecimentos nas ferramentas Hadoop e possuem jobs de Hadoop. Figura 3 – textbfCloud Dataproc - demora-se 90 segundos para cada operação: (1) começar, (2) escalar e (3) desligar um cluster (MSV, 2015). O Cloud Dataflow já é uma solução para executar jobs do tipo Apache Beam e não é necessário considerar aspectos comuns de se criar clusters: balanceamento de carga de trabalho, escalabilidade de nós; isso é automaticamente gerenciado. Os jobs Beam permitem que se foque na computação lógica ao invés de em como os nós executores funcionam em comparação com os jobs Spark, cujo o código está relacionado ao executor e em como ele funciona.O Cloud Dataflow também oferece a capacidade de se criar jobs baseados em templates, o que facilita tarefas rotineiras nas quais as diferenças são apenas valores de parâmetros. Figura 4 – Funcionamento do Dataflow com entradas, processamento, análise e armazenamento (GOOGLE). Capítulo 2. Sobre o Google Cloud Dataproc e Dataflow 5 As diferenças entre os modelos de programação Spark e Beam são grandes, e existem casos de uso em que cada um apresenta grande vantagem sobre o outro. Figura 5 – Qual utilizar? Dataproc ou Dataflow? Árvore de Decisão (GOOGLE) O Google Cloud Dataproc e Dataflow se utilizam do serviço de armazém de dados e analytics da GCP: BigQuery. Figura 6 – Cargas de Trabalho recomendadas: Dataproc versus Dataflow (GOOGLE) 6 3 Microsoft Azure HDInsight O Microsoft Azure HDInsight é o conjunto ou pilha de tecnologias ou também denominado plataforma da Microsoft para processamento massivo de dados. É uma distribuição em nuvem dos componentes do Hadoop da HDP (Hortonworks Data Platform) em que se pode usar as estruturas de código aberto mais populares, como Hadoop, Spark, Hive, LLAP, Kafka, Storm, R. Com essas estruturas é possível habilitar uma variedade de cenários, como extração, transformação e carregamento (ETL), data warehouse, aprendizado de máquina e IoT (MICROSOFT AZURE, 2018). A solução da Microsoft também permite a criação de clusters otimizados em que é possivel escalar as cargas de trabalho para mais ou para menos. Também permite a proteção dos dados corporativos através da Rede Virtual do Microsoft Azure. O monitoramento dos clusters se torna possível através de uma única interface. O HDInsight permite a utilização de ferramentas avançadas para Hadoop e Spark e cientistas de dados podem utilizar o Jupyter e o Zeppelin. Os cenários de uso do HDInsight são variados. São exemplos: (1) processamento em lotes (ETL) - repositório de dados transformados a partir de dados estruturados e não estruturados; (2) data warehousing - consultas interativas em escalas petabyte sobre diferentes tipos de dados em qualquer formato; (3) IoT - capaz de processar dados de streaming (em tempo real) recebidos de diversas fontes (dispositivos). Figura 7 – Arquitetura típica do HDInsight (FAULKNER, 2015) 7 4 Conclusão Os produtos da Amazon, da Google e da Microsoft não são os únicos, porém eles registram em percentual grande adoção por parte das empresas que colocam sua infraestrutura e muitos de seus serviços nas plataformas de nuvem (FIGURA 8). Os serviços específicos de processamentos de dados desses grandes players fazem uso de outros serviços de suas plataformas de nuvem, principalmente relacionados ao armazenamento dos dados e à outros módulos de visualização da informação. Alguns serviços fazem da escalabilidade de recursos algo mais automático e menos dependente do indivíduo, outros precisam de que o indivíduo altere alguns parâmetros da arquitetura a ser disponibilizada. Figura 8 – Adoção de Nuvem Pública (Comparação entre 2017 e 2016) (JACKSON, 2018) O faturamento do uso das soluções em Big Data é geralmente é feito por processamento por segundo, e considera o volume de dados, e a estrutura virtual de elementos de hardware (processamento, comunicação e armazenamento) criada. Os preços ofertados pelas soluções variam porém já se reduziram ao ponto em que qualquer indivíduo com um cartão de crédito pode usufruir de uma infraestrutura de datacenter em nuvem para o processamento massivo de dados. 8 5 Bibliografia • PHILLIPS, Christopher; SCHMIDT, Kevin. Programming Elastic MapReduce. O’Reilly Media Inc, dezembro de 2013. • WIKIPÉDIA.Hadoop. 2018. Disponível em: https://pt.wikipedia.org/wiki/Hadoop. Acesso em: 06 de dezembro de 2018. • ROUSE, Margaret. Amazon Elastic MapReduce (Amazon EMR).2017. Disponível em: https://searchaws.techtarget.com/definition/Amazon-Elastic-MapRedu ce-Amazon-EMR. Acesso em: 06 de dezembro de 2018. • MSV, Janakiram. Google Launches Cloud Dataproc, A Managed Big Data Stack Powered by Spark and Hadoop. 2015. Disponível em: https://www.forbe s.com/sites/janakirammsv/2015/09/23/google-launches-cloud-dataproc-a-mana ged-big-data-stack-powered-by-spark-and-hadoop/#7143db52d562. Acesso em: 07 de dezembro de 2018. • GOOGLE. Cloud Dataflow. Disponível em: https://cloud.google.com/dataflow/. Acesso em: 07 de dezembro de 2018. • GOOGLE. Cloud Dataproc. Disponível em: https://cloud.google.com/dataproc/. Acesso em 07 de dezembro de 2018. • Microsoft Azure. O que é o Azure HDInsight e a pilha de tecnologias do Apache Hadoop. 2018. Disponível em: https://docs.microsoft.com/pt-br/azure/h dinsight/hadoop/apache-hadoop-introduction. Acesso em: 08 de dezembro de 2018. • JACKSON, Brian. Google Cloud vs AWS em 2018 (Comparando os Gigantes). 2018. Disponível em: https://kinsta.com/pt/blog/google-cloud-vs-aws/. Acesso em: 09 de dezembro de 2018. • FAULKNER, Alan. Intro to Big Data Analytics – Part I . 2015. Disponível em: Faulknerhttp://falconteksolutionscentral.com/?p=668. Acesso em: 09 de dezembro de 2018.