Baixe o app para aproveitar ainda mais
Prévia do material em texto
PÁVIO DOMICIANO MUNIZ AUTORIA INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 1 12/06/19 15:04 © Ser Educacional 2019 Rua Treze de Maio, nº 254, Santo Amaro Recife-PE – CEP 50100-160 *Todos os gráficos, tabelas e esquemas são creditados à autoria, salvo quando indicada a referência. Informamos que é de inteira responsabilidade da autoria a emissão de conceitos. Nenhuma parte desta publicação poderá ser reproduzida por qualquer meio ou forma sem autorização. A violação dos direitos autorais é crime estabelecido pela Lei n.º 9.610/98 e punido pelo artigo 184 do Código Penal. Imagens de ícones/capa: © Shutterstock Presidente do Conselho de Administração Diretor-presidente Diretoria Executiva de Ensino Diretoria Executiva de Serviços Corporativos Diretoria de Ensino a Distância Autoria Projeto Gráfico e Capa Janguiê Diniz Jânyo Diniz Adriano Azevedo Joaldo Diniz Enzo Moreira Prof. Pávio Domiciano Muniz DP Content DADOS DO FORNECEDOR Análise de Qualidade, Edição de Texto, Design Instrucional, Edição de Arte, Diagramação, Design Gráfico e Revisão. Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 2 12/06/19 15:04 Boxes CURIOSIDADE Informação que revela algo desconhecido e interessante sobre o assunto tratado. ASSISTA Indicação de filmes, vídeos ou similares que trazem informações complementares ou aprofundadas sobre o conteúdo estudado. DICA Um detalhe específico da informação, um breve conselho, um alerta, uma informação privilegiada sobre o conteúdo trabalhado. CITANDO Dados essenciais e pertinentes sobre a vida de uma determinada pessoa relevante para o estudo do conteúdo abordado. CONTEXTUALIZANDO Dados que retratam onde e quando aconteceu determinado fato; demonstra-se a situação histórica do assunto. EXPLICANDO Explicação, elucidação sobre uma palavra ou expressão específica da área de conheci- mento trabalhada. EXEMPLIFICANDO Informação que retrata de forma objetiva determinado assunto. INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 3 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 3 12/06/19 15:04 Unidade 1 - Introdução à infraestrutura de Data Science Objetivos da unidade ............................................................................................................................13 Utilização das ferramentas nos processos de administração de empresas .............................14 O que é Big Data, seu histórico e principais desafios ...............................................................14 Como o Big Data se parece ............................................................................................................15 Volume/velocidade/variedade/veracidade/valor .......................................................................16 Visão geral sobre ambiente Big Data ................................................................................................18 Como é composto um ambiente de Big Data ..............................................................................18 Infraestrutura tecnológica: plataformas, linguagem e ambiente ................................................19 As linguagens que podem ser usadas com Big Data ................................................................20 Como deve ser um ambiente apropriado para Big Data ...........................................................22 O que é MapReduce ........................................................................................................................23 O que é HDFS? ..................................................................................................................................25 Infraestrutura para Data Science ......................................................................................................27 Integração entre Data Science e Big Data ................................................................................27 Capacidade de processamento .....................................................................................................28 Treinamento de modelos analíticos ..............................................................................................29 Tecnologias para coleta, armazenamento, análise e visualização de dados ...........................31 Tecnologias e ferramentas de coleta de dados .........................................................................32 Tecnologias e ferramentas de armazenamento de dados .......................................................34 Ferramentas de análise de dados .................................................................................................37 Ferramentas de visualização de dados ........................................................................................39 Sintetizando ............................................................................................................................................40 Referências bibliográficas ..................................................................................................................42 Sumário INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 4 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 4 12/06/19 15:04 Sumário Unidade 2 - A base da infraestrutura do Data Science: Hadoop Objetivos da unidade ............................................................................................................................43 Componentes principais do Hadoop ..................................................................................................45 O que é o Hadoop? ...........................................................................................................................46 HDFS e MapReduce ..............................................................................................................................47 YARN ..................................................................................................................................................49 Seek time x transfer time, o que faz diferença em soluções de Big Data ..................................52 Arquitetura Hadoop ...............................................................................................................................54 Cluster Hadoop.......................................................................................................................................54 Processamento MapReduce ...............................................................................................................55 Cache distribuído e segurança ...........................................................................................................56 Segurança .........................................................................................................................................58 Identidade do usuário .....................................................................................................................59 Ecossistema Hadoop ............................................................................................................................59 Sintetizando ............................................................................................................................................72 Referências bibliográficas ..................................................................................................................74 INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 5 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 5 12/06/19 15:04 Sumário Unidade 3 - Infraestrutura de banco de dados para Data Science Objetivos da unidade ............................................................................................................................76 Soluções Comerciais com o Hadoop ....................................................................................................................77Cloudera ...................................................................................................................................................................78 Hortonworks ............................................................................................................................................................79 MapR .........................................................................................................................................................................80 Pivotal ........................................................................................................................................................................81 Windows Azure HDInsight ..................................................................................................................................82 Databricks ................................................................................................................................................................83 Domino Data Labs .................................................................................................................................................84 Introdução ao Apache Spark ...................................................................................................................................85 Spark Framework ........................................................................................................................................................88 Spark x Hadoop ............................................................................................................................................................90 Apache TEZ ....................................................................................................................................................................92 Apache STORM ............................................................................................................................................................93 Banco de dados NoSQL .............................................................................................................................................95 MongoDB........................................................................................................................................................................96 Cassandra ................................................................................................................................................................98 CouchDB ..................................................................................................................................................................99 Sintetizando .................................................................................................................................................................104 Referências bibliográficas .....................................................................................................................................105 INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 6 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 6 12/06/19 15:04 Sumário Unidade 4 - Infraestrutura de bancos de dados para Data Science Objetivos da unidade ..........................................................................................................................108 Introdução ao Cloud Computing .......................................................................................................109 Fundamentos de Cloud Computing ...................................................................................................109 Virtualização ....................................................................................................................................109 Computação distribuída .................................................................................................................111 Armazenamento distribuído (storage) .........................................................................................114 Automação .......................................................................................................................................117 Estrutura de cloud em contêineres ..............................................................................................119 Arquitetura de Cloud Computing ..................................................................................................119 Conceitos básicos, terminologias e modelos de serviços ..........................................................120 Private cloud ....................................................................................................................................120 Public cloud .....................................................................................................................................120 Hybrid cloud .....................................................................................................................................121 Community cloud .............................................................................................................................121 A importância do cloud no cenário atual .......................................................................................122 Características do Cloud Computing ...............................................................................................123 Tipos de Cloud Computing .............................................................................................................124 Serviços em Cloud Computing para análise de Big Data ............................................................126 INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 7 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 7 12/06/19 15:04 Aspectos de implementação, segurança, armazenamento, custo/preço, qualidade de serviço e SLA ..................................................................................................................................................... 128 Implementação ................................................................................................................................129 Segurança ........................................................................................................................................130 Custo/preço ......................................................................................................................................132 Qualidade de serviços ....................................................................................................................135 SLA ....................................................................................................................................................135 Sintetizando ..........................................................................................................................................137 Referências bibliográficas ................................................................................................................138 INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 8 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 8 12/06/19 15:04 INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 9 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 9 12/06/19 15:04 A humanidade nunca produziu tanta informação como nesta era em que vivemos. Ao mes- mo tempo que este conteúdo está disponível através de inúmeras formas de acesso como redes socias, sites de notícias, vídeos on-line, podcasts, sites especializados, sites de governos com informações públicas, o que fazer com tanta informação? No contexto corporativo, podemos encontrar softwares e plataformas on-line de IoT (inter- net of things: internet das coisas), informações geradas por equipamentos e também de usos (logs)de aplicações legadas, dados federados de outras fontes externas tais como notícias, cotações de moedas e ações de bolsa de valores do mundo todo, previsão do tempo, e tudo aquilo que abrange o escopo dessa disciplina: a análise científi ca de dados. Com essa explosão de dados, muitas oportunidades podem ser encontradas: novos negó- cios podem ser criados, novas soluções para problemas que eram até então muito difíceis de serem resolvidos, oportunidades de redução de custos operacionais ou aperfeiçoamento de processos existentes. As plataformas mais modernas de análise científi ca de dados em cooperação com estrutu- ras de Big Data em cloud, são apropriadas na obtenção, transformação, análise e operacionali- zação de um grande volume de informações e descobertas que podem gerar valiosos resulta- dos de negócio no mundo corporativo. Apresentação INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 10 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 10 12/06/19 15:04 Dedicado à minha família: minha esposa Patricia e minha fi lha Alice, que tanto me fazem bem, que são o motivo da minha dedicação ao trabalho, ao estudo e a tudo que faço. Abrimos mão do tempo juntos para que eu pudesse me dedicar a esta obra, mas sabemos que estamos gerando uma semente para que novos frutos possam ser gerados. Alguém um dia disse: “Podemos contar quantas sementes tem uma maçã, mas não podemos contar quantas maçãs serão geradas por uma semente”. É o que sinto por este trabalho, e mais ainda por minha família. O Professor Pávio Domiciano Muniz é pós-gra- duado em MBA em Business Intelligence pelo Senac (2004), em Administração Industrial pela Fundação Vanzolini (1996), e é tecnólogo em Processamento de Dados pela Universidade Mackenzie (1991). Atua no mercado de TI há mais de 30 anos, trabalhou com desenvolvimento de sistemas, banco de dados orientado a objetos, inteligên- cia artifi cial, e atualmente aplica seus conhe- cimentos em operações de serviço em uma multinacional como gerente sênior, além de participar de um grupo de estudos do HDI – WAB – Workplace Advisory Board. Currículo Lattes: http://lattes.cnpq.br/4835454341314146 A autora INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 11 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 11 12/06/19 15:04 INTRODUÇÃO À INFRAESTRUTURA DE DATA SCIENCE 1 UNIDADE Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 12 12/06/19 15:05 Objetivos da unidade Tópicos de estudo Entendimento do contexto e objetivos das infraestruturas de Data Science; Conhecimento das soluções e mercado das soluções de infraestrutura de Data Science; Identificar as diferenças das soluções e principais utilizações. Utilização das ferramentas nos pro- cessos de administração de empresas O que é Big Data, seu histórico e principais desafios Como o Big Data se parece Volume/velocidade/variedade/vera- cidade/valor Visão geral sobre ambiente Big Data Como é composto um ambiente de Big Data Infraestrutura tecnológica: plata- formas, linguagem e ambiente As linguagens que podem ser usa- das com Big Data Como deve ser um ambiente apro- priado para Big Data O que é MapReduce O que é HDFS Infraestrutura para Data Science Como é composto um ambiente de Big Data Capacidade de processamento Treinamento de modelos analíticos Tecnologias para coleta, armazena- mento, análise e visualização de dados Tecnologias e ferramentas de cole- ta de dados Tecnologias e ferramentas de ar- mazenamento de dados Ferramentas de análise de dados Ferramentas de visualização de dados INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 13 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 13 12/06/19 15:05 Utilização das ferramentas nos processos de admi- nistração de empresas O mundo corporativo está vivendo uma nova Revolução Industrial baseada na informação e na disponibilidade de tantos dados, que é quase impossível processar todos eles. Não há capacidade humana sufi ciente para processar tudo que é gerado e está disponível na internet. Esses dados crescem a cada dia, sendo o motivo do crescimento das ferramentas de Data Science, ou Ciência de Dados. São soluções criadas há décadas, mas que agora estão disponí- veis em diversas plataformas e soluções, e, ainda, distribuídas de forma livre, fáceis de integrar à sistemas corporativos. Isso, combinado com a computação em nuvem, onde a interligação de soluções e disponibilidade de recursos computacionais estão se tornando quase ilimitadas, aumenta a capacidade das empresas na utilização de algoritmos avançados de aprendizado de máquina (Machine Learning) e aprendizado profundo (Deep Learning). Estas tecnologias estão sendo utilizadas nas empresas para: identifi cação de comportamen- to de clientes em relação à compras (quando, como, motivação, perfi l, tendências), melhoria da qualidade de atendimento a clientes como os de bancos (estamos assistindo às propagandas de atendentes virtuais como sendo atendentes de grandes bancos), análise de comportamen- to de mercado para transações automatizadas de ações em bolsas de valores, análise de logs de aplicações combinadas com monitoração de indicadores de infraestrutura para identifi car anomalias de segurança, desvio de informações, ataques de rackers ou antecipação de falhas, e também novos negócios na era digital, como foi o surgimento das redes sociais, e empresas totalmente digitais como Uber, AirBnb, Netfl ix, Google. O que é Big Data, seu histórico e principais desafios Big Data é o dado que excede a capacidade de processamento dos sistemas convencionais de computação. Ele é grande, se move rápido, ou não se adere às estruturas das arquiteturas de banco de dados, sejam eles do tipo relacional ou tradicionais. Para se obter valor deste dado, deve-se lançar mão de métodos alternativos de processamento. O surgimento dos métodos de processamento em Big Data começou com os problemas enfrentados por corporações líderes em seus mercados que estressaram os métodos, hoje considerados tradicionais, de manipulação de dados. Podemos citar o Walmart e o Google como precursores que investiram muito em novas formas e abordagens de processar Big Data e abriram o caminho para a criação de plataformas robustas, muito mais baratas e agora dis- poníveis para Cloud Computing. Estas soluções podem ser encontradas no formato de Open INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 14 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 14 12/06/19 15:05 Source, ou modelos comerciais de consumo, permitindo que o mercado usufrua desta tecnolo- gia e aplique em seus negócios de forma mais rápida. O valor de negócio do Big Data está baseado em dois pilares: uso analítico e criação de novos produtos. O uso analítico do Big Data pode revelar ideias (insights) escondidas pelos dados, exigindo um esforço custoso de processamento, como, por exemplo, a infl uência dos relacionamentos (amigos, companheiros, parentes, etc.) no comportamento de consumidores, revelados por intermédio de transações de compradores na mesma região geográfi ca e categoria social, e ainda em redes sociais. O uso analítico do Big Data compreende, também, a capacidade de processar cada item de dado em seu devido tempo consumindo processamento adequado para investigar as relações entre variáveis, em contraste com a natureza estática de envio de relatórios. Temos visto muitas startups sendo criadas a partir da capacidade de processamento de Big Data. O exemplo do aplicativo Waze, que criou uma rede social de trânsito, só se tornou possível através da capacidade de processar dados de geolocalização de celulares, podendo interpretar o trânsito por vias, identifi cando rotas alternativas e incluindo, ainda, dados imputados diretamente por usuários a respeito de desvios, acidentes, sinalizações, etc. O volume de dadosprocessados é espantoso e, durante o percurso do usuário, ainda é possível mudar a rota em função de novos acontecimentos. As fi ntechs (startups de tecnologia na área fi nanceira) também se aproveitam das tecnologias de Big Data para criar novos produtos, algumas vezes mais simplifi cados, mais baratos, sem agências físicas e mais ágeis que grandes instituições fi nanceiras, facilitando empréstimos com análise profunda de dados de comportamento, seguros customizados por perfi s de apólices individualizadas, etc. O que se faz emergencial no uso de Big Data pelas corporações é a palavra agilidade. Para se benefi ciarem de maneira bem-sucedida do valor do Big Data, uma abordagem exploratória e experimental é essencial, bem como vemos nas startups. Como o Big Data se parece Um exemplo muito claro de como o Big Data se parece é o que utilizamos todos os dias: o Google. Quando buscamos algo na internet, estamos usando uma das mais avançadas tecnologias de Big Data. Imagine poder armazenar todas as páginas web do mundo de forma estruturada e ser possível mostrar bilhões de resultados precisos de qualquer informação contida nestas páginas em menos de um segundo? Para que possamos caracterizar de uma forma mais exata, podemos usar os “Vs” do Big Data: volume, velocidade, variedade, veracidade e valor. Há variações da quantidade de Vs do Big Data, aqui usamos as principais, mas há quem contabilize até 10 Vs. INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 15 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 15 12/06/19 15:05 Volume/velocidade/variedade/veracidade/valor Volume: o benefício extraído da capacidade de processar grandes volumes de dados é o principal atrativo do Big Data Analytics. Esses grandes volumes, por sua vez, exigem melho- res modelos matemáticos: cálculos simples podem ser inefetivos. Se for possível criar uma estimativa de vendas considerando 300 fatores ao invés de seis, se faz mais oportuno prever uma demanda mais exata? Esse volume representa o desafi o mais imediato da infraestrutu- ra de TI atual. Isso exige um armazenamento escalável, uma abordagem de consulta (query) distribuída, não em formato de logs, mas de forma que possibilite o processamento. Também se faz necessário lançar mão da capacidade atual de processamento paralelo, os armazéns de dados (Data Warehouses). E não podemos nos esquecer, também, dos dados não estrutu- rados: áudios, textos, páginas web, logs, dados de geolocalização; que podem ser necessá- rios para dar sentido a outros dados. Velocidade: a importância da velocidade dos dados – a forma drástica de como os dados fl uem em uma organização – tem seguido um padrão similar ao volume. Alguns problemas que eram restritos a um determinado segmento de mercado, agora se apresentam para um grupo maior. As empresas do tipo traders se benefi ciaram das informações que trafegam entre empresas do mercado fi nanceiro e, agora, isso está à disposição de uma gama maior de empresas. A era dos smartphones trouxe para a internet o dado instantâneo. Tendências provindas de conteúdo de mensagens, as famosas hashtags, podem ser “ouvidas” e analisa- das, identifi cando oportunidade de negócios. Os fl uxos de dados também são um desafi o: vídeos on-line, streaming de vídeos, fotos com geolocalização, áudios e etc. Não é somente a velocidade que importa, mas, também, o poder de armazenar para processar posterior- mente ou em batchs. Hoje é possível analisar como é o comportamento de pessoas quando assistem a um vídeo na internet, suas reações e como o vídeo pode ser melhorado, minuto a minuto. Muitas das tecnologias de processamento de dados em tempo real são oriundas de jogos on-line que geraram muitas soluções para este tipo de problema. Variedade: raramente os dados aparecem de forma estruturada e em uma ordem per- feitamente pronta para serem processados. Nunca caem prontos em um modelo relacional. Eles podem ser: textos de uma rede social (ou mais que uma), imagens, ou strings vindas de sensores diversos. Assim como os smartphones trouxeram ótimas informações, também trouxeram sistemas operacionais, browsers, modelos e interfaces diferentes aumentado, assim, a variedade de formatos dos dados, inclusive em línguas diferentes. Um grande tra- balho do Big Data é gerar sentido para o dado. Como praticamente tudo estará nele no con- texto corporativo, é necessário saber distinguir para o negócio se Bom Jesus é uma cidade INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 16 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 16 12/06/19 15:05 do Nordeste (PB, PI e RN) ou do Sul (RS e SC), pois é a cidade com mais homônimos do Brasil ou, ainda, se é só uma frase nas redes sociais. Um ponto importante de mudança que o con- ceito de variedade insere no Big Data é: quando puder, armazene tudo, uma vez que haverá informações valiosas naquilo que agora parece não ser necessário. Vejamos que a prioridade é manter, para que posteriormente haja interpretação e exploração dos dados, e manter de uma forma íntegra. Veracidade: esta é uma das características que podem parecer contraditórias do Big Data. Como as características de volume, velocidade e variedade aumentam, a confiabilidade pode, pelo contrário, diminuir. A veracidade, neste caso, se refere mais à proveniência ou à confiabilidade da fonte de dados, ao seu contexto e ao quão significativa é a análise basea- da nele, pois como o Big Data permite que busquemos os dados da sua fonte original, sem manipulação, em seu estado original, estamos aumentando a sua veracidade. Por exemplo, considere um conjunto de dados de estatísticas sobre o que as pessoas compram em res- taurantes e os preços desses itens nos últimos cinco anos. Podemos perguntar: quem criou a fonte? Que metodologia eles seguiram na coleta dos dados? Foram apenas certas cozinhas ou certos tipos de restaurantes incluídos? Os criadores de dados resumem as informações? As informações foram editadas ou modificadas por qualquer outra pessoa? As respostas a essas perguntas são necessárias para determinar a veracidade dessas informações. O co- nhecimento da veracidade dos dados, por sua vez, nos ajuda a entender melhor os riscos associados à análise e às decisões de negócios com base nesse conjunto de dados específico. Por outro lado, podemos mesclar informações de outras fontes para contrapor os dados, até chegar a um modelo mais confiável. Um exemplo é o Waze, que pode comparar informações dadas por mais de um usuário sobre um acidente, aumentando o grau de veracidade para então divulgar a informação para outros usuários. Valor: tudo começa com o problema a ser resolvido, este deve ser relevan- te e suficientemente recompensador para que o esforço a ser empreendido seja recompensado. É o famoso ROI (Return on Investment) pois, como já vimos, é muito fácil crescer o ambiente de Big Data coletando grandes volumes de dados. Estes volumes de dados, por sua vez, custam muita infraestrutura e fazer isso sem perder o foco no valor a ser entregue pela solução é um risco que ninguém quer ter. O que podemos concluir é que o Big Data pode ampliar a capacidade das corporações de processar seus dados de forma a gerar flexibilidade e agilidade em seus negócios. INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 17 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 17 12/06/19 15:05 Visão geral sobre ambiente Big Data O ambiente de Big Data é composto de subprocessos que possuem características distintas, e respectivas ferramentas para permitir tudo o que promete em termos de processamento computacional. À primeira vista, pode se achar um certo exagero na divisão destes componen- tes, mas o propósito é claro: escalabilidade. Quanto maior for o volume de dados, mais claro fi cará o papel de cada componente. Figura 1. Big Data & AI Landscape 2018. Fonte: Matt Turck. Acesso em:15/03/2019. O nosso foco será mantido nas ferramentas Open Source que também turbinam as soluções pro- prietárias, tais como Pivotal, que usa Hadoop e Cloud Foundry. Como é composto um ambiente de Big Data As soluções de Big Data seguem uma arquitetura básica de ambiente muito semelhante à de BI (Business Intelligence), composta de um ciclo de vida muito claro: INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 18 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 18 12/06/19 15:05 DIAGRAMA 1. CICLO DE VIDA DAS SOLUÇÕES DE BIG DATA Cada uma dessas fases possui ferramentas e tecnologias específi cas com variações de de- sempenho e objetivos que devem ser analisa- dos dependendo do problema em questão. Como podemos observar, o Data Science se encontra com o Big Data na parte de aná- lise & modelagem de dados, lançando mão de mineração de dados, inteligência artifi cial, Machine Learning, Deep Learning e também de recursos de visualização e compartilhamento de dados. Com o intuito de ilustração, podemos exemplifi car esse ambiente no uso de uma corpora- ção na área de varejo: DIAGRAMA 2. AMBIENTE BIG DATA EM UMA CORPORAÇÃO NA ÁREA DE VAREJO Infraestrutura tecnológica: plataformas, linguagem e ambiente Quais são as plataformas disponíveis? As plataformas disponíveis de Big Data podem ser separadas por sua função: FONTE DE DADOS ARMAZENAMENTO & TRANSFORMAÇÃO ANÁLISE & MODELAGEM VISUALIZAÇÃO & COMPARTILHAMENTOAQUISIÇÕES Dados dos revendedores Dados dos fornecedores Dados do mercado Dados dos compradores FONTE DE DADOS Modelos de compra Comportamento de sazonalidades Planejamento de compra Sensibilidade de preços Efetividade promocional ANÁLISE & MODELAGEM Integração de dados Enriquecimento de dados Armazenamento local e/ou em cloud Controle de segurança e acesso ARMAZENAMENTO & TRANSFORMAÇÃO Dados de notas fi scais Localização de lojas, clientes e fornecedores Dados de mídias sociais Informações de crédito Sensores, caixas, câmeras AQUISIÇÕES Marketing: novas campanhas e sensibilidade de preços Compras: negociações e planejamentos Gestão: planejamento holístico VISUALIZAÇÃO & COMPARTILHAMENTO INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 19 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 19 12/06/19 15:06 DIAGRAMA 3: FUNÇÕES DAS PLATAFORMAS DE BIG DATA Podemos identifi car as ferramentas que aparecem mais de uma vez se posicionando com versatilidade e ganhando mais visibilidade no mercado, tais como o Hadoop e seu ecossiste- ma, e também a ferramenta Spark. As linguagens que podem ser usadas com Big Data Pensar em linguagem de programação para Big Data deve ser uma preocupação? Afi nal, não estamos falando de dados? Para respondermos a essas perguntas precisamos nos aprofundar nos processos e suas ferramentas. A escolha da solução acarretará em uma capacitação de mão de obra e, dependendo dos recursos já disponíveis, pode ser um fator importante na es- colha. Contudo, devido à complexidade e à relativa novidade dos assuntos para as empresas, poderá haver a necessidade de adaptação à novas linguagens. Para cada ciclo poderá haver uma ferramenta e uma linguagem específi ca. Citaremos al- guns exemplos, sem esgotar todas as opções e variações: • Aquisição: Pig, SQL, XML, VXML, Java, JavaScript, C++, Python; • Armazenamento & transformação: Hive, Java, Perl, TXL, XSLT, xQuery, xPath; • Análise & modelagem: Python, R, Java, JavaScript (nodeJS), Go; • Visualização & compartilhamento: R, Python, Java, JavaScript, NodeJS, GO, etc. Hadoop – HDFS Hadoop – MapReduce Yarn Apache Kylin Flink TEZ Mesos Spark CDAP FRAMEWORK TensorFlow Scikit Learn Open AI MS Cognitive Toolkit Apache Singa Theano Torch Keras DL4J AI/ML/DEEP LEARNING Python R Scalab NumPy SciPY Julia ESTATÍSTICA Talend Apache Zookeeper Oozie Apache Ambari Apache Airfl ow COORDENAÇÃO Jupyter Zeppelin Anaconda COLABORAÇÃO Cassandra NIFI MongoDB CouchDB Flume SCIDB OpenTSDB Riak Apache Hibase Cloud Spanner Accumulo DATA ACCESS BeakerX Rodeo VISUALIZAÇÃO SparkSQL Hive Presto Apache DRILL SlamData Google Cloud Data Flow Flink QUERY/DATAFLOW Elasticsearch Kibana Sentry Logstash Prometheus MONITAÇÕES E LOGS Spark Apex Flink Beam Kafka Druid Storm STREAMING Apache Ranger KNOX Sentry SEGURANÇA INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 20 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 20 12/06/19 15:06 Destacamos aqui duas linguagens: Pig e Hive. Apache Pig é uma plataforma para a análise de grandes conjuntos de dados que consiste em uma linguagem de alto nível para expressar programas de análise de dados juntamente com a infraestrutura para avaliar esses programas. A propriedade mais importante dos pro- gramas em Pig é que sua estrutura é favorável ao processamento de paralelização que, por sua vez, permite que eles manipulem conjuntos de dados muito grandes. No momento, a camada de infraestrutura do Pig consiste em um compilador que produz sequências de programas Ma- pReduce, para os quais já existem implementações paralelas de grande escala (por exemplo, o subprojeto Hadoop). A camada de linguagem do Pig consiste atualmente em uma linguagem textual chamada Pig Latin, que tem as seguintes propriedades-chave: • Facilidade de programação: é essencial para alcançar a execução paralela de simples ta- refas de análise de dados advindas de paralelismo complexo. Tarefas complexas compostas de várias transformações de dados inter-relacionados são explicitamente codificadas como sequências de fluxo de dados fáceis de escrever, entender e manter; • Oportunidades de otimização: a forma como as tarefas são codificadas permite que o sistema otimize sua execução automaticamente, bem como que o usuário se concentre na semântica ao invés da eficiência; • Extensibilidade: os usuários podem criar suas próprias funções para fazer o processamen- to de propósito especial. Exemplo de código em Apache Pig no formato de script: EXEMPLIFICANDO A = LOAD ‘aluno’ USING PigStorage() AS (nome:chararray, idade:int, pontuação:float); B = FOREACH A GENERATE nome; DUMP B; (João) (Maria) (William) (José) A linguagem do Apache Hive facilita a leitura, a escrita e o gerenciamento de grandes Da- taSets que residem em armazenamento distribuído, além de facilitar a consulta usando a sintaxe SQL. Construído em cima do Apache Hadoop, o Hive fornece os seguintes recursos: • Ferramentas para permitir o acesso fácil aos dados via SQL e, consequentemente, às tarefas de armazenamento de dados como extração/transformação/carga (ETL), relató- rios e análise de dados; INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 21 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 21 12/06/19 15:06 • Um mecanismo para impor estrutura em uma variedade de formatos de dados; • Acesso a arquivos armazenados diretamente no Apache HDFS ou em outros sistemas de armazenamento de dados, como o Apache Hbase; • Execução de consultas via Apache Tez, Apache Spark ou MapReduce; • Linguagem processual com HPL-SQL; • Recuperação em menos de segundos via consulta Hive LLAP, Apache YARN e Apache Slider. O Hive fornece a funcionalidade SQL padrão, incluindo muitos dos recursos posteriores do SQL: 2003, SQL: 2011 e SQL: 2016 para análise. SQL do Hive também pode ser estendido com o código do usuário por meio de funções defi nidas pelo usuário (UDFs), agregados defi nidos pelo usuário (UDAFs) e funções de tabela defi nidas pelo usuário (UDTFs). O Hive não foi projetado para cargas de trabalho de processamento de transações on-line (OLTP). Ele é melhor usado para tarefas tradicionais de armazenamento de dados. Exemplo de código em Hive: EXEMPLIFICANDO CREATE TABLE tab1 (col1 int, col2 int) PARTITIONED BY (col3 int) STORED AS ORC; LOAD DATA LOCAL INPATH ‘fi lepath’ INTO TABLE tab1 Como deve ser um ambiente apropriadopara Big Data O ambiente computacional destinado às soluções de Big Data deve ser fl exível, isto é, capaz de crescer em processamento e armazenamento na velocidade necessária para o negócio e, ao mesmo tempo, fornecer acesso aos diferentes propósitos, de diferentes áreas. As tecno- logias de infraestrutura construídas para suportar as aplicações em Cloud Computing são as recomendadas para o Big Data, na verdade, elas foram construídas para este propósito. Os desafi os enfrentados no início do e-Commerce pela Amazon e com os sites de busca Yahoo e Google pavimentaram o caminho para as tecnologias que hoje são mandatórias para qualquer empresa que necessite do Big Data. Este ambiente pode ser criado de duas formas: dentro as instalações das empresas (in house) ou numa estrutura em nuvem (in cloud). Os principais motivos de escolha estão mais relacionados às políticas internas das corporações do que em termos de segurança e desempenho, ou, ainda, em função de investimentos em infraestrutu- ra, o que, para alguns casos, um cenário pode ser mais vantajoso que o outro. Também há a possibilidade de se criar um ambiente híbrido que possa ser transferido de um ambiente para outro entre local e em cloud, bem como optar por desenvolver em um e colocar em produção INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 22 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 22 12/06/19 15:06 no outro. Uma estratégia adicional é poder utilizar temporariamente o ambiente em cloud. Isso acontece em empresas de mineração ou exploração que necessitam de uma capacidade muito grande de processamento por um período determinado e, depois que os dados ou mo- delos foram gerados, podem abrir mão dos recursos. A espinha dorsal de todo o ambiente de Big Data é o Apache Hadoop, que é capaz de pro- cessar uma quantidade enorme (100 gigabytes ou mais) de dados com baixo custo, e com uma fl exibilidade de infraestrutura. O ambiente do Hadoop implementa alguns diferenciais tecno- lógicos que precisam ser entendidos, que são: MapReduce e o HDFS. O que é MapReduce O Hadoop MapReduce é uma estrutura de software para o desenvolvimento de apli- cações que processam grandes volumes de dados, chegando a terabytes, com processa- mento distribuído em equipamentos de alta disponibilidade e formando grandes clusters de hardware (com milhares de nós), constituí- do por equipamentos comuns de uma forma mais acessível e ainda sendo resiliente no que diz respeito à tolerância a falhas. Uma aplicação ou job do MapReduce normalmente divide o conjunto de dados de entrada em blocos independentes de processamento que são enviados às tarefas em paralelo, para que seja possível o processamento simultâneo, entre os nós do cluster, formando como se fosse um mapa de onde se tirou o nome MapReduce. Após o processamento das tarefas, a es- trutura criada classifi ca os resultados obtidos desses mapas, que são, em seguida, transferidos para a entrada de outros tipos de tarefas, chamadas de redução (reduce task). A redução é um processamento que “quebra” os resultados dos mapas em quantidades de informação (tuplas) menores para facilitar o processamento dos dados resultantes. Visto que esses resultados serão processados em visualizações e aplicações em batch, necessitam de um mecanismo de controle da quantidade de dados resultantes, uma vez que não conseguem manipular tera- bytes de resultados. Normalmente, a entrada e a saída do trabalho são armazenadas em um sistema de arquivos de alta capacidade. O framework (o conjunto de ferramentas interligados) cuida das tarefas de agendamento de processos, monitorando-as e reexecutando as tarefas que por acaso estejam com falha. INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 23 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 23 12/06/19 15:06 O MapReduce possui metadados que identificam a localização dos dados, e envia o proces- samento para o mais próximo possível do dado. Normalmente, os servidores de processamen- to e os servidores de armazenamento são os mesmos, acelerando o processamento como um todo. Ou seja, a estrutura MapReduce e o sistema de arquivos distribuído do Hadoop (o HDFS) são executados no mesmo conjunto de nós do cluster. Essa configuração permite que a estru- tura de orquestração dos processos programe de maneira efetiva as tarefas nos nós onde os dados já estão presentes, resultando em uma ampliação da capacidade de processamento em paralelo e o aproveitamento da estrutura “clusterizada”. A estrutura MapReduce é formada por um único componente mestre que é chamado em inglês de JobTracker e ainda um slave TaskTracker por nó de cluster. O componente mestre é responsável por agendar e organizar as tarefas dos componentes dos jobs nos slaves, monito- rando-os e reexecutando as tarefas com falha. Os slaves executam as tarefas conforme orien- tado pelo mestre e reportando os status das tarefas sob sua responsabilidade. É possível que os aplicativos ou programas desenvolvidos em MapReduce especifiquem os locais de entrada/saída de dados, forneçam o código que fará o mapeamento e a redução dos dados em formato de funções por meio de implementações de interfaces ou, ainda, através de classes abstratas criadas em linguagens específicas convertidas em Java, como é o caso do Scala usado pelo Saprk. O processo que coordena os jobs do Hadoop, em seguida, submete o traba- lho (JAR/executável etc.) e configura o JobTracker para assumir a responsabilidade de distribuir o componente de software para os slaves, agendar as tarefas e monitorá-las, fornecendo status e informações de diagnóstico para o componente coordenador de trabalho do Hadoop. Figura 2. Diagrama do MapReduce. Fonte: Wikimedia. Acesso em: 18/03/2019. (Adaptado). RESULTADOS INTERMEDIÁRIOS REDUÇÃO ARQUIVOS DE SAÍDA D MAP MAP MAP MAP A T A INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 24 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 24 12/06/19 15:06 O que é HDFS? O HDFS é processo ou componente do Hadoop responsável por todo o armazenamento de dados distribuídos, tolerante a falhas, essencial para o uso dos aplicativos que rodam no Ha- doop. Um cluster HDFS consiste, principalmente, em um NameNode (nó de servidor em cluster) que gerencia os metadados do sistema de arquivos e DataNodes que armazenam os dados reais. As características principais do HDFS são: • O HDFS é altamente confi gurável, e funciona muito parecido com a forma padrão de arquivos de sistemas operacionais do tipo Unix/Linux, e bem adaptado para muitas instalações. Na maioria das vezes, a confi guração precisa ser ajustada somente em casos de clusters muito grandes; • O NameNode e DataNodes foram desenvolvidos tendo em mente o funcionamento de servidores web, tornando ainda mais fácil a administração e verifi cação do status atual da saúde do cluster; • O HDFS possui permissões de acesso aos arquivos e autenticação semelhantes ao sistema operacional Unix/Linux, facilitando o trabalho dos administradores e desenvolvedores; • Os metadados conseguem o reconhecimento ao nível do rack para levar em conta o local físico de um nó de cluster ao agendar tarefas e alocar armazenamento facilitando, novamente, a gestão do ambiente; • Safemode: um modo de funcionamento que permite o acesso administrativo para manu- tenção, sem afetar outros componentes do cluster; • fsck: um utilitário de verifi cação para diagnosticar a saúde do sistema de arquivos, para encontrar arquivos ausentes ou blocos de dados e atualização de metadados; • fetchdt: um utilitário para buscar DelegationToken e armazená-lo em um arquivo no sistema local. O DelegationToken é a forma de garantir a segurança das transações no Hadoop, o token é uma chave única criada pelo NameNode para efetuar a comunicação com o DataNode. É uma espécie de senha de acesso concedida durante uma sessão de processamentodo MapReduce; • Rebalancer: ferramenta para equilibrar as cargas do cluster quando os dados são distribuí- dos de forma desigual entre os DataNodes. Ele reorganiza os dados para distribuir o processa- mento de forma mais igualitária; • Upgrade e reversão: o HDFS possui a característica de guardar uma versão do seu estado, antes ou após uma atualização de software, sendo possível reverter para o estado armazena- do antes da atualização em caso de problemas inesperados; • NameNode secundário: é um segundo servidor que executa pontos de verifi cação periodi- camente do namespace e mantém o tamanho dos arquivos que possuem o log das modifi ca- ções do HDFS dentro dos parâmetros determinados e limítrofes no NameNode. INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 25 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 25 12/06/19 15:06 Com todos esses componentes interligados, o HDFS fornece uma solução de tolerância a falhas, disponibilização de acesso a fluxo de dados (data stream), grandes conjuntos de dados, um modelo de acesso simplificado e coerente com as linguagens de programação mais uti- lizadas, e realmente consegue implantar o conceito de que “mover o processamento é mais barato que mover os dados”. Um outro ponto importante é a portabilidade entre hardwares e softwares de plataformas heterogêneas. Figura 3. Arquitetura do HDFS. Fonte: Acesso em: 18/03/2019. Outros importantes componentes que fazem parte do ecossistema do Apache Hadoop, ain- da não citados: • Ambari: componente para provisionamento, gerenciamento e monitoração; • Flume: coleta e importação de dados de logs de aplicações e eventos; • Hbase: banco de dados que suporte recursos de grandes tabelas, muito importante para Data Science; • HCatalog: torna acessível através do Hive, Pig e MapReduce o esquema e tipos de dados; • Mahout: biblioteca de algoritmos de Machine Learning e Data Mining; • Oozie: orquestrador e gerenciamento de workflow; • Sqoop: importa dados de bandos relacionais; • Whirr: provisionamento de cluster independentemente do tipo de cloud; • Zookeeper: coordenação e gerenciamento de configuração; • Avro: sistema de serialização de dados; • Cassandra: um banco de dados multimestre escalável e sem pontos únicos de falha; Arquitetura do HDFS Metadata (nome, réplicas, ...): /home/foo/data, 3, ... NamenodeMetadata operações Cliente Cliente Leitura Datanodes Rack 1 Rack 2 Escrita Replicação Bloco operações Datanodes Blocos INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 26 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 26 12/06/19 15:06 • Spark: um mecanismo de computação rápida e geral para dados do Hadoop. O Spark fornece um modelo de programação simples e expressivo que suporta uma ampla gama de aplicações, incluindo ETL, Machine Learning, processamento de fl uxo e computação gráfi ca. Infraestrutura para Data Science Não há propósito de se armazenar grandes volumes de dados sem poder tirar vanta- gem competitiva deles e, nesse ponto, é que entra em cena a Ciência de Dados ou Data Science. É por intermédio dessa tecnologia que se torna viável a descoberta de insights ou pérolas de informação que dão sentido às inovações de mercado. A Ciência de Dados é uma disciplina que envolve tudo o que se identifi ca com a limpeza de dados, planejamento e investigação de dados não estruturados e organizados. Esta é a análise & modelagem de dados. A Ciência de Dados lança mão de sequência de aritmética, estatísticas, programação, resolução de problemas, apreendendo dados de maneiras rápidas, e ainda a capa- cidade de considerar as coisas de uma forma inesperada, além da ação de ajuste dos dados. Os cientistas de dados interagem com a plataforma do Hadoop de duas formas: como um cientista de dados e/ou como engenheiro Hadoop. A maior parte do tempo gasto será em preparação dos dados que pode chegar a 80% da dedicação do cientista de dados. Essa fase exige interações que se repetem. Até chegar aos resultados esperados, podemos voltar ao início inúmeras vezes. Maior vantagem para as plataformas fl exíveis. Integração entre Data Science e Big Data Defi nir uma única ferramenta de Data Science é uma tarefa com grandes desafi os, pois cada tipo de problema pode trazer diferentes necessidades, portanto, várias ferramentas podem ser conectadas ao Big Data para diferentes propósitos. Podemos separar as ferramentas em analíticas, para o entendimento dos dados, e as preditivas. A primeira procura o entendi- mento dos dados, suas relações, suas abrangências, e a segunda o comportamento dos dados e sua previsibilidade. Aqui entra em ação a matemática. Para os dois casos é fundamental a utilização de algoritmos matemáticos estatísticos e também de Machine Learning. Nada melhor que usarmos um exemplo para esclarecer. Usemos a necessidade de enten- der porque uma empresa perde clientes. Esta situação se chama índice de CHURN, ou seja, o percentual de perda de clientes por um período. Medir esta informação é importante para se comparar com o mercado. Agora, quão bom seria ter um modelo de comportamento que pudesse analisar quando se aproxima o momento em que um cliente está prestes a deixar a INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 27 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 27 12/06/19 15:06 empresa? Este modelo pode ser criado usando uma estrutura de Machine Learning que pode ser “treinado” para responder a probabilidade de saída de todos os clientes, ou até mesmo ser executado a cada interação com o cliente, podendo indicar soluções possíveis para que o clien- te não cancele o relacionamento com a empresa. Este recurso é muito utilizado nas empresas de Telecom, onde milhões de clientes possuem contratos de serviço, onde a portabilidade torna a competição acirrada e, ao mesmo tempo, é humanamente impossível entender a situação e necessidade de cada cliente. Com a Ciência de Dados e o Big Data, podemos identifi car tipos de comportamentos agrupados (clusters), e com seus respectivos modelos preditivos. A grande vantagem aqui é poder usar os modelos para reduzir o índice de CHURN e obter os benefícios de negócios atrelados à manutenção de clientes. Em continuidade aos requisitos de negócio, também fi ca mais fácil alcançar um outro modelo de aplicação de Ciência de Dados, o NBA (Next Best Action), que procura entender qual é a melhor ação a ser tomada pele empresa a res- peito do cliente específi co, ampliando sua fi delidade, oferecendo novos produtos e serviços, readequando processos e retroalimentando informações. As tecnologias já permitem um aprendizado contínuo de máquina, onde as reações às ações tomadas são incluídas em novos treinamentos, ajustando a acuracidade de modelos de com- portamento. Tudo isso exige grande capacidade de processamento e armazenamento de dados. Capacidade de processamento Já está claro até este ponto a necessidade de uma capacidade de processamento dife- renciada para Big Data, não somente na arqui- tetura capaz de se utilizar de uma infraestru- tura de múltiplos clusters de processamento e armazenamento. Quando falamos em mode- lagem e criação de modelos matemáticos de comportamento, precisamos de muitos cál- culos executados em memória. Imaginemos o cálculo de consumo médio de banda de da- dos de todos os clientes de smartphones de uma empresa de Telecom? Contudo, este é um dado básico e cálculos mais complexos preci- sam ser feitos para os objetivos que precisam ser alcançados. INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 28 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 28 12/06/19 15:07 Mais uma vez o mercado de jogos criou uma estrada para os negócios: sua fome por proces- samentos gráfi cos desenvolveu processadores com funções matemáticas complexas embuti- das: as GPUs (Graphics Processing Units), que foram colocadas em placasde vídeo, aumentando a jogabilidade e permitindo gráfi cos em 3D estonteantes. Com a evolução dos ambientes de desenvolvimento em Cloud Computing, fi cou evidente que seria possível integrar hardware com mais GPUs para serem dedicados a serviços de cálculos matemáticos e o desenvolvimento de APIs para as bibliotecas de Ciência de Dados, acelerando muito os algoritmos de mineração e de Machine Learning, podendo chegar a 100 vezes mais rápido que CPUs comuns. Muitos enge- nheiros criaram clusters com placas de vídeo da fabricante NVIDIA e, por muito tempo, tinham uma capacidade de processamento a baixíssimo custo. De olho neste mercado, a NVIDIA co- meçou a mudar o foco do seu negócio, passou a licenciar suas placas de vídeo com cláusulas de multa pesadas para o uso em Data Centers, e criou uma frente de mercado para Machine e Deep Learning, incluindo plataformas de desenvolvimentos, serviços em cloud e novos tipos de licenciamento para Data Centers. As bibliotecas que podem intercambiar a utilização de CPUs ou GPUs são as mais indica- das, abrindo caminho para a evolução da plataforma para ambientes mais complexos. As principais bibliotecas híbridas: Keras, TensorFLow, Microsoft CNTK, Caff e2, Chainer, Pytorch, Theano, Dmlc Mxnet. Treinamento de modelos analíticos Quanto mais rápido for o treinamento do modelo, mais rápido é o seu teste e análise de sua efi ciência, não para ir para produção somente, mas se houver a necessidade de aprimoramento, todo o processo precisa ser repetido e muitas vezes os dados de entrada serem modifi cados ou novos dados incluídos, aumentando os volumes de processamento; o que pode exigir mais processamento a cada interação. Pode ser muito interessante a contratação de soluções em cloud com GPUs para os processos de criação de modelos, enquanto se está descobrindo ou testando as diferentes estratégias de soluções de problemas. As formas de usarmos as GPUs podem ser com placas de processamento adicionadas aos servidores locais, aquisição de servidores e sistemas dese- nhados para Inteligência Artifi cial, ou serviços em cloud. INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 29 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 29 12/06/19 15:07 Fornecedores de GPUs Produto Graphcore Intelligence Processing Unit (IPU) IBM PowerAI Intel Xeon, FPGAs, NNP, Movidius VPU Nvidia Tesla GPU Wave Computing Datafl ow Processing (DPU) TABELA 1. FORNECEDORES POR TIPO DE SOLUÇÃO GraphcoreGraphcoreGraphcore IBM IBM Intel Nvidia Wave Computing Nvidia Wave ComputingWave ComputingWave ComputingWave Computing Intelligence Processing Unit (IPU)Intelligence Processing Unit (IPU)Intelligence Processing Unit (IPU)Intelligence Processing Unit (IPU) Xeon, FPGAs, NNP, Movidius VPU Intelligence Processing Unit (IPU) Xeon, FPGAs, NNP, Movidius VPU Intelligence Processing Unit (IPU) PowerAI Xeon, FPGAs, NNP, Movidius VPU Intelligence Processing Unit (IPU) PowerAI Xeon, FPGAs, NNP, Movidius VPU Intelligence Processing Unit (IPU) PowerAI Xeon, FPGAs, NNP, Movidius VPU Datafl ow Processing (DPU) Intelligence Processing Unit (IPU) Xeon, FPGAs, NNP, Movidius VPU Tesla GPU Datafl ow Processing (DPU) Intelligence Processing Unit (IPU) Xeon, FPGAs, NNP, Movidius VPU Tesla GPU Datafl ow Processing (DPU) Xeon, FPGAs, NNP, Movidius VPU Tesla GPU Datafl ow Processing (DPU) Xeon, FPGAs, NNP, Movidius VPU Datafl ow Processing (DPU) Xeon, FPGAs, NNP, Movidius VPU Datafl ow Processing (DPU)Datafl ow Processing (DPU)Datafl ow Processing (DPU) Fornecedores de sistemas de AI Produto Cray CS-Storm, XC Series Dell EMC Ready Solutions Exxact Exxact Tensor series HPE Apollo Systems IBM PowerAI Lambda Labs TensorBook, Quad e Blade Nvidia DGX Systems Wave Computing Wave Systems Cray Dell EMCDell EMC ExxactExxactExxact HPEHPE IBM Lambda LabsLambda LabsLambda LabsLambda Labs Nvidia Wave Computing Nvidia Wave ComputingWave Computing CS-Storm, XC Series Wave Computing CS-Storm, XC Series Wave Computing CS-Storm, XC Series Ready Solutions CS-Storm, XC Series Ready Solutions Exxact Tensor series CS-Storm, XC Series Ready Solutions Exxact Tensor series CS-Storm, XC Series Ready Solutions Exxact Tensor series Apollo Systems Ready Solutions Exxact Tensor series Apollo Systems Exxact Tensor series Apollo Systems TensorBook, Quad e Blade Exxact Tensor series Apollo Systems PowerAI TensorBook, Quad e Blade Apollo Systems PowerAI TensorBook, Quad e BladeTensorBook, Quad e Blade DGX Systems TensorBook, Quad e Blade DGX Systems Wave Systems TensorBook, Quad e Blade DGX Systems Wave Systems TensorBook, Quad e Blade DGX Systems Wave Systems TensorBook, Quad e Blade Wave SystemsWave Systems Fornecedores de Soluções em Cloud Produto Amazon Web Services (AWS) AWS Deep Learning, GPU e FPGA Google Cloud TPU e GPU IBM GPU cloud services Microsoft Azure Deep Learning VM Oracle Oracle Cloud Infrastructure Bare Metal GPU Amazon Web Services (AWS)Amazon Web Services (AWS)Amazon Web Services (AWS)Amazon Web Services (AWS)Amazon Web Services (AWS) Google Amazon Web Services (AWS) Google Amazon Web Services (AWS) IBM Amazon Web Services (AWS) Microsoft Microsoft Microsoft OracleOracle AWS Deep Learning, GPU e FPGAAWS Deep Learning, GPU e FPGAAWS Deep Learning, GPU e FPGAAWS Deep Learning, GPU e FPGAAWS Deep Learning, GPU e FPGA Cloud TPU e GPU AWS Deep Learning, GPU e FPGA Cloud TPU e GPU GPU cloud services Oracle Cloud Infrastructure Bare Metal GPU AWS Deep Learning, GPU e FPGA Cloud TPU e GPU GPU cloud services Azure Deep Learning VM Oracle Cloud Infrastructure Bare Metal GPU AWS Deep Learning, GPU e FPGA Cloud TPU e GPU GPU cloud services Azure Deep Learning VM Oracle Cloud Infrastructure Bare Metal GPU AWS Deep Learning, GPU e FPGA Cloud TPU e GPU GPU cloud services Azure Deep Learning VM Oracle Cloud Infrastructure Bare Metal GPU AWS Deep Learning, GPU e FPGA GPU cloud services Azure Deep Learning VM Oracle Cloud Infrastructure Bare Metal GPU GPU cloud services Azure Deep Learning VM Oracle Cloud Infrastructure Bare Metal GPU Azure Deep Learning VM Oracle Cloud Infrastructure Bare Metal GPU Azure Deep Learning VM Oracle Cloud Infrastructure Bare Metal GPUOracle Cloud Infrastructure Bare Metal GPUOracle Cloud Infrastructure Bare Metal GPUOracle Cloud Infrastructure Bare Metal GPUOracle Cloud Infrastructure Bare Metal GPU A fome por processamento na utilização de modelos treinados não é a mesma exigida durante o treinamento, o que pode parecer ao primeiro olhar desapercebido algo estranho. O resultado do treinamento pode ser considerado uma API, um processamento dedicado com entrada e saída, que será usado por aplicações diversas. Muitos modelos podem até ser transformados em lingua- gem de máquina e integrados ao hardware, convertidos para serem utilizados por arquiteturas de FPGAs (fi eld programmable gate arrays) ou ASICs (appliactoin-specifi c integrated circuits). INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 30 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 30 12/06/19 15:07 Um cuidado precisa ser alertado: alguns frameworks de Ciência de Dados podem estar in- trinsicamente associados a um fabricante de processamento (CPUs ou GPUs), o que pode aca- bar difi cultando a interoperabilidade da arquitetura, ou a uma solução de em cloud específi ca. A par de tudo, o que o nos aguarda no futuro? A computação quântica poderá estar dispo- nível através de serviços em cloud em um futuro próximo. Sua base é o processamento de al- goritmos de inteligência artifi cial de forma inacreditavelmente mais rápida. Isto é, conseguido através da utilização de qubits (quantum bits) e não bits. Os qubits podem ter de três a quatro estados e não somente os dois dos bits que estamos acostumados. Os qubits podem estar no estado de 1 ou 0 ou outros dois. Isso mesmo, outros dois. É o princípioque a física quântica utiliza e que concede o nome a esta computação. Apesar de seu uso já estar sendo estudado por algumas empresas e governos, há muita restrição de aplicação, a fi m de que não caia em mãos erradas. Figura 4. Comparação do bit com o qubit. Fonte: Shutterstock. Acesso em: 18/03/2019. (Adaptado). Tecnologias para coleta, armazenamento, análise e visualização de dados De onde vêm os dados? Essa é a principal pergunta a ser feita para a criação de uma solução de Big Data, sua principal matéria-prima são os dados e estes precisam ser transportados para o acondicionamento conforme regem as melhores práticas. Uma vez os dados estando em uma estrutura adequada, chega a vez da usina trabalhar, lapidando dados, transformando e dando forma e sentido para serem consumidos, chegando até às ferramentas de visualização. Bit 1 |1⟩ |0⟩0 Qubit |ѵ⟩ = α|0⟩ + β|1⟩ INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 31 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 31 12/06/19 15:07 Algumas ferramentas foram descritas em tópicos mais adequados às suas funções, mesmo que elas possuam características de outros tópicos. A intenção foi facilitar a organização dos tópicos e distribuição do conteúdo. Tecnologias e ferramentas de coleta de dados Dependendo da origem dos dados e suas características, precisamos de estratégias dife- renciadas. Dados já estruturados podem ser ajustados e transportados mais facilmente. Já os dados não estruturados precisam de algum ajuste ou ferramenta específi ca de coleta e, ainda, dados analógicos provindos de sensores e ferramentas de IoT, podem ser necessários para garantir os “Vs” do Big Data. Quando os dados são analógicos, a aquisição de dados faz o processo de exame de sinais que, medindo as verdadeiras condições físicas e transformando em sinais digitais, pode ser controlada por um computador. As estruturas de aquisição de dados, DAS (Data Aquisition Systems), convertem regularmente formas de onda simples em qualidades avançadas para a preparação. Algumas plataformas de IoT já fazem esse trabalho e agregam fl exibilidade para a maioria das necessidades. Já existem versões de sistemas operacionais em Linux com funções de IoT, como o Ubuntu. Plataformas baseadas em hardware com miniPC ou as tecnologias de processamento existentes nos smartphones conectadas a equipamentos e sensores (Raspber- ry PI, Qualcomm Snapdragon, Intel NUC, etc.) também ajudam na aquisição de dados. Isso faz com que os sistemas saiam de um ambiente monolítico para um verdadeiro sistema nervoso, interligado, vivo, complexo e dinâmico. Logicamente este sistema não nasce dessa forma, mas depende se um roadmap alinhado à estratégia de negócios. Um exemplo de uso de dados oriundos de sensores são as centrais de Smart Cities, onde sinais de trânsito, geolocalização de ônibus, ambulâncias, viaturas, adicionados a informações de condições climáticas, usuários e incidentes criam um centro nervoso de informações para tomada rápida de decisão e acom- panhamento de eventos que necessitam de controle, servindo tanto para análise quanto para monitoração on-line. O Flume é um serviço distribuído, confi ável e disponível para coletar, agregar e mover gran- des quantidades de dados de log efi cientemente. Ele tem uma arquitetura simples e fl exível, baseada em fl uxos de dados de streaming. É robusto e tolerante a falhas com mecanismos de confi abilidade ajustáveis e muitos mecanismos de recuperação de falhas. Ele usa um modelo de dados extensível simples que permite a aplicação analítica on-line. O Flume está desenvol- vido em Java. Uma agente em Flume consome eventos entregues a ele por uma fonte externa como, por exemplo, um servidor web. A fonte externa envia eventos para o Flume em um for- INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 32 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 32 12/06/19 15:07 mato reconhecido pela fonte (source) Flume de destino. Quando uma fonte de Flume recebe um evento, ele o armazena em um ou mais canais. O canal é um armazenamento passivo que mantém o evento até que seja consumido por um coletor (sink) do agente Flume. Um exemplo análogo ao canal é o de arquivo ou pasta, gerenciado pelo sistema de arquivos do sistema ope- racional, onde uma aplicação pode escrever, enquanto outra já utiliza (típica situação de logs de banco de dados). O sink remove o evento do canal e coloca-o em um repositório externo como HDFS (através do Flume HDFS sink) ou o reenvia para outra fonte de agente do Flume se- guinte (próximo passo de movimentação) no fl uxo. A fonte e o sink dentro do agente fornecido são executados de forma assíncrona com os eventos armazenados no canal. Figura 5. Fluxo de dados do Flume. Fonte: The Cloud Avenue. Acesso em: 18/03/2019. (Adaptado). O Sqoop é uma ferramenta projetada para transferir dados entre o Hadoop e os bancos re- lacionais ou mainframes. Podemos usar o Sqoop para importar dados de um RDBMS (sistema de gerenciamento de banco de dados relacional), como MySQL ou Oracle, ou um mainframe para o sistema de arquivos distribuído Hadoop (HDFS), transformar os dados no Hadoop MapReduce e, em seguida, exportar os dados de volta para um RDBMS. O Sqoop automatiza a maior parte desse processo, contando com o banco de dados para descrever o esquema dos dados a serem importados. O Sqoop usa o MapReduce para importar e exportar os dados, o que fornece operação paralela, bem como tolerância a falhas. A saída desse processo de importação é um conjunto de arquivos que contém uma cópia da tabela ou conjuntos de resultados importados. O processo de importação é executado em paralelo. Por esse motivo, a saída será em vários arquivos. Esses arquivos podem ser arquivos de texto CSV, ou binário Avro ou SequenceFiles contendo dados de registro serializado. Serviço Twitter Coletor de HDFS HDFS Query Hive Fonte Twitter Canal da memória Flume INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 33 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 33 12/06/19 15:07 Um subproduto do processo de importação é uma classe Java gerada que pode encapsular uma linha da tabela importada. Essa classe é usada durante o processo de importação pelo próprio Sqoop. O código-fonte Java para essa classe também é criado para uso no processa- mento do MapReduce subsequente dos dados. Essa classe pode gravar (serializar) e recuperar (“desserializar”) dados para e do formato SequenceFile. Ele também pode analisar a forma de texto delimitado de um registro. Essas habilidades permitem o desenvolvimento de aplicativos MapReduce que usam os registros armazenados em HDFS em seu pipeline de processamento. Depois de manipular os registros importados (por exemplo, com MapReduce ou Hive), exis- te a possibilidade de se ter um conjunto de dados de resultado que pode então ser exporta- do de volta para o banco de dados relacional. O processo de exportação do Sqoop lerá um conjunto de arquivos de texto delimitados do HDFS em paralelo, analisá-los em registros e inseri-los como novas linhas em uma tabela de banco de dados de destino para consumo por aplicativos externos ou usuários. O Sqoop inclui alguns outros comandos que permitem inspecionar o banco de dados com o qual estamos trabalhando. Por exemplo, podemos listar os esquemas de banco de dados disponíveis (com a ferramenta sqoop-list-databases) e tabelas dentro de um esquema (com a ferramenta sqoop-list-tables). O Sqoop também inclui um shell de execução SQL primitivo (a ferramenta sqoop-eval). A maioria dos aspectos da importação, geração de código e processos de exportação podem ser personalizados. Para bancos de dados, podemos controlar o intervalo de linhas ou colunas específi cas importadas. Podemos especifi car delimitadores customizados e caracteres especiais para a representação baseada em arquivo dos dados, bem como o formatode arquivo usado. Também é possível controlar os nomes de classe ou pacote usados no código gerado. Tecnologias e ferramentas de armazenamento de dados Já analisamos as características do Hadoop HDFS e sua indicação de uso está associada a processamentos em batch (off -line). A Apache Kafka é uma plataforma versátil de armazenamento e também de streaming com três principais recursos: • Permite a publicação e assinatura de fl uxos de registros, semelhante a uma fi la de mensa- gens ou sistema de mensagens corporativo; • Armazena fl uxos de registros em uma maneira durável e tolerante a falhas; • Processa fl uxos de registros à medida que ocorrem. O Kafka é geralmente usado para duas classes amplas de aplicações: INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 34 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 34 12/06/19 15:07 • Construir pipelines de dados de streaming em tempo real que obtenham dados de forma confi ável entre sistemas ou aplicativos; • Criar aplicativos de streaming em tempo real que transformam ou reagem aos fl uxos de dados. Para entender como Kafka faz essas coisas, vamos mergulhar e explorar as capacidades de Kafka de baixo para cima. Primeiro, alguns conceitos: • Kafka é executado como um cluster em um ou mais servidores que podem abranger vá- rios Data Centers; • O cluster Kafka armazena fl uxos de Registros em categorias chamadas Tópicos; • Cada registro consiste em uma chave, um valor e um carimbo de data/hora (timestamp). O Kafka tem quatro APIs principais: Producer API, Consumer API, Streams API, Connector API. Figura 6. APIs do Kafka. Fonte: ITNEXT. Acesso em: 18/03/2019. (Adaptado). • A Producer API permite que um aplicativo publique um fl uxo de registros em um ou mais tópicos do Kafka; • A Consumer API permite que um aplicativo assine um ou mais tópicos e processe o fl uxo de registros produzidos por eles; • A Streams API permite que um aplicativo atue como um processador de fl uxo, consumindo Escrever Escrever Produzir ConsumirUsuários Postagens Likes Comentários Leitura API Fluxo de dados Kafka INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 35 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 35 12/06/19 15:07 um fluxo de entrada de um ou mais tópicos e produzindo um fluxo de saída para um ou mais tópicos de saída, transformando efetivamente os fluxos de entrada em fluxos de saída; • A Connector API permite criar e executar produtores ou consumidores reutilizáveis que conectam tópicos do Kafka a aplicativos ou sistemas de dados existentes. Por exemplo, um conector para um banco de dados relacional pode capturar todas as alterações em uma tabela. Em Kafka, a comunicação entre os clientes e os servidores é feita com um protocolo TCP agnóstico, de linguagem simples e de alto desempenho. Este protocolo possui versionamento e mantém a compatibilidade retroativa com a versão mais antiga. Há um cliente desenvolvido em Java para Kafka, mas outros clientes estão disponíveis em muitas linguagens de programa- ção, tais como: Python, Go, .NET, Node.JS, Ruby, PHP, Swift, entro outras. O Apache HBase – NoSQL Database não é adequado para todos os problemas. Primeiro, é necessário certificar-se do volume de dados suficientes. Se a solução precisa gerenciar cen- tenas de milhões ou bilhões de linhas, então HBase é um bom candidato. Se forem apenas al- guns milhares/milhões de linhas, então é melhor usar um RDBMS tradicional, devido ao fato de todos os dados poderem ocupar apenas um único nó (ou dois) e o resto do cluster pode estar ocioso. Em segundo lugar, certifique-se de que haverá a possibilidade de não haver todos os recursos extras que um RDBMS fornece (por exemplo, colunas com tipos de dados especiais, índices secundários, transações, linguagens de consulta avançadas, etc.). Um aplicativo criado com base em um RDBMS não pode ser “portado” para o HBase simplesmente alterando um driver JDBC, por exemplo. Considere a mudança de um RDBMS para HBase como uma refor- mulação completa em contraposição a uma simples estratégia de portar conectividade. Em terceiro lugar, certifique-se de ter hardware suficiente. Mesmo o HDFS não desempenha bem com nada menos de cinco DataNodes (devido a coisas como a replicação de bloco do HDFS que tem como padrão de três nós), além de um NameNode. O HBase pode funcionar muito bem em um laptop, mas isso deve ser considerado uma configuração de desenvolvimento, apenas. O uso do Apache HBase é indicado quando precisamos de acesso de leitura/gravação em tem- po real ao Big Data. O objetivo dele é a hospedagem de tabelas muito grandes (bilhões de linhas X milhões de colunas) em cima de clusters de hardware comuns. O Apache HBase é um banco de dados de código aberto, distribuído, com versionamento e não relacional, modelado após o BigTa- ble do Google: um sistema de armazenamento distribuído para dados estruturados. Assim como o BigTable aproveita o armazenamento de dados distribuído fornecido pelo sistema de arquivos do Google, o Apache HBase oferece recursos como BigTable em cima do Hadoop e do HDFS. Características: • Escalabilidade linear e modular; • Leituras e gravações estritamente consistentes; INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 36 Infraestrutura de Data Science e Cloud Computing - Unidade1.indd 36 12/06/19 15:07 • Fragmentação automática e confi gurável de tabelas; • Suporte a failover automático entre RegionServers; • Classes base convenientes para fazer backup de trabalhos do Hadoop MapReduce com ta- belas Apache Hbase; • API Java fácil de usar para acesso de cliente; • Cachê de blocos e fi ltros Bloom para consultas em tempo real; • Filtros de consulta são enviados para servidores slaves por intermédio de “Server side fi lters”; • Gateway de thrift e um serviço da Web REST-full que oferece suporte a XML, Protobuf e op- ções de codifi cação de dados binários; • Shell com base em JRuby extensível (JIRB); • Suporte para exportar métricas através do subsistema de métricas do Hadoop para arqui- vos ou Ganglia; ou via JMX. Ferramentas de análise de dados Apache Mahout é uma biblioteca de álgebra linear com capacidade de computação distri- buída e projetada para permitir que matemáticos, estatísticos e cientistas de dados implemen- tem rapidamente seus próprios algoritmos. Possui ferramentas de Machine Learning para reco- mendação (de produtos, por exemplo), classifi cação e clustering. Suporte para vários backends distribuídos (incluindo o Apache Spark) e possui Solvers nativos modulares para aceleração de CPU/GPU/CUDA. O R é um ambiente de software livre para computação estatística e gráfi cos. Ele roda em uma ampla variedade de plataformas UNIX, Windows e MacOS e possui vários conectores e bibliote- cas que o conectam a servidores e serviços em nuvem para acesso a dados e processamento. O R é também uma linguagem de programação para computação estatística e gráfi cos. É um projeto GNU que é semelhante à linguagem S e ambiente que foi desenvolvido na Bell La- boratories (anteriormente AT&T, agora Lucent Technologies) por John Chambers e colegas. O R pode ser considerado como uma implementação diferente de S. Existem algumas diferenças importantes, mas muito código escrito para S é executado inalterado R. O R fornece uma grande variedade de estatística (modelagem linear e não linear, testes estatís- ticos clássicos, análise de séries temporais, classifi cação, agrupamento, etc.) e técnicas gráfi cas, e é altamente extensível. A linguagem S é muitas vezes o veículo de escolha para a pesquisa em metodo- logia estatística, e o R fornece uma alternativa de código aberto para a participação nessa atividade. Um dos pontos fortes do R é a facilidade com que gráfi cos de alta qualidade são publicados, incluindo símbolos matemáticos e fórmulas onde for necessário. Grande cuidado foi tomado INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 37
Compartilhar