Prévia do material em texto
Aplicações simples utilizando frameworks de big data Apresentação O processamento paralelo e distribuído é a solução ideal quando se trata dos desafios de grande complexidade propostos pelas aplicações de Big Data, especialmente quando envolvem tratamento de um volume vasto de dados, muitas vezes com necessidade de resposta rápida e que podem fazer a diferença na tomada de decisão, o que pode garantir a sobrevivência de uma grande empresa no mercado em que está inserida. Nesta Unidade de Aprendizagem, você vai aprender sobre aplicações simples utilizando frameworks de Big Data, entender como funciona o MapReduce, os desafios que ele supera, bem como sobre o desenvolvimento de uma aplicação de contagem de palavras tanto no Apache Hadoop quanto no Apache Spark. Bons estudos. Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados: Explicar como funciona o MapReduce. • Aplicar, no Hadoop, uma aplicação que utiliza MapReduce.• Executar, no Spark, uma aplicação que utiliza MapReduce. • Infográfico Começar no Spark pode ser relativamente fácil se você conhece as linguagens Java, Scala, Python, R ou SQL, tendo em vista que é possível executá-lo localmente em um notebook para fins de aprendizado. Existe uma grande comunidade em volta do Apache Spark, que é utilizado por uma vasta quantidade de organizações para processar seus conjuntos de dados. Desde 2009, são mais de 1.200 desenvolvedores que contribuem com o projeto, de mais de 300 empresas. Além disso, o Spark roda em diversos locais, como em um modo de cluster independente, em serviços em nuvem como o EC2 da Amazon, no Hadoop Yarn, no Mesos, no Kubernetes, entre outros, bem como permite acessar dados de diversas fontes, como do sistema de arquivos do Hadoop, do Alluxio, do Apache Cassandra, do Apache HBase, entre outros. Neste Infográfico, você saberá mais sobre o tratamento de dados no Apache Spark, seu modelo de programação estendido do MapReduce, os conjuntos de dados distribuídos resilientes, o controle de estágio no Spark e as vantagens e desvantagens de operações do tipo lazy. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://statics-marketplace.plataforma.grupoa.education/sagah/bd440a7c-8e49-40ce-a511-a9e837d52a23/5fc79b2c-740e-44af-83eb-2995eadd0e92.png Conteúdo do Livro Nos primórdios da computação, o processamento dos sistemas era realizado no mainframe, de forma centralizada. Com o tempo, surgiram arquiteturas que permitiram descentralizar o processamento, possibilitando distribuí-lo entre outras máquinas. Ainda assim, as aplicações que rodavam em sistemas distribuídos tiveram diversos desafios, que foram superados com o surgimento de frameworks de Big Data, como o Apache Hadoop e o Apache Spark, que utilizam o MapReduce para realizar o processamento paralelo e distribuído. No capítulo Aplicações simples utilizando frameworks de Big Data, da obra Framework de Big Data, base teórica desta Unidade de Aprendizagem, você vai conhecer o MapReduce, saber os desafios que o framework superou, seu funcionamento e suas interfaces, bem como aprender como criar aplicações, tanto no Apache Hadoop quanto no Apache Spark, por meio de caso de uso de contagem de palavras. Boa leitura. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. Clique aqui Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://statics-marketplace.plataforma.grupoa.education/sagah/484c541d-1831-4ca5-8ba4-a87575341301/9e267382-152e-4197-9ba5-4443cde83946.pdf https://publica.sagah.com.br/publicador/objects/attachment/437122162/Codigo.zip?v=1876954665 https://publica.sagah.com.br/publicador/objects/attachment/437122162/Codigo.zip?v=1876954665 Dica do Professor O Spark é um sistema rápido de computação em cluster e de propósito geral, que dá suporte a um conjunto de ferramentas de alto nível, como o Spark SQL, o MLlib, o GraphX e o Spark Streaming, cada uma com suas funções específicas. Independente das ferramentas utilizadas, grande parte das aplicações criadas com o Spark realiza o tratamento dos dados por meio dos RDDs, que têm entre seus métodos as funções cache e persist. Nesta Dica do Professor, você verá algumas motivações que levam os desenvolvedores a utilizar o Spark, como melhorar seu desempenho por meio dos métodos cache e persist e a diferença entre eles. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://fast.player.liquidplatform.com/pApiv2/embed/cee29914fad5b594d8f5918df1e801fd/aaaf191f998abbbc786c7408e076927a Exercícios 1) Quando se deseja criar aplicações utilizando o Hadoop MapReduce, é necessário usar interfaces específicas. Assinale a alternativa que representa apenas interfaces de aplicações Hadoop MapReduce: A) Job, Counter, JavaRDD e JavaPairRDD. B) Mapper, JavaRDD, Reduce e Counter. C) Job, Counter, Partitioner e JavaRDD. D) Mapper, Reducer, Partitioner e Counter. E) Partitioner, JavaPairRDD, Job e Reducer. 2) Uma aplicação que utilize o Apache Spark para solucionar um desafio de Big Data tem operações de transformação e de ação. Assinale a alternativa que representa apenas funções de transformação: A) map, count e saveAsTextFile. B) map, groupByKey e filter. C) count, groupByKey e union. D) filter, saveAsTextFile e join. E) join, collect e intersection. 3) A grosso modo, no Spark RDD, as operações que produzem novos RDDs são chamadas de transformações e as de ação representam funções para manipular um conjunto de dados no RDD atual. Assinale a alternativa que representa a operação de ação que grava o RDD no arquivo: A) sample. B) cartesian. C) take. D) collect. E) saveAsTextFile. 4) Com o MapReduce, é possível processar um conjunto de dados muito grande em paralelo e de forma distribuída. Assinale a alternativa que representa a afirmação verdadeira sobre as características e o funcionamento do MapReduce. A) O MapReduce pode processar conjuntos de dados que chegam a até alguns gigabytes de dados. B) Para utilizar o MapReduce, é necessário utilizar servidores poderosos, pouco acessíveis aos usuários comuns. C) Com o MapReduce, é possível distribuir os dados em clusters que podem chegar a milhares de nós. D) Mesmo com o MapReduce, é necessário cuidar de problemas como tolerância a falhas e confiabilidade. E) No MapReduce, o agendamento e o monitoramento de tarefas são de total responsabilidade do programador. 5) O MapReduce superou desafios relacionados ao processamento paralelo e distribuído como divisão da tarefa entre os nós, confiabilidades e tolerância a falhas. Assinale a alternativa verdadeira em relação ao funcionamento do MapReduce: A) As tarefas de mapeamento produzem pares chave-valor intermediários, que são as entradas para as tarefas de redução. B) Após a redução, são somados os 1s da lista de valores de cada uma das chaves, formando uma saída do tipo C2, V2. C) Uma aplicação que utiliza o MapReduce tem obrigatoriamente nós de processamento e armazenamento exclusivos. D) As tarefas da fase de mapeamento do MapReduce geram saídas do tipo C1, V1, que serão consumidas pela fase de redução. E) No MapReduce, a fase de mapeamento separa as palavras em chaves e adiciona como valor o número de ocorrências de cada uma. Na prática O MapReduce é usado para realizar o processamento de grandes volumes de dados. Ele tem como fluxo de dados as fases de mapeamento, particionamento, combinação, classificação e redução, bem como uma API que possibilita a utilização de classes e funções para a criação de aplicações que usem o MapReduce. Confira, em Na Prática, como criar uma aplicação simples de contagem da frequência de ocorrência de cada uma das letras em um texto, com o Hadoop MapReduce, de forma que a classe Mapper irá mapear as chaves para cada letra existente e a classe Reducer irá agrupar os valores quetenham chaves em comum. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://statics-marketplace.plataforma.grupoa.education/sagah/d8279225-bbc5-4581-ae95-53049bceda92/f9dfd1d4-acd2-485d-9bff-572ee86698fb.png Saiba mais Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor: Descoberta de conjuntos de itens frequentes com o modelo de programação MapReduce sobre contextos de incerteza Veja a apresentação de desenvolvimento, implementação e experimentos realizados a partir da aplicação e da discussão de três algoritmos que evoluem o algoritmo tradicional Apriori para que possam executar com o modelo de programação MapReduce sobre contextos em que há incerteza. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. Mineração em grandes massas de dados utilizando Hadoop MapReduce e algoritmos bioinspirados: uma revisão sistemática Conheça, neste artigo, uma revisão sistemática de trabalhos de Big Data que combinam sistemas com base em Hadoop MapReduce e algoritmos bioinspirados, visando a analisar tarefas de mineração de dados abordadas, algoritmos bioinspirados utilizados, disponibilidade das bases usadas e quais características Big Data são tratadas nos trabalhos, que tem como resultado a discussão de critérios analisados e a identificação de alguns modelos de paralelização. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. Organização de uma estrutura de processamento paralelo baseado em Apache Spark para gerenciamento de risco agrícola Leia, neste artigo, sobre a organização de um modelo paralelo que utiliza o Spark para gerenciar riscos relacionados com indicadores físicos e químicos de qualidade de solo, que têm como entrada http://tede2.pucrs.br/tede2/handle/tede/6254 https://seer.ufrgs.br/rita/article/view/RITA-VOL23-NR1-69/37485 imagens de solos agrícolas e tarefas de reconhecimento de poros, de densidade e de compactação dos solos. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://www.alice.cnptia.embrapa.br/bitstream/doc/1114452/1/POrganizacaodeumaestruturadeprocessamentoparalelobaseadoemApacheSparkparagerenciamentoderiscoagricola..pdf