Baixe o app para aproveitar ainda mais
Prévia do material em texto
Escriturário Informática – Parte 10 Prof. Márcio Hunecke www.acasadoconcurseiro.com.br 3 Informática CONCEITOS DE MAPREDUCE E HDFS/HADOOP/YARN 2.7.4 Big Data O termo Big Data refere-se a um grande conjunto de dados armazenados e baseia-se em 5 V's: velocidade, volume, variedade, veracidade e valor. Big Data é um termo amplamente utilizado na atualidade para nomear conjuntos de dados muito grandes ou complexos, que os aplicativos de processamento de dados tradicionais ainda não conseguem lidar. Os desafios desta área incluem: análise, captura, curadoria de dados, pesquisa, compartilhamento, armazenamento, transferência, visualização e informações sobre privacidade dos dados. Este termo muitas vezes se refere ao uso de análise preditiva e de alguns outros métodos avançados para extrair valor de dados, e raramente a um determinado tamanho do conjunto de dados. Maior precisão nos dados pode levar à tomada de decisões com mais confiança. Além disso, melhores decisões podem significar maior eficiência operacional, redução de risco e redução de custos. Volume Big Data é uma grande quantidade de dados gerada a cada segundo. Pense em todos os e-mails, mensagens de Twitter, fotos e vídeos que circulam na rede a cada instante. Não são terabytes e sim zetabytes e brontobytes. Só no Facebook são 10 bilhões de mensagens, 4,5 bilhões de curtidas e 350 milhões de fotos compartilhadas todos os dias. A tecnologia do Big Data serve exatamente para lidar com esse volume de dados, guardando-os em diferentes localidades e juntando-os através de software. Velocidade Se refere à velocidade com que os dados são criados. São mensagens de redes sociais se “viralizando” em segundos, transações de cartão de crédito sendo verificadas a cada instante ou os milissegundos necessários para calcular o valor de compra e venda de ações. O Big Data serve para analisar os dados no instante em que são criados, sem ter de armazená-los em bancos de dados. www.acasadoconcurseiro.com.br4 Variedade No passado, a maior parte dos dados era estruturada e podia ser colocada em tabelas e rela- ções. Hoje, 80% dos dados do mundo não se comportam dessa forma. Com o Big Data, men- sagens, fotos, vídeos e sons, que são dados não-estruturados, podem ser administrados junta- mente com dados tradicionais. Veracidade Um dos pontos mais importantes de qualquer informação é que ela seja verdadeira. Com o Big Data não é possível controlar cada hashtag do Twitter ou notícia falsa na internet, mas com análises e estatísticas de grandes volumes de dados é possível compensar as informações in- corretas. Valor O último V é o que torna Big Data relevante: tudo bem ter acesso a uma quantidade massiva de informação a cada segundo, mas isso não adianta nada se não puder gerar valor. É importante que empresas entrem no negócio do Big Data, mas é sempre importante lembrar dos custos e benefícios e tentar agregar valor ao que se está fazendo. Hadoop Hadoop é uma plataforma de software em Java de computação distribuída voltada para clus- ters e processamento de grandes volumes de dados, com atenção a tolerância a falhas. Foi inspirada no MapReduce e no GoogleFS (GFS). Trata-se de um projeto da Apache de alto nível, construído por uma comunidade de colaboradores e utilizando a linguagem de programação Java. O Yahoo! tem sido o maior colaborador do projeto, utilizando essa plataforma intensiva- mente em seus negócios. É disponibilizado pela Amazon e IBM em suas plataformas. Componentes O framework do Apache Hadoop é composto dos módulos seguintes na versão 2: Hadoop Common - Contém as bibliotecas e arquivos comuns e necessários para todos os mó- dulos Hadoop. Hadoop Distributed File System (HDFS) - Sistema de arquivos distribuído que armazena dados em máquinas dentro do cluster, sob demanda, permitindo uma largura de banda muito grande em todo o cluster. Banco do Brasil - TI (Escriturário) – Informática – Márcio Henecke www.acasadoconcurseiro.com.br 5 Hadoop Yarn - Trata-se de uma plataforma de gerenciamento de recursos responsável pelo ge- renciamento dos recursos computacionais em cluster, assim como pelo agendamento dos re- cursos. Hadoop MapReduce - Modelo de programação para processamento em larga escala. Todos os módulos do Hadoop são desenhados com a premissa fundamental de que falhas em hardware são comuns, sejam elas máquinas individuais ou um conjunto inteiro de máquinas em racks, e devem, portanto, ser automaticamente tratadas pelo software do framework. A solução Hadoop é formada por diversos outros componentes que agregam funções específi- cas ou alternativas para componentes nativos do Hadoop. A esse conjunto de aplicação dá-se o nome de Ecossistema Hadoop. www.acasadoconcurseiro.com.br6 O HDFS é composto por clusters de computadores interconectados onde os arquivos e diretórios residem. Um cluster HDFS consiste em um único nó, conhecido como um Name Node, que gerencia o sistema de arquivos e regula o acesso do cliente aos arquivos. Além disso, os nós de dados (Data Nodes) armazenam dados como blocos dentro dos arquivos. Dentro do HDFS, um Node Name gerencia operações do sistema de arquivos do tipo abrir, fechar e renomear arquivos e diretórios. Um Node Name também mapeia blocos de dados para os Data Nodes, os quais gerenciam as solicitações de leitura e gravação dos clientes HDFS. Os Data Nodes também criam, excluem e replicam blocos de dados de acordo com as instruções do nó de Name Node. Na versão 1.0 da Hadoop o gerenciamento do Cluster era realizado pelo MapReduce, que aca- bava realizando duas atividades. Na versão 2.0 introduziu-se um novo componente, o YARN que tem a função única de gerenciar os recursos computacionais / Cluster. MapReduce O Hadoop MapReduce é uma parte essencial do framework, uma vez que é o responsável pelo processamento de dados. O Hadoop trouxe o modelo de programação do MapReduce à tona, tornando o mesmo famoso. O programador não precisa realizar nenhum tipo de programação extra para garantir que os processos serão processados paralelamente. Isso o coloca como uma solução fantástica para problemas envolvendo análise de dados em larga escala. Banco do Brasil - TI (Escriturário) – Informática – Márcio Henecke www.acasadoconcurseiro.com.br 7 MapReduce consiste das seguintes funções: Splitting (Separar): Os dados de entrada são particionados de tal forma que possam ser distri- buídos entre um grupo de máquinas para processamento em paralelo. Mapping (Mapear): Responsável por receber os dados na forma de chave/valor representando de forma lógica cada registro dos dados de entrada, podendo ser, por exemplo, uma linha em um arquivo de log ou de uma tabela. A função map retorna uma lista com zero ou mais dados chave/ valor e deve ser codificada pelo desenvolvedor, através de outras ferramentas ou da API Java; Shuffling (Organizar): A etapa de shuffle é responsável por organizar o retorno da função Map, atribuindo para a entrada de cada Reduce todos os valores associados a uma mesma chave. Esta etapa é realizada pela biblioteca do MapReduce; Reducing (Reduzir): Por fim, ao receber os dados de entrada a função Reduce retorna uma lista de chave/valor contendo zero ou mais registros, semelhante ao Map, deve ser codificada pelo desenvolvedor. Resumo • Utiliza o Modelo Mestre – Escravo. O conteúdo fica armazenado sempre em um local que é o mestre e se esse local ficar indisponível, os computadores escravos são acionados, pois nestes fica armazenada uma cópia do conteúdo que estava no mestre. • A saída da MapReduce sempre será Chave – Valor • Hadoop utiliza computação distribuída, formada por clusters. • Os dados, por padrão, são copiados para 3 Data Node, para gerar redundância • Os blocos copiados, por padrão, podem ser de 64 Mb ou 128 Mb. • Três principais componentes do Hadoop: • HDFS – Sistemas de arquivos distribuído • MapReduce – Mecanismo de limpeza de dados • ,,Yarn – Gerenciamento do Cluster
Compartilhar