Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

INFRAESTRUTURA DE o 
DATA SCIENCE E CLOUD 
COMPUTING 
PÁVIO DOMICIANO MUNIZ 
 
 
INFRAESTRUTURA DE o 
DATA SCIENCE E CLOUD 
COMPUTING 
PÁVIO DOMICIANO MUNIZ 
 
Presidente do Conselho de Administração Janguiê Diniz 
Diretor-presidente Jânyo Diniz 
Diretoria Executiva de Ensino Adriano Azevedo 
Diretoria Executiva de Serviços Corporativos Joaldo Diniz 
Diretoria de Ensino a Distância Enzo Moreira 
Autoria Prof. Pávio Domiciano Muniz 
Projeto Gráfico e Capa 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. 
O 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: O Shutterstock
 
ASSISTA 
Indicação de filmes, vídeos ou similares que trazem informações complementares ou 
aprofundadas sobre o conteúdo estudado. 
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. 
CURIOSIDADE 
Informação que revela algo desconhecido e interessante sobre o assunto tratado. 
DICA 
Um detalhe específico da informação, um breve conselho, um alerta, uma informação 
privilegiada sobre o conteúdo trabalhado. 
EXEMPLIFICANDO 
Informação que retrata de forma objetiva determinado assunto. 
EXPLICANDO 
Explicação, elucidação sobre uma palavra ou expressão específica da área de conheci- 
mento trabalhada. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING (E> 
 
 
Unidade 1 - Introdução à infraestrutura de Data Science 
Objetivos da unidado ssa a TI RU Das a 13 
Utilização das ferramentas nos processos de administração de empresas .............memem 14 
O que é Big Data, seu histórico e principais desafios... riem 14 
Como o Big Data se parece... rir terteeeeeerteerereerrerteaeerrerrertsererreracencerreereeneereearerneerso 15 
Volume/velocidade/variedade/veracidade/valor .............. ri rrireeteeeereeeereeemeserreeeererrirees 16 
Visão goral sobre ambionta: Big Data... ssa soraia eita casdocasaçõão 18 
Como-&: composto um ambiente-de Big Data .sessesunesucoranassesersemaaiseseseasiasaaisisessacasinisaisacnuasásie 18 
Infraestrutura tecnológica: plataformas, linguagem e ambiente .................. sessao 19 
As linguagens que podem ser usadas com Big Data... emerson 20 
Como deve ser um ambiente apropriado para Big Data............cimeieeeeeeeeereeeneereresents 22 
Oque SMapReduco: anseia mena sans aaa 23 
Oque 6/ADES?. sesaasaraaraissenta aa aan aaa mata 25 
Infraestrutura para Data Science 
 
Integração entre Data Science e Big Data ....... eee rerrerrearee nte rrereerserrerrranness 27 
Capacidade 6; processamento sacas REU 28 
Troinamento:doimodelos analcos aa eras ars aa nai 29 
Tecnologias para coleta, armazenamento, análise e visualização de dados.................... 31 
Tecnologias:e ferramentas:de coleta ide dados ..snuenseesensisensersermvesemseranoenteamsassovnissenvoa 32 
Tecnologias e ferramentas de armazenamento de dados .............s imensas 34 
Ferramentas deranaliseide dados susana mara aU Ra rasca 37 
Ferramentas devisualização dodadoS assa ii aaa 39 
SIDIGZANDO ssscsciacisssisiiara ssnicipgisaniceppicenicappiianiccnisiás ranicsspoicaiicriss ici ini iscas ds sisapiçoca ini nacaspcessdnsia ass 40 
 
Referências bibliográficas.............. nn crrrereereerereerrereereereerersereereereeresersereereeeasenserseneeeases 42 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING &
 
Unidade 2 - A base da infraestrutura do Data Science: Hadoop 
Objotivos da NI dAdO:.s saia asa RI possas ron 43 
 
Seek time x transfer time, o que faz diferença em soluções de Big Data.................... 52 
Rrquitótira AADOO eee e i SSnD 54 
Clystar HAdoo p=": EEE CS scan 54 
Processamento MapRoduce:s.cisacaaseacasssecaasaaiaaorsamasissascnsamsasesisniananisacscesassraacaniansegenssasscassascsnçisl 55 
Cache disinhuido o SOQUrançaL.smsaissaasnacesire raio acena nessa navais 56 
SOQUrAnÇa «ssiscaseissizs utaaio raia ima Te asa a caia 58 
Identidade do Sta asas a qa a gana 59 
Ecossistoma HadOop)ssuasusicca scrusaassicarsassarssisacioraisoidacra is esaeia Guesa ENCascaa casas quina aqu acusanca seas ansçã 59 
SS IITTOLEZAICÃO css 72 
Roforonicias DIbliográficas sa DD sa 14 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING &
 
Unidade 3 - Infraestrutura de banco de dados para Data Science 
Ubjotivos da mnIdade ss isa a DIS a Sis as Duane 16 
 
Windows Aire ADINSIÇÃE canemsaneaasaaa caldas Rea ums ma 82 
DatabrickS! aasssaassissssssmiancamamassss ricaaamasa tecer aerea sanada Gta nacesStasaspUsagas copeRiesese Gas racsmnsaqdssrsuaigaantaço 83 
Domino/Data!ligbs!....cassssmemsissiiastasidonatorerotismestessiremmiinnicêveiisisveisocuniieemjiilishsstraesiioserrinsvoiimmeintesnitecssisênsuaioniio 84 
Introdução do Apacho Spark ca 85 
Spark FONTE -ssesssacacs sas aan cs aa sado seda dadas dic caad adia sagas csanm scene 88 
Sparicx Hailoojp:.......sssesnsscossiisesesrococnnireeisepocóseçondosopbom coisa pa reniiniobcenppcasêonsppnbbapanetnpaprtpinsommssesperevesessssosrareveperscõo 90 
ApáGho TEZ-=====2=ss TSE 92 
Apache STORM sasussazassasa asia rear asa SO Ta rc cce ainsi 93 
Bancoide dados NOSÓL .s.crecesasssssiasssosiririatnsira soro ni iccd caciques aci iss ida 95 
 
CouchDB.... 
SIT COtiZan (cimo se ceosssdsisos asia seda a a aid pg 
Referências bibliográficas. 
 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING E
 
Unidade 4 - Infraestrutura de bancos de dados para Data Science 
Objetivos da unidade... errerteeseeereeereererereeerreerrereersereeereenerereeneecenreenemnsensereensenserreno 108 
Introdição do: Cloud! COM puta ssa seas ais iana sida sas nana 109 
Fundamentos de Cloud Computing.............................s...iss crsseensssensseensseenserensressensseeasseenserensssensseenss 109 
 
VITA NIZAÇÃO cessar svascansereraneameas 
Computação distribuída 
Armazenamento:;disinibuido:(SLorago) iss cmisanassiseincernanaamia masai aienc iron nessa 114 
Automação... essere 
Estrutura de cloud em contêineres 
Arquitetura:de:Cloud Computing asas sseessaamiaanaas an nsannamarauanasaasaaa 
Conceitos básicos, terminologias e modelos de serviços.................meemereseeseeesesenseseseremss 120 
Private; cioNA ssa oram uara pc CRP gas urge 120 
Public cloud 
Hybrid cloud 
Community Cloud seas DT TI Rae 121 
A importância:do cloud no cenário atial ..ssessucaaaaseceamsenisaeaaseseremeneenanaennaannama asas 122 
Características do Cloud Computing.................. sr ereemseerseereeermeerseereeereeereererereresermserseamsenss 123 
Tiposde Cloud Computing :s==2:2: 52220 MESA DI re 124 
Serviços em Cloud Computing para análise de Big Data... reremeerseeaseeass 126 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING o
Aspectos de implementação, segurança, armazenamento, custo/preço, qualidade de serviço 
 
CUStO/PrOlO asas SO a 132 
Qualidade de serviços... re iterteeereeaeerreearee aeee rreraee area ee rree areas creeaeerreerrererererearees 135 
 
SINOUZANTO sisssses esscesesesamsca en acaciaieid ani iai dadas iara seio caaisasona sd nsiaeitasandiseiaão 
 
Referências bibliográficas 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING &
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING (E>
 TESTA 
 
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ésde 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 loT (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ífica 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ífica 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. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
 
 
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 artificial, 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 
Dedicado à minha família: minha esposa Patricia e minha filha 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. 
 INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING qo)
 
DELAS EDIT ET 
& 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. 
ES ERES UT o 
O 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 
O Visão geral sobre ambiente Big Data 
Como é composto um ambiente de 
Big Data 
O 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 
O 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 (5) 
 
 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 suficiente 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: identificação de comportamen- 
to de clientes em relação à compras (quando, como, motivação, perfil, 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 identificar 
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, Netflix, 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 qe»
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 influê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áfica 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, identificando rotas alternativas e incluindo, ainda, dados imputados diretamente por usuários 
a respeito de desvios, acidentes, sinalizações, etc. O volume de dados processados é espantoso e, 
durante o percursodo usuário, ainda é possível mudar a rota em função de novos acontecimentos. 
As fintechs (startups de tecnologia na área financeira) também se aproveitam das tecnologias de Big 
Data para criar novos produtos, algumas vezes mais simplificados, mais baratos, sem agências físicas 
e mais ágeis que grandes instituições financeiras, facilitando empréstimos com análise profunda de 
dados de comportamento, seguros customizados por perfis de apólices individualizadas, etc. 
O que se faz emergencial no uso de Big Data pelas corporações é a palavra agilidade. Para 
se beneficiarem 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 &
 
 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 desafio 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 
fluem 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 beneficiaram das informações que trafegam 
entre empresas do mercado financeiro 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, identificando oportunidade de negócios. Os fluxos de dados também são um desafio: 
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 q»
do Nordeste (PB, Ple 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 Go)
 
 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 
ficará o papel de cada componente. 
BIG DATA & AI LANDSCAPE 2018 
- animes APrUcAmONS - Dent iast 
ou ur rumos asc rumos users mami Ex corurasimas 
torna atena | rx Do emonys | nAnIUS às rms rende = Drmudo TEM ísae UA emonys | Ras TS Quem Presta | 
AvASO! Montador (otisado e mes gua avaso = cs 
omite abri! 
 
= regina ariguo saurem Qmacem 
 
 
Conte 4,tas ora 
| contem | iroa comna 
 
DATASOUACES ams 
855 uremam sms <> 
Bm Sede Teia ER caras | 
Fal DONA venia, updated 092018 O Mu Tork (Omartiurck, Demi Obayoemi (Semi obayomil, & FireMara (Ofremarteaç) FIRSTMARK 
Figura 1. Big Data & Al Lands 2 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 proprietá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 G5>
DIAGRAMA 1. CICLO DE VIDA DAS SOLUÇÕES DE BIG DATA 
ARMAZENAMENTO & ANÁLISE & VISUALIZAÇÃO & FONTE DE a 
DADOS RR TRANSFORMAÇÃO MODELAGEM COMPARTILHAMENTO 
 
Cada uma dessas fases possui ferramentas 
e tecnologias específicas 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 artificial, 
Machine Learning, Deep Learning e também de recursos de visualização e compartilhamento 
de dados. 
Com o intuito de ilustração, podemos exemplificar esse ambiente no uso de uma corpora- 
ção na área de varejo: 
DIAGRAMA 2. AMBIENTE B/G 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: 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING G>
DIAGRAMA 3: FUNÇÕES DAS PLATAFORMAS DE BIG DATA 
QUERY/DATAFLOW 
MONITAÇÕES E LOGS 
oia (AS 
APRENDIZAGEM 
b 
Podemos identificar 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? Afinal, 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ífica. 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 (nodeyjS), Go; 
* Visualização & compartilhamento: R, Python, Java, JavaScript, NodeJs, GO, etc. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
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 <>
* 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 definidas pelo usuário (UDFs), agregados definidos pelo 
usuário (UDAFs) e funções de tabela definidas 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 tabi (coll int, col2 int) PARTITIONED BY (col3 int) STORED AS ORC; 
LOAD DATA LOCAL INPATH 'filepath' INTO TABLE tabl 
 
 Como deve ser um ambiente apropriado para Big Data 
O ambiente computacional destinado às soluções de Big Data deve ser flexí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 
desafios 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 E
no outro. Uma estratégia adicional é poderutilizar 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 
flexibilidade 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 classifica 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 &
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. 
RESULTADOS 
INTERMEDIÁRIOS 
ARQUIVOS 
DE SAIDA 
REDUÇÃO 
 Figura 2. Diagrama do MapReduce. Fonte: Wikimedia. Acesso em: 18/03/2019. (Adaptado). INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING &
 
 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 configurá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 configuraçã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 verificaçã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 verificaçã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 processamento do 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 verificação periodi- 
camente do namespace e mantém o tamanho dos arquivos que possuem o log das modifica- 
ções do HDFS dentro dos parâmetros determinados e limítrofes no NameNode. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
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. 
Arquitetura do HDFS 
Sr nrIE EO 
Metadata ————+ réplicas, ...): 
o Dio (jr Pe 
Bloco 
Datanodes operações Datanodes 
= o 
GENS 
Escrita 
Outros importantes componentes que fazem parte do ecossistema do Apache Hadoop, ain- 
 
Figura 3. Arquitetura do HDFS. Fonte: Acesso em: 18/03/2019 
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; 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING &
* 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 fluxo e computação gráfica. 
 
 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 identifica 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 exi- 
 
 
 
 
ge interações que se repetem. Até chegar aos resultados esperados, podemos 
voltar ao início inúmeras vezes. Maior vantagem para as plataformas flexíveis. 
Integração entre Data Science e Big Data 
Definir uma única ferramenta de Data Science é uma tarefa com grandes desafios, 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 (>
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 identificar 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 fica 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ífico, ampliando sua fidelidade, 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 &)
Mais uma vez o mercado de jogos criou uma estrada para os negócios: sua fome por proces- 
samentos gráficos desenvolveu processadores com funções matemáticas complexas embuti- 
das: as GPUSs (Graphics Processing Units), que foram colocadas em placas de vídeo, aumentando 
a jogabilidade e permitindo gráficos em 3D estonteantes. Com a evolução dos ambientes de 
desenvolvimento em Cloud Computing, ficou 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, Caffe2, 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 eficiê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 modificados 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 GPUSs 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 processamentoadicionadas aos servidores locais, aquisição de servidores e sistemas dese- 
nhados para Inteligência Artificial, ou serviços em cloud. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING )
TABELA 1. FORNECEDORES POR TIPO DE SOLUÇÃO 
aa 
Là aà ão 
ence Processing Un 
ES TES CUTH 
dO 
CET 
Dell EMC Ready Solutions 
Fornecedores de Soluções 
dd 
em Clo 
PII E SS ILS 
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 (field programmable gate arrays) ou ASICs (appliactoin-specific integrated circuits). 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING &
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 dificultando a interoperabilidade da arquitetura, ou a uma solução de em cloud específica. 
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 artificial 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 O ou outros dois. Isso mesmo, outros dois. É o princípio que 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 fim de que não caia em 
mãos erradas. 
1y) = a10) + BI1) 
 
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. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING >
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ífica de coleta e, ainda, 
dados analógicos provindos de sensores e ferramentas de /oT, 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 loT já fazem esse trabalho e agregam flexibilidade para a 
maioria das necessidades. Já existem versões de sistemas operacionais em Linux com funções 
de loT, 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 eficientemente. Ele tem uma arquitetura simples e flexível, 
baseada em fluxos de dados de streaming. É robusto e tolerante a falhas com mecanismos de 
confiabilidade 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 &
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 fluxo. A fonte e o sink dentro do agente fornecido 
são executados de forma assíncrona com os eventos armazenados no canal. 
Serviço 
LU 
Canal da 
memória 
 
Figura 5. Fluxo de dados do Flume. Fonte: The Cloud Avenue. Acesso em: 18 
 
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 RDBMIS (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. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING &
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íficas importadas. Podemos especificar delimitadores customizados e caracteres especiais 
para a representação baseada em arquivo dos dados, bem como o formato de 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 fluxos de registros, semelhante a uma fila de mensa- 
gens ou sistema de mensagens corporativo; 
* Armazena fluxos de registros em uma maneira durável e tolerante a falhas; 
* Processa fluxos de registros à medida que ocorrem. 
O Kafka é geralmente usado para duas classes amplas de aplicações: 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
* 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 fluxos 
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 fluxos 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. 
Consumir 
[ACRE o 
Escrever dados Kafka 
Produzir 
Escrever 
 
Figura 6. APIs do Kafka. Fonte: ITNEXT. Acesso em: 19. (Adaptado) 
* A Producer API permite que um aplicativo publique um fluxo 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 fluxo de 
registros produzidos por eles; 
* À Streams API permite que um aplicativo atue como um processador de fluxo, consumindo 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
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; 
* À 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 
emJava 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 &
* Fragmentação automática e configurá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 filtros Bloom para consultas em tempo real; 
* Filtros de consulta são enviados para servidores slaves por intermédio de “Server side filters”; 
* Gateway de thrift e um serviço da Web REST-full que oferece suporte a XML, Protobuf e op- 
ções de codificaçã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), classificaçã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áficos. Ele roda em uma 
ampla variedade de plataformas UNIX, Windows e MacOSe 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áficos. É 
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 estatiís- 
ticos clássicos, análise de séries temporais, classificação, agrupamento, etc.) e técnicas gráficas, 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áficos 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 >
sobre os padrões de design gráficos, mas o usuário retém controle total de suas características. 
O Apache Spark é um sistema de computação de cluster rápido e de uso geral. Ele fornece 
APIs de alto nível em Java, Scala, Python e R e um mecanismo otimizado que oferece suporte 
a gráficos de execução geral. Ele também suporta um rico conjunto de ferramentas de nível 
superior, incluindo o Spark SQL para SQL e processamento de dados estruturados, MLlib para 
aprendizado de máquina, GraphX para processamento de gráfico e Spark streaming. O Spark 
usa as bibliotecas de cliente do Hadoop para HDFS e YARN. 
Keras é uma API de redes neurais de alto nível, escrita em Python e capaz de funcionar em 
cima de TensorFlow, CNTK ou Theano. Foi desenvolvida com foco em possibilitar a experimenta- 
ção rápida. Ser capaz de ir de uma ideia para o resultado com o menor tempo possível é a chave 
para fazer uma boa pesquisa. A biblioteca Keras possibilita a utilização de Deep Learning que: 
* Permite prototipagem fácil e rápida (através da facilidade de utilização, modularidade e 
extensibilidade); 
* Suporta ambas as redes neurais convolucionais e recorrentes, bem como combinações 
dos dois; 
* Funciona perfeitamente em CPU e GPU; 
* Keras é compatível com: Python 2.7-3.6. 
Princípios orientadores: 
* Facilidade de utilização. Keras é uma API projetada para seres humanos, não máquinas. Co- 
loca a experiência do usuário em primeiro lugar. A Keras segue as melhores práticas para reduzir 
a carga cognitiva: oferece APIs consistentes e simples, minimiza o número de ações do usuário 
necessárias para casos de uso comuns e fornece feedback claro e acionável sobre os erros; 
* Modularidade. Um modelo é entendido como uma sequência ou um gráfico de módulos 
autônomos e totalmente configuráveis que podem ser conectados com o máximo de restri- 
ções possíveis. Em particular, camadas neurais, funções de custo, otimizadores, esquemas de 
inicialização, funções de ativação e esquemas de regularização são todos os módulos autôno- 
mos que podem ser combinados para criar novos modelos; 
* Fácil extensão. Novos módulos são simples de adicionar (como novas classes e funções), 
e os módulos existentes fornecem exemplos amplos. Para ser capaz de criar facilmente novos 
módulos, permite a expressividade total, tornando Keras adequado para pesquisa avançada; 
* Trabalho com Python. Não há arquivos de configuração de modelos separados em um 
formato declarativo. Os modelos são descritos no código Python, que é compacto, mais fácil 
de depurar e permite a facilidade de extensibilidade. 
As bibliotecas em Python ajudam muito com a interface do Jupyter Notebook, em uma forma 
ilustrativa e interativa de análise da casos. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
 
 Ferramentas de visualização de dados 
A maioria das ferramentas de análise de dados já possuem recurso de visualização de dados, con- 
tudo, para o compartilhamento de informações entre diferentes necessidade e perfis de usuários, as 
soluções de Big Data podem incluir ferramentas específicas, facilitando a publicação de divulgação de 
análises e resultados. Os principais objetivos das ferramentas de visualização de dados são: 
* Simplificar a complexidade de quantitativa da informação; 
* Analisar e explorar os dados de forma mais simplificada; 
* Identificar áreas de melhoria; 
* Identificar os relacionamentos entre as variáveis e suas diferentes visões; 
* Explorar novos padrões e revelar outros não tão claros; 
É importante considerar alguns fatores básicos da visualização de dados que não devem ser 
ignorados: 
* Clareza visual: garantir que o grupo de informações está completo e relevante. Isso pos- 
sibilita que o analista de dados possa ter confiança ao visualizar o conteúdo; 
* Acuracidade: garantir que a representação gráfica está apropriada para passar a mensa- 
gem correta; 
* Eficiência: usar as técnicas visuais que destacam todos os dados importantes, principal- 
mente se houver comparações. 
OJupyter Notebook é um aplicativo web de código aberto que permite a criação e compartilha- 
mento de documentos interativos que contenham execução de código ao vivo, equações, visualiza- 
ções e texto narrativo. Os usos incluem: limpeza e transformação de dados, simulação numérica, 
modelagem estatística, visualização de dados e Machine Learning. O notebook estende a aborda- 
gem baseada em console para a computação interativa em uma direção qualitativamente nova, 
fornecendo um aplicativo baseado na web adequado para capturar todo o processo de computa- 
ção: desenvolvendo, documentando e executando código, bem como comunicando os resultados 
conforme o seu processo de execução. O Jupyter Notebook combina dois componentes: 
* Um aplicativo web: uma ferramenta baseada em navegador para criação interativa de 
documentos que combinam texto explicativo, matemática, computações e sua saída em Rich 
Media (gráficos, textos e outros tipos de conteúdo); 
* Documentos de notebook: uma representação de todo o conteúdo visível no aplicativo 
web, incluindo entradas e saídas das computações, texto explicativo, matemática, imagens e 
representações de Rich Media de objetos. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING &
a 
O universo das soluções de Big Data atrelados a Data Science está no topo da tecnologia 
atual, permitindo alcançar patamares de processamento nunca antes alcançados. O aprovei- 
tamento das informações disponíveis torna as empresas mais competitivas e inovadoras. 
As principais características do Big Data são: volume, velocidade, variedade, veracidade e valor. 
Grande parte das soluções são Open Source, isto é, estão disponíveis a baixo custo para uti- 
lização profissional. O ambiente é distribuído conforme o próprio ciclo de vida da informação: 
Fontes de Dados, Aquisição de Dados, Armazenamento e Transformação, Análise e Modela- 
gem, Visualização e Compartilhamento. 
O processo de criação de soluções de Data Science é interativo e investigativo. 
Há uma variedade de linguagens usadas em Big Data. Cada fase do ciclo de vida das soluções 
exige características específicas e, por este motivo, podem se utilizar de linguagens diferentes. 
Para simplificar, podemos dizer que para o back-end (movimentação e transformação) o Java e 
Pig se tornam muito importantes, e para front-end (visualização) o Python e R são as linguagens 
mais utilizadas. Isso não quer dizer que outras linguagens não possam ser usadas. 
DIAGRAMA 4: RESUMO DA INFRAESTRUTURA DE BIG DATA 
VISUALIZAÇÃO 
UTILIZAÇÃO 
Os dados podem vir de diferentes fontes: ERPs, CRMs, portais de compras, etc.; o que seria 
trivial, contudo, o mundo externo gera informações relevantes que, se antes não havia formaeconômica de processamento, agora não é mais uma desculpa. Diferentes fontes de informa- 
ção podem ser conectadas às soluções de Big Data para a criação de um verdadeiro sistema 
nervoso, ouvindo e interagindo com o ambiente exterior através de recursos de loT. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
Nos envolvemos um pouco mais com a tecnologia MapReduce, que é a abordagem de aces- 
so a dados baseada em distribuição e paralelização de processamento, além de redução de 
informações para processar dados em larga escala. 
Entendemos que o HDFS é a forma mais primária de armazenamento em clusters, com foco 
em tolerância a falhas, utilizando-se de servidores comuns. 
Uma vez os dados armazenados e com acesso veloz, chega a vez da análise de dados sendo 
que, para isso, existe o Data Science. Literalmente há que se garimpar os dados com algoritmos 
diversos em busca das soluções para as perguntas de negócio, que são o guia de toda solução 
de Big Data. Nesse garimpo, ao invés de pás e picaretas, usamos bibliotecas de Machine Learning 
e Deep Learning para criarmos modelos matemáticos que façam sentido, que possam prever si- 
tuações e ajudar nas tomadas de decisão. A visualização ajuda muito na fase de interpretação de 
dados, quase que como um detector de metais em meio a montanhas de dados. 
LISO 
b 
 INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING (>
Referências bibliográficas à 
APACHE HADOOP. Disponível em: <http://pig.apache.org/>. Acesso em: 25 fev. 2019. 
APACHE HADOOP. MapReduce. Disponível em: <https://hadoop.apache.org/docs/>. Acesso 
em: 26 fev. 2019. 
CAVANILLAS, J. M. New horizons for a data driven economy. Galway: SpringerOpen, p. 39-61, 
2016. 
D-WAVE. Quantum computing. Disponível em: <https://www.dwavesys.com/quantum-com- 
puting>. Acesso em: 26 fev. 2019. 
JUPYTER NOTEBOOK. Disponível em: <https://jupyter-notebook.readthedocs.io/en/stable/ >. 
Acesso em: 27 fev. 2019. 
NEW GEN APPS. What is Hadoop and how it changed Data Science? Disponível em: <https:// 
WWww.newgenapps.com/blog/what-is-hadoop-and-how-it-changed-data-science>. Acesso em: 
26 fev. 2019. 
NVIDIA. Get started with deep learning. Disponível em: <https://www.nvidia.com/en-us/ 
deep-learning-ai/developer/>. Acesso em: 26 fev. 2019. 
RADAR, O. Big Data now: current perspectives from O'Reilly Media. [s.1.], 2012. 
SQREAM. Dead or alive and kicking? Big Data helps retail revive. Disponível em: <https:// 
sqream.com/dead-or-alive-and-kicking-big-data-helps-retail-revive/>. Acesso em: 18 mar. 2019. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING E
 
DELAS EDIT ET 
Entender a arquitetura da infraestrutura de Big Data 
e seu histórico; 
Aprofundar sobre os componentes básicos do 
Hadoop e seus funcionamentos; 
Conhecer os componentes do ecossistema do 
Hadoop. 
ALGUM 
Clique aqui 
b 
ES ERES UT [o 
Componentes principais do Hadoop Processamento MapReduce 
60 que é o Hadoop? 
Cache distribuído e segurança 
HDFS e MapReduce O Segurança 
O YARN O Identidade do usuário 
Seek time x transfer time, o que faz Ecossistema Hadoop 
diferença em soluções de Big Data 
Arquitetura Hadoop 
Cluster Hadoop 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O 
 
 Componentes principais do Hadoop 
O Data Science é ávido por dado, sua matéria-prima. Ele necessita de rápido acesso à maior 
quantidade de dados possível para obtenção de resultados significativos (volume e velocidade). 
Sempre houve uma competição de recursos nas corporações entre transações OLTP (On-line 
Transaction Processing) e OLAP (On-line Analytical Processing). A primeira delas se dedica à ob- 
tenção de desempenho para que as transações únicas sejam realizadas de forma mais acurada 
e rápida, com integridade de dados e de forma rápida, acontecendo em menos de uma dezena 
de segundos. As soluções de OLTP garantem que o tempo de resposta seja ade- 
quado, mesmo com milhões de transações iguais ocorrendo simultaneamente. MALSUNUIA 
 
EXEMPLIFICANDO o 
Um bom exemplo é o funcionamento das transações financeiras, como compra por car- 
tão de crédito. Os objetivos dela são a verificação de identidade (cartão válido, senha e 
estabelecimento), a análise de saldo e limites, a baixa de valores, o registro de paga- 
 
mento, confirmações e a atualização de saldo. 
A segunda delas, por sua vez, procura acelerar as análises que agrupam várias tran- 
sações por diferentes ângulos ou dimensões (tempo, sequência, tipo, valores, região, 
etc.) para criar conclusões ou insights. No passado, por racionamento de recursos com- 
putacionais, a concorrência entre esses dois tipos de transação acabava por priorizar as 
OLTPs, deixando as OLAPs para grupos menores dentro das corporações - os chamados 
silos -, gerando informações incompletas, não integradas ou conceitualmente diferentes 
sob o ponto de vista corporativo. 
Com a chegada das tecnologias de Big Data, inicialmente criadas para resolver os problemas 
de empresas que necessitavam de enormes volumes de dados, como Yahoo! e Google, e ao 
mesmo tempo tinham que analisar e buscar dados para os seus mecanismos de pesquisa na 
web - a abordagem dos bancos de dados relacionais (RDBMS - Relational Data Base Manage- 
ment Systems) foi profundamente transformada. 
No entanto, colocar conteúdos não estruturados em RDBMS continua sendo um desafio. 
Ele é mais indicado para transações OLTPs e o que temos na web são arquivos HTML, imagens, 
vídeos, links para outras páginas, que não precisam seguir um padrão predefinido. 
Imaginemos que uma pesquisa por qualquer palavra na internet traga todas as páginas já 
publicadas a respeito dela, com uma apresentação por relevância e atualização. A base dos 
RDBMS são os índices, arquivos secundários que organizam os dados registrados em formato 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
de tabela; se a busca acontecer por uma coluna (campo) indexado, a velocidade de pesquisa 
é imediata, mesmo para grandes bancos de dados, mas se não houve um índice, o RDBMS 
buscará a informação linha a linha da tabela (Table Scan). Sendo assim, a modelagem de dados 
relacionais procura identificar as formas de uso da base e criar estruturas que geram o melhor 
desempenho transacional. 
No entanto, vale uma observação: para as transações OLAP, que precisam analisar os 
dados a partir de vários ângulos, seria necessário ter índices para todos os campos. Isso, 
na verdade, construiu uma nova forma de estruturar os dados com a estratégia contrária 
da normalização, isto é, a desnormalização. Como o volume de dados da internet cresce 
exponencialmente, mesmo as estruturas OLAPs não são suficientes para os enormes 
volumes de dados. 
A estratégia foi considerar que o Table Scan precisa ser mais rápido. Essa premissa mudou 
completamente a forma de pensar dos engenheiros de dados. Eles concluíram que uma ótima 
forma de aumentar o desempenho do Table Scan é não guardar as informações em tabelas e 
sim em colunas. Esse foi o “ovo de Colombo" das soluções de Big Data. Com essa separação, os 
scans por coluna podem ser divididos por processos e, por consequência, podem ser paraleli- 
zados. Assim, haverá processos em vários servidores. 
As pesquisas, então, são mapeadas, divididas por colunas, distribuídas para outros servido- 
res dedicados às colunas envolvidas na consulta. Elas preparam os resultados e devolvem para 
um orquestrador que junta os dados resultantes e controla a forma como são consumidos, 
pois o tamanho da resposta sempre é muito grande também. 
Hoje, todo esse conhecimento está disponível em plataformas Open Source. Há um ecos- 
sistema chamado Apache Hadoop que é o motor por trás da maioria das tecnologias de Big 
Data do mercado. Ele está em evolução contínua para manter o desempenho de soluções que 
manipulam muitos dados em formatos variados. 
 
 O que é o Hadoop? 
O Hadoop é um framework de código aberto criado pela Apache Software Foundationpara processar e analisar imensos volumes de dados. Ele consiste em um ambiente de pro- 
cessamento distribuído entre clusters de servidores para armazenar e processar dados. Para 
conseguir o que promete, o Hadoop usa seu próprio sistema de arquivos chamado HDFS 
(Hadoop Distributed File System). Seu diferencial é “entender” onde os dados estão, para que 
possa distribuir o processamento para o local correto e mais adequado. Os componentes de 
lógica do Hadoop são versões compiladas de programas em Java. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
CURIOSIDADE 
O Hadoop foi desenvolvido em Java e, atualmente, compõe as soluções de companhias 
como Facebook, Google, Twitter, LinkedIn, Yahoo, Netflix, dentre outras. 
 
Quais são os componentes do Hadoop? 
Seus principais componentes são: HDFS, MapReduce e YARN. 
Cluster master 
te] e É 
es MapReduce 
YARN: Resource Manager 
HDFS: NameNode 
Tarefas em Java 
é me fr ED 
Tarefas em java (HD YARN: NodeManager CE YARN: NodeMmanager 
A) — — 
HDFS: DataNode HDFS: DataNode 
Cluster escravo Cluster escravo 
Figura 1. Componentes do Hadoof 
 
 HDFS e MapReduce 
O HDFS é um sistema de arquivos distribuído na base de armazenamento (storage) do 
Hadoop. Tudo é guardado em uma estrutura de combinação de chave (key) e conteúdo 
(value). Uma rotina (daemon) chamada NameNode roda no HDFS no servidor master da 
instalação. Outra rotina, denominada DataNode, roda em todos os servidores escravos. 
O propósito dos NameNodes é armazenar os metadados (informações sobre os dados, 
como, por exemplo, seu tipo, localização, etc.) e também coordenar os DataNodes escravos. 
Os DataNodes, por outro lado, armazenam o dado e ficam responsáveis pela a execução de 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
tarefas com os dados que estão armazenados no seu servidor. 
É dessa maneira que o HDFS garante a entrega de escalabilidade (propriedade de aumentar 
sua capacidade), tolerância a falhas (pois estamos falando de distribuição de processamento entre 
clusters), confiabilidade e armazenamento de dados em termos de gigabytes (GB) e terabytes (TB) 
com recurso de replicação. Os dados são divididos em blocos e distribuídos em várias máquinas 
separadas física e geograficamente. O tamanho default de cada bloco de dados é de 128 MB. 
HDFS: NameNode 
Rack 1 Rack 2 
—+ ——+ + 
Cluster escravo Cluster escravo 
o ES Reef 
e! e! 
HDFS: DataNode HDFS: DataNode 
Metadata 
(nome, réplicas etc.) 
Replicação 
 
Figura 2. Arquitetura do HDF 
A estratégia de redundância do HDFS é a replicação de dados entre servidores nós do cluster. 
Essa configuração pode ser mudada com a parametrização, mas o default (normal) é a replica- 
ção em três servidores nós diferentes para cada bloco, com uma combinação na qual sempre é 
possível recuperar todo o arquivo se algum nó de servidor falhar. Além desse recurso, há ainda 
o Secondary NameNode que possui a capacidade de fazer checkpoints a cada hora, tornando-se 
uma réplica para o caso de falha. Os dados são sempre gravados em logs para possibilitar a re- 
plicação. O arquivo original é chamado de fsimage e o log de edit log. O SecondaryNode avisa o 
primário que quer fazer um checkpoint; o primário fecha o arquivo de log atual (edit log), começa 
a trabalhar em um segundo arquivo e libera o atual edit log para o servidor secundário trabalhar. 
O secundário, por estar em modo de espera, pode se dedicar a carregar o edit log e a aplicar 
as mudanças na sua versão do arquivo em questão. Ao terminar, transfere o novo arquivo para 
o primário atualizado, avisa o primário de que o checkpoint foi terminado e o edit log antigo é 
descartado. O tamanho default de cada bloco de dados é de 128 MB. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
NameNode 
Troca durante checkpoint 
Novo edilog usado 
durante checkpoint 
 
Figura 3. Pro je check nt do NameNoc 
YARN 
O YARN (Yet Another Resource Negotiator) é 
uma camada de gestão de recursos do Hadoop. 
Em um cluster com muitos servidores nós, 
é um trabalho árduo gerenciar, alocar e libe- 
rar recursos, tais como processamento (CPU 
ou GPU), memória e discos. O YARN é respon- 
sável por esses recursos no cluster com o Ha- 
doop, respondendo a solicitações das aplica- 
ções. O nome do daemon que executa essa 
tarefa é ResourceManager, que fica no servi- 
dor master, enquanto o daemon NodeMana- 
ger fica em todos os servidores escravos. 
CURIOSIDADE 
 
SecondaryNode 
M 
editlog | 
fslmage copiado anteriormente 
Ss 
Novo fslmage 
 
O YARN nasceu devido à necessidade de aumentar o desempenho de processos em 
concorrência com o MapReduce, permitindo que outros componentes possuam priori- 
dades no processamento e ampliando a gestão de tarefas entre os clusters. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING &
Container 
NodeManager 
B DataNode 
App Manager 
toi Tio 
ResourceManager NodeManager DataNode 
Po TRE d 
erp ie Tg 
DataNode 
NodeManager 
PAT ELES 
 
Figura 4. Arquitetura do YARN 
O ResourceManager centraliza a distribuição dos recursos e dimensiona as necessidades entre 
os serviços. O NodeManager é responsável por receber as instruções do ResourceManager e execu- 
tá-las nos clusters. O Container é criado para executar as requisições que chegam no NodeManager 
e cada aplicação pode rodar em um ou mais contêineres. O Container é uma unidade de processa- 
mento com memória e CPU alocada pelo NodeManager. O ApplicationMaster é responsável pelo 
MapReduce e pode solicitar a criação de mais contêineres para rodar aplicações. 
O CapacityScheduler no YARN foi projetado para executar aplicativos do Hadoop, como 
um cluster compartilhado multi-tenant, de maneira amigável, maximizando a taxa de trans- 
ferência e a utilização do cluster. Tradicionalmente, cada organização possui um conjunto pri- 
vado de recursos de computação que tem capacidade suficiente para atender ao SLA da or- 
ganização em condições de pico ou quase pico. Isso geralmente leva à má utilização média e 
sobrecarga de gerenciamento de vários clusters independentes, um para cada organização. 
O compartilhamento de clusters entre organizações é uma maneira econômica de executar 
grandes instalações do Hadoop, pois isso permite que eles colham benefícios de economias de 
escala sem criar clusters privados. No entanto, as organizações estão preocupadas em com- 
partilhar um cluster, porque não querem que outras pessoas compartilhem os recursos que 
são essenciais para seus SLAs. 
O CapacityScheduler é projetado para permitir o compartilhamento de um grande cluster, dando 
garantias de capacidade de cada organização. A ideia central é que os recursos disponíveis no cluster 
do Hadoop sejam compartilhados entre várias organizações que coletivamente financiam o cluster 
com base em suas necessidades de computação. Há um benefício adicional, que é a situação na qual 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
uma organização pode acessar qualquer excesso de capacidade que não esteja sendo usado por 
outros. Isso proporciona elasticidade para as empresas de uma forma rentável. 
O compartilhamento de clusters entre organizações necessita de um forte suporte para 
multilocação, já que cada organização deve ter a capacidade garantida e os recursos de se- 
gurança para garantir que o cluster compartilhado seja impenetrável para um aplicativo ou 
usuário desonesto. 
O CapacityScheduler fornece um conjunto estrito de limites para garantir que um único 
aplicativo - ou usuário ou fila - não possa consumir uma quantidade desproporcional de re- 
cursos no cluster. Além disso, o CapacityScheduler fornece limites em aplicativos inicializados 
e pendentes de um único usuário e fila para garantir a equidade e a estabilidade do cluster. 
A abstração primária fornecida pelo CapacityScheduler é o conceito de filas. Normalmen- 
te, essas filas são configuradas pelos administradores, gerando a economiado cluster com- 
partilhado. Para fornecer mais controle e previsibilidade no compartilhamento de recursos, 
o CapacityScheduler suporta filas hierárquicas para garantir que os recursos sejam compar- 
tilhados entre as subfilas de uma organização antes que outras filas tenham permissão para 
usar recursos livres, proporcionando, assim, afinidade, compartilhando recursos livres entre 
as aplicações de uma determinada organização. 
As características do CapacityScheduler são: 
e Filas hierárquicas: a hierarquia de filas é suportada para garantir que os recursos sejam 
compartilhados entre as subfilas de uma organização antes que outras filas tenham permissão 
para usar recursos livres, proporcionando, assim, mais controle e previsibilidade. 
* Garantias de capacidade: as filas são alocadas com uma fração da capacidade do grid 
(conjunto de clusters), no sentido que uma determinada capacidade dos recursos estará a sua 
disposição. Todos os aplicativos enviados a uma fila terão acesso à capacidade alocada para a 
fila. Os administradores podem configurar limites flexíveis e limites rígidos opcionais na capa- 
cidade alocada para cada fila. 
* Segurança: cada fila tem ACLs estritas que controlam quais usuários podem 
 
 
 
enviar aplicativos para filas individuais. Além disso, existem guardas de segu- 
rança para garantir que os usuários não possam visualizar e/ou 
modificar aplicativos de outros usuários. Além disso, as fun- 
ções de administrador de sistema e por fila são suportadas. 
* Elasticidade: os recursos sem elasticidade podem 
ser alocados para qualquer fila além de sua capacidade. 
Quando há demanda por esses recursos de filas que execu- 
tam abaixo da capacidade em um momento futuro, conforme 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING (>
as tarefas agendadas nesses recursos forem concluídas, elas serão atribuídas aos aplicativos 
em filas em execução abaixo da capacidade (a preempção também é suportada). Isso garante 
que os recursos estão disponíveis de forma previsível e elástica para filas, evitando assim silos 
artificiais de recursos no cluster que ajuda na utilização. 
* Multi-tenancy: conjunto abrangente de limites que são fornecidos para impedir que um 
único aplicativo, usuário e fila de recursos monopolize a fila ou o cluster como um todo, garan- 
tindo que o cluster não fique sobrecarregado. 
* Operabilidade: 
o Configuração de tempo de execução: as definições de fila e propriedades, como 
capacidade e ACLs, podem ser alteradas, em tempo de execução, por administradores de for- 
ma segura para minimizar a interrupção para os usuários. Além disso, um console é fornecido 
para que os usuários e administradores visualizem a alocação atual de recursos em várias filas 
no sistema. Os administradores podem adicionar filas em tempo de execução, mas as filas não 
podem ser excluídas em tempo de execução. 
o Aplicativos que drenam recursos: os administradores podem interromper filas em 
execução para garantir que os aplicativos existentes cheguem à conclusão, sem que nenhum 
novo aplicativo seja enviado. Se uma fila estiver no estado parado, novos aplicativos não po- 
dem ser enviados para ela ou para qualquer uma de suas filas-filho. Aplicativos existentes na 
fila continuam executando até a conclusão, portanto, a fila pode ser drenada graciosamente. 
Os administradores também podem reiniciar as filas interrompidas. 
* Agendamento baseado em recursos: suporte para aplicativos com uso intensivo de 
recursos, onde um aplicativo pode opcionalmente especificar recursos mais altos do que o 
padrão, acomodando assim aplicativos com requisitos de recursos diferentes. Atualmente, a 
memória é o requisito de recurso suportado. 
* Mapeamento de filas com base em usuário ou grupo: esse recurso permite que o usuá- 
rio direcione um trabalho para uma fila específica com base no usuário ou grupo. 
* Agendamento prioritário: este recurso permite que os aplicativos sejam enviados e agen- 
dados com prioridades diferentes. Valor inteiro maior indica prioridade maior para um aplicati- 
vo. Atualmente, a prioridade do aplicativo é suportada apenas para a política de ordenação FIFO. 
 
 Seek time x transfer time, o que faz diferença em 
soluções de Big Data 
Ocorre ao separar os arquivos em blocos de 128 MB (ou conforme configuração), e também 
armazenar de forma redundante (três nós por default) cada bloco, de forma que o arquivo 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING &
também esteja protegido. Por exemplo, um arquivo de 300 MB é dividido em três blocos: dois 
com 128 MB (A e B) e um com 44 MB (C), somente o último arquivo fica com tamanho menor 
que 128 MB para economia de espaço em disco, e cada bloco será gravado em DataNodes di- 
ferentes. À primeira vista pode parecer mais lento, contudo, como cada bloco será distribuído 
por mais que um nó, eles podem ser armazenados em paralelo, isto é, a somatória do tempo 
para quebrar o arquivo em blocos (não muito custoso), o tempo de se armazenar um bloco de 
128 MB (todos ao mesmo tempo), o tempo de checagem final. O que gera um desempenho 
muito mais rápido para arquivos maiores. 
Arquivo 3.000 MB 
NameNode A128 MB RPA: 
DataNode 1 DataNode 2 DataNode 3 DataNode 4 
Ls LET) 
A 128 MB 
Em caso de falha, as 
réplicas são usadas. 
A128 MB 
 
Figura 5. Blocos de Dados do HDFS 
São usados pipelines para gravação, uma espécie de negociação para garantir que os dados a 
serem gravados passem por um “túnel” virtual entre os DataNodes. As vantagens para a leitura tam- 
bém são maiores, pois podem ser paralelizadas, reduzindo o tempo de transferência (transfer time). 
EXEMPLIFICANDO 
Podemos comparar esse mapeamento em metadados no NameNode com a seguinte 
situação: um professor que conta quantas palavras há em um livro. Ele pode dividir, en- 
tre os alunos, os capítulos do livro e pedir para que cada um conte a palavra escolhida. 
Ele, então, compila os resultados e sabe a quantidade de vezes que a palavra aparece 
no livro muito mais rápido do que se fosse fazer sozinho. Ele ainda poderia colocar mais 
alunos por capítulo, para ter uma redundância de leitura e ter a certeza do resultado, 
caso algum aluno falte na próxima aula ou tenha sido desatento. O que o MapReduce 
faz é justamente o que esse professor fez, mas de uma forma muito mais eficiente no 
que diz respeito a grandes volumes de dados. 
 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING &
 
 Arquitetura Hadoop 
A arquitetura do Hadoop é baseada em clusters de serviços desenvolvidos em Java, 
com as camadas de gestão de arquivos (HDFS), de gestão de processos (YARN), de gestão 
de infraestrutura (Zookeeper e Ambari), de Metadados (HCatalog), de integração interna 
(Pig, Hive), de análise (Mahout) e computação distribuída (MapReduce). 
O Quadro 1 mostra, para melhor entendimento, essa arquitetura. 
QUADRO 1. HADOOP 
Enio 
Jeje) 
Computação distribuída 
Pc tol Computação distribuída e gestão de recursos 
PAD AI Va 
Sistema de arquivos distribuído 
Java VM 
Sistema operacional 
 
 Cluster Hadoop 
O cluster do Hadoop é uma instalação em que vários servidores são conectados e agem como se 
fossem um só, permitindo redundância e desempenho. Existem três tipos de instalação do Hadoop: 
* Standalone Mode (ou instalação local): não há processos em background (daemon), com 
todos os processos rodando em uma JVM (Java Virtual Machine). Esta configuração é indicada 
para rodar programas MapReduce durante o desenvolvimento ou aprendizado. 
* Pseudo Distributed Mode: todos os processos em background (daemon) rodam na mes- 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
ma máquina local, mas com independência. Pode ser usado como um ambiente intermediário 
entre desenvolvimento ou homologação, mas não é indicado para produção. 
* Multi-Node Cluster Mode: todos os serviços rodam em clusters de servidores. 
CORE SWITCH 
= 
CE switch 
SlaveNodes SlaveNodeshd Secondary NameNode SlaveNodes SlaveNodes 
ef 
SlaveNodes SlaveNodes ho dd SlaveNodes 
Css 
RACK 1 RACK 3 
 
Figura 6. Cluster do Hadoop 
 
 Processamento MapReduce 
O MapReduce é um modelo de programação desenhado para manipular dados de ma- 
neira paralela, isto é, executando várias tarefas ao mesmo tempo, dividin- 
do o trabalho de uma forma coerente e independente. VIDEOAULA 
CURIOSIDADE ÃO 
O MapReduce consegue levar o processamento para o mais próximo possível de onde 
os dados se encontram, uma premissa muito importante para o Big Data: é mais barato 
mover o processamento do que os dados. 
 
Como já vimos que os componentes são em Java, a portabilidade do código não se torna 
problema neste caso, ajudando na escalabilidade. A combinação das capacidades de distribui- 
ção de armazenamento e processamento entre o HDFS e o MapReduce é o que faz o Hadoop 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
ser o que é hoje: a espinha dorsal do Big Data. Um processo de contagem de palavras usando 
o MapReduce é parecido com o esquema da Figura 7, lembrando que pode parecer mais traba- 
lhoso para um exemplo simples ou arquivos pequenos, mas quando extrapolamos o volume 
de dados para terabytes, este processo se torna muito mais eficiente. 
Shuffling Reducing Resultado final 
=» 
— EEE 
O sabiá sabia [OR EEE) 
ESTE ——> MEDHO) ELE 
Quem sabia que assobiar,2 
PESE] —» EEESIETO) Quem,1 
assobiar ? que,1 
EIDUM — EINE 
— NEON 
 
Figura 7. Processo de contagem de palavra do MapReduce. 
 
 Cache distribuído e segurança 
O gerenciamento de cache centralizado no HDFS é um mecanismo de cache explícito que 
permite aos usuários especificar caminhos (paths) a serem armazenados em cache pelo HDFS. 
O NameNode se comunicará com DataNodes que têm os blocos desejados no disco e infor- 
ma-os a armazenar em cache os blocos no caches fora da heap (off-heap). O gerenciamento de 
cache centralizado no HDFS tem muitas vantagens significativas: 
* Afixação explícita (pinning) impede que os dados usados com frequência sejam removidos 
da memória. Isso é particularmente importante quando o tamanho do conjunto de trabalho 
excede o tamanho da memória principal, o que é comum para muitas cargas HDFS. 
* Como os caches DataNode são gerenciados pelo NameNode, os aplicativos podem consultar 
os locais de cache com bloqueio para tomar decisões de posicionamento de tarefas. A localização 
conjunta de uma tarefa com uma réplica de bloco em cache melhora o desempenho de leitura. 
* Quando o bloco foi armazenado em cache por um DataNode, os clientes podem usar 
uma nova API de leitura de cópia zero, mais eficiente. Uma vez que a verificação de checksum 
de dados armazenados em cache é feita uma vez pelo DataNode, os clientes podem reduzir a 
sobrecarga ao usar essa nova API. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
* O cache centralizado pode melhorar a utilização geral da memória do cluster. Ao de- 
pender do cache de buffer do sistema operacional em cada DataNode, leituras repetidas 
de um bloco resultarão em todas as réplicas n do bloco que está sendo puxado para o 
cache de buffer. Com o gerenciamento de cache centralizado, um usuário pode fixar ex- 
plicitamente apenas um número m das réplicas n economizando a memória da diferença 
entren-m. 
O gerenciamento centralizado de cache é útil para arquivos que são acessados re- 
petidamente. Por exemplo, uma pequena tabela de fatos no Hive - que é frequentemente 
usada para junções - é um bom candidato para armazenamento em cache. Por outro lado, 
armazenar em cache a entrada de uma consulta de relatório anual é provavelmente me- 
nos útil, uma vez que os dados históricos podem ser lidos uma vez só. O gerenciamento 
centralizado de cache também é útil para cargas de trabalho mistas com SLAs de desem- 
penho. Armazenar em cache um conjunto de trabalho, de uma workload de alta prioridade, 
assegura que ele não vai concorrer com a E/S de disco com uma carga de trabalho de baixa 
prioridade. A configuração de caches se dá no nível de arquivos ou pastas, não de blocos. 
NameNodes e DataNodes se comunicam através de heartbeats periódicos; os Name- 
Nodes verificam a necessidade de cache conforme os namespaces, gerencia as localida- 
des dos caches nos DataNodes, criando cache pools. 
Os pools de cache são uma entidade administrativa usada para gerenciar grupos de 
diretivas de cache. Eles têm permissões semelhantes às do UNIX, que restringem quais 
usuários e grupos têm acesso ao pool. As permissões de gravação permitem que os usuá- 
rios adicionem e removam diretivas de cache ao pool. Permissões de leitura permitem 
aos usuários listar as diretivas de cache em um pool, bem como metadados adicionais. 
As permissões de execução não são utilizadas. Pools de cache também são usados para 
gerenciamento de recursos. Pools podem impor um limite máximo, que restringe o nú- 
mero de bytes que podem ser armazenados em cache em agregação por 
 
 
 
diretivas no pool. 
Normalmente, a soma dos limites do pool será aproximadamente igual 
à quantidade de memória agregada reservada para o cache 
do HDFS no cluster. Os pools de cache também rastreiam 
várias estatísticas para ajudar os usuários de cluster a 
determinar o que deve ser armazenado em cache. Os 
pools também podem ter um tempo máximo de vida. 
Isso restringe o tempo máximo de expiração das direti- 
vas que estão sendo adicionadas ao pool. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING >
= 
Segurança 
O sistema de arquivos distribuído Hadoop (HDFS) implementa um modelo de permissões 
para arquivos e diretórios que compartilha grande parte do modelo POSIX. Cada arquivo e dire- 
tório está associado a um proprietário e a um grupo. O arquivo ou o diretório tem permissões 
separadas entre as que são do usuário proprietário e os outros usuários que são membros do 
grupo e ainda para todos os outros usuários. Para arquivos, a permissão “r” (read, “ler”, “leitura”) 
é necessária para ler o arquivo; a permissão “w” (write, “escrever”, “escrita”) é necessária para 
gravar ou acrescentar ao arquivo. Para diretórios, a permissão “r” é necessária para listar o con- 
teúdo do diretório, a permissão “w" é necessária para criar ou excluir arquivos ou diretórios, e a 
permissão “x” (execute, “executar”) é necessária para acessar uma pasta-filha do diretório. 
Em contraste com o modelo POSIX, não há nenhum bit “setuid" (set user id) ou “setgid" (set 
group id) para arquivos, pois não existe nenhuma necessidade de arquivos executáveis. Para 
diretórios, não há nenhum diretório com os bits setuid ou setgid com o objetivo simplificação. 
O sticky bit (bit de owner) pode ser ajustado em diretórios, impedindo que qualquer um, exceto 
o superusuário, o proprietário do diretório ou o proprietário do arquivo, de suprimir ou de 
mover os arquivos dentro do diretório. Definir o sticky bit para um arquivo não tem efeito. 
Coletivamente, as permissões de acesso de um arquivo ou diretório dentro do HDFS são 
controladas pelos mesmos “modos” do Linux ou Unix. São flags binários que identificam o tipo 
de acesso permitido por usuário, grupo ou usuário root (administrador). Em geral, os formatos 
UNIX para representar e exibir modos serão usados, incluindo o uso de números octais nesta 
descrição. Quando um arquivo ou um diretório é criado, seu proprietário é a identidade do 
usuário do processo do cliente e seu grupo é o grupo do diretório-pai (a regra BSD). 
O HDFS também fornece suporte opcional para POSIX ACLs (listas de controle de aces- 
so) para aumentar as permissões de arquivo, com regras mais refinadas para usuários 
nomeados específicos ou grupos nomeados. Cada processo de cliente que acessa o HDFS 
tem uma identidade de duas partes composta pelo nome de usuário e lista de grupos. 
Situações em que o HDFS deve fazer uma verificação de permissões para um arquivo ou 
diretório foo acessado por um processo decliente: 
* Se o nome de usuário corresponder ao proprietário do foo, as permissões do proprietário 
serão testadas; 
* Caso contrário, se o grupo de foo corresponder a qualquer um dos membros da lista de 
grupos, as permissões de grupo serão testadas; 
* Caso contrário, as outras permissões de foo são testadas. 
Se uma verificação de permissões falhar, a operação do cliente falhará. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
 
 Identidade do usuário 
A partir do Hadoop 0.22, ele oferece suporte a dois modos de operação diferentes para deter- 
minar a identidade do usuário, especificada pela propriedade hadoop.security.authentication: 
* Simples: neste modo de operação, a identidade de um processo de cliente é determinada pelo 
sistema operacional do host. Em sistemas Unix-like, o nome de usuário é o equivalente a “whoami"; 
* Kerberos: neste tipo de operação, a identidade de um processo de cliente é determinada por 
suas credenciais de Kerberos. Por exemplo, em um ambiente com Kerberos, um usuário pode usar 
o utilitário kinit para obter um tíquete de concessão de permissão Kerberos (TGT) e usar klist para 
determinar seu principal atual. Ao mapear uma entidade Kerberos para um nome de usuário do 
HDFS, todos os componentes, exceto os primários, são descartados. Por exemplo, um principal 
Todd/foobarQCORP.COMPANY.COM atuará como o simples nome de usuário Todd no HDFS. 
Independentemente do modo de operação, o mecanismo de identidade do usuário é ex- 
trínseco para o próprio HDFS. Não há nenhuma provisão no HDFS para criar identidades de 
usuário, estabelecer grupos ou processar credenciais de usuário. 
 
 Ecossistema Hadoop 
O ecossistema do Hadoop é uma plataforma integrada, um framework, no qual podemos 
resolver os principais problemas do Big Data. Com esse ecossistema, é possível implementar 
um grande número de serviços, controlando o ciclo de vida das aplicações mais avançadas. Tal 
ecossistema possui ferramentas para a aquisição ou ingestão de dados, armazenamento, trans- 
formação, análise, manutenção e disponibilização de enormes quantidades de dados. 
Gestão de Search & Indexing NosaQL Database 
Streaming Analítico & SQL O 
E 
Processos em diferentes Scripting -PIG 
Scheduling 
Gerenciamento e Coordenação 
Apache ZooKeeper"* 
 
Figura 8. Captura de tela do ecc terr 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
Flume 
O Flume é um serviço distribuído, confiável e disponível para coletar, agregar e mover gran- 
des quantidades de dados de log eficientemente. Ele tem uma arquitetura simples e flexível 
baseada em fluxos de dados de streaming. É robusto e tolerante a falhas com mecanismos de 
confiabilidade ajustáveis e muitos mecanismos de recuperação de falhas. 
Sqoop 
O Sqoop é uma ferramenta projetada para transferir dados entre o Hadoop e os ban- 
cos relacionais 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 arquivo distribuído Hadoop (HDFS), transformar os dados no 
Hadoop MapReduce e, em seguida, exportar os dados de volta para um RDBMS. 
MapReduce 
O Hadoop MapReduce é uma estrutura de software para escrever facilmente aplicações que pro- 
cessam vastas quantidades de dados (conjuntos de dados de vários terabytes) em paralelo em gran- 
des clusters (milhares de nós) de hardware mais comuns, de forma confiável e tolerante a falhas. 
Zookeeper 
O ZookKeeper é um serviço centralizado 
para manter informações de configuração, 
nomear, fornecer sincronização distribuída 
e serviços de grupo. Todos esses tipos de 
serviços são usados de alguma forma ou 
de outra por aplicativos distribuídos. Cada 
vez que eles são implementados, há muitas 
tarefas que são necessárias para corrigir os 
bugs e condições de execução, as vezes ine- 
vitáveis. Por serem de implementação mais 
complexa, as aplicações geralmente econo- 
mizam no seu desenvolvimento, o que os 
 
torna frágeis na presença de mudança e de 
difícil gestão. Mesmo quando feito corretamente, diferentes implementações desses servi- 
ços levam à complexidade de gerenciamento, após a implantação dos aplicativos. 
Oozie 
O Oozie é um aplicativo web em Java usado para agendar trabalhos do Apache Hadoop. Ele 
combina vários trabalhos em MapReduce ou Pig sequencialmente em um fluxo (workflow), criando 
uma unidade lógica de trabalho. Essa unidade lógica é executada em um servlet-container Java. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
Para os propósitos do Oozie, um fluxo de trabalho é uma coleção de ações (MapReduce ou Pig) 
organizadas em uma dependência de controle DAG (Directed Acyclic Graph). A dependência entre 
ações significa que a segunda ação não pode ser executada até que a primeira ação seja concluída. 
As definições de fluxos de trabalho do Oozie são escritas em hPDL (uma linguagem de defini- 
ção de processo XML semelhante ao JBOSS JBPM jPDL). 
O Oozie inicia as ações de fluxo de trabalho em sistemas remotos. Após a conclusão da ação, 
o sistema retorno chama o Oozie para notificar a conclusão da ação. Nesse momento, Oozie 
prossegue para a próxima ação no fluxo de trabalho. 
O Oozie usa um SecurityManager personalizado dentro do seu lançador para capturar cha- 
madas exit(), capturando o código de saída definido pelo usuário. 
O workflow do Oozie contém nós de fluxo de controle e nós de ação. 
Os nós de fluxo de controle definem o início e o fim de um fluxo de trabalho (nós de início, 
término e falha) e fornecem um mecanismo para controlar o caminho de execução do fluxo de 
trabalho (decisão, bifurcação e nós de junção). 
Os nós de ação são o mecanismo pelo qual um fluxo de trabalho aciona a execução de uma 
tarefa de computação/processamento. O Oozie fornece suporte para diferentes tipos de ações: 
MapReduce, sistema de arquivos Hadoop, Pig, SSH, HTTP, eMail e subfluxo de trabalho do Oozie, 
que pode ser estendido para suportar o tipo adicional de ações. 
Os fluxos de trabalho do Oozie podem ser parametrizados - usando variáveis, como $ finputDir), 
dentro da definição do workflow. Ao enviar uma tarefa de fluxo de trabalho, valores para os parâme- 
tros devem ser fornecidos. Se corretamente parametrizada (ou seja, usando diferentes diretórios de 
saída), vários trabalhos de fluxo de trabalho idênticos podem ser executados simultaneamente. 
Ambari 
O Apache Ambari é uma ferramenta para provisionamento, gerenciamento e monitoramento de 
clusters do Apache Hadoop. O Ambari consiste em um conjunto de APIs RESTful e uma interface 
de gerenciamento baseada em navegador. O Ambari permite aos administradores de sistema os 
seguintes serviços: 
* Provisionar um cluster do Hadoop: o Ambari fornece um assistente passo a passo, fácil de 
usar, para instalar os serviços do Hadoop em qualquer número de hosts. O Ambari lida com a confi- 
guração dos serviços do Hadoop para o cluster. 
* Gerenciar um cluster do Hadoop: o Ambari fornece gerenciamento central para iniciar, inter- 
romper e reconfigurar os serviços do Hadoop em todo o cluster. 
* Monitorar um cluster do Hadoop: o Ambari fornece um painel para monitorar a integridade 
e o status do cluster do Hadoop. O Ambari enviará e-mails quando houver necessidade de atenção, 
como por exemplo, um nó cai, ou espaço em disco restante é baixo etc. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
POEIRA a eo 
€Ambari-xdhdp » 
c 
UCL | 
O HDFS Summary ' Configs Service Actions v 
O MapReducez 
Summary Alerts and Health Checks % 
O vYARN 
Spring XD Admin O Started 
Bi Naqios ds No alerts 
Spring XD HSQL Database O Started 
Spring XD Containers 2/2 Spring XD Containers 
O ZooKeeper ERo 
Spring XD Shell 1 Spring XD Shell installed 
O Kafka 
O cangiia 
Actions 
Licensed under the Apache License, Version 2.0. 
See third-party tools/resources that Ambari uses and their respective authors 
 
Figura9. Captura de tela do Ambai 
Apache Kafka 
É uma plataforma versátil de armazenamento e também de streaming com três princi- 
pais recursos: 
* Permite a publicação e a assinatura de fluxos de registros, semelhante a uma fila de men- 
sagens ou a um sistema de mensagens corporativo; 
* Armazena fluxos de registros em uma maneira durável e tolerante a falhas; 
* Processa fluxos de registros à medida que ocorrem. 
Storm 
Apache Storm é um sistema de computação em tempo real distribuído. Ele facilita o proces- 
so de fluxos de dados não limitados (streaming) de maneira confiável, fazendo para processa- 
mento em tempo real o que o Hadoop fez para processamento em lote (batch). Ele é simples e 
pode ser usado com qualquer linguagem de programação. 
O Storm tem muitos casos de uso: análise em tempo real, aprendizado de máquina on-line, 
computação contínua, RPC (Remote Procedure Call) distribuído, ETL, etc. Ele é rápido: seu parã- 
metro de velocidade é um benchmark que foi cronometrado com um processamento de mais 
de um milhão de tuplas (linhas de dados) processadas por segundo, em cada nó de servidores 
em cluster. É escalável e tolerante a falhas, garante que os dados sejam processados e possui 
facilidade de configuração e operação. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING E
O Storm se integra a tecnologias de queueing (enfileiramento) e de banco de dados 
que você já usa. Uma topologia Storm consome fluxos de dados e processa esses fluxos 
de maneiras arbitrariamente complexas, particionando os fluxos entre cada estágio da 
computação que se possa necessitar. 
Cluster Summary 
Version Nimbus uptime Supervisors Used slots Total stots Execurors 
Topology summary 
Name tá Mum workers Num executars Mum tasks 
Supervisor summary 
td Host 
Nimbus Configuration 
Key 
 
Figura 10. Te jo Apache St 
Solr 
O Solr é uma plataforma de busca corporativa de código aberto, construído sobre Apache Lucene. 
É altamente confiável, escalável e tolerante a falhas, fornecendo indexação distribuída, replicação e 
consultas com balanceamento de carga, failover e recuperação automatizados e possui configuração 
centralizada. É utilizada por recursos de pesquisa e navegação dos maiores sites do mundo. 
O Solr é um servidor autônomo de pesquisa corporativa com uma API REST. Colocam-se os 
documentos nele - chamado de indexação - via JSON, XML, CSV ou binário sobre HTTP. As con- 
sultas podem ser feitas via HTTP GET e receber JSON, XML, CSV ou resultados binários. Suas 
principais características são: 
* Recursos avançados de pesquisa de texto completo: empoderado por Lucene, o Solr 
permite capacidades de pesquisa avançadas, incluindo frases, curingas, junções e agrupamen- 
to em qualquer tipo de dados. 
* Interfaces de administração abrangentes: o Solr é fornecido com uma interface de 
usuário administrativa integrada e responsiva para facilitar o controle de suas instâncias. 
* Indexação quase em tempo real: o Solr aproveita os recursos de indexação em tempo 
real do Lucene para garantir que seja visto o conteúdo muito rapidamente. 
* Desempenho para tráfego de alto volume: o Solr é provado por empresas que possuem 
largas escalas de conteúdos em todo o mundo. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING &
* Padrões de interfaces abertas baseadas em XML, JSON e HTTP: o Solr usa as ferramen- 
tas mais avançadas para a criação de interfaces de usuário. 
* Altamente escalável e tolerante a falhas: construído sobre o Apache Zookeeper testado 
em ambientes de alto desempenho, o Solr facilita a expansão para horizontal e vertical. Ele 
possui replicação, distribuição, (re)jbalanceamento e tolerância a falhas. 
* Arquitetura capaz de se expandir: o Solr publica muitos pontos de extensão bem defini- 
dos que facilitam a conexão de plugins de indexação e de consulta. E ainda sendo uma ferra- 
menta de código aberto, é possível alterar qualquer parte do sistema. 
eee « D localhost 8983 sair jgorunostartediquery 
Solr* ==" 
common “responsencador”:( 
a Dishboara a “aNConsec tas" rirvo, 
cotatustio, 
E Legging á -orime 519, 
= Cova 
Use original Us (dy 
3 Colections 
twerargasar, 
*rieenessz1ar |), 
Tivead Dumo “response”: (“ausrouad”: 4374," start";0, “masscoro"s1.0, "docs": 
E Java Properties 
“LA i/UsOra/saroue/Lemp/n01x-6.2.0/d0ca /MOLE-ClUstering/overviou-somary.ntal”, 
cetro size": [6039], 
4 a “ante s("avIs-08-20TU0L0OL00RT 1, 
pettigotated 
“x parsod, by": ["org.apacho.sixa.parsor.cotauitrarser”, 
T *org.apacho.tika parser.btml MtnlPacser" ], 
a cutroam content trpo”s (to: ) 
“do Minie" i|“oracviow (s0iz Ary o 
“content cncoding"s| urr-1"], 
Ram Query Purameners “content trpo himt"s ["toxt/binly charaotesst-8"1, 
“Pesoureonamo" 1("/Usera/sarowe/temp/s0ir-4.2.0/4008/solr-clustering/ovorvicu-summary ntal" 1, 
a "title": ["Overvicu (SoLr 6.2.0 API3")o 
Fon ; “eoatent type rp sext/ntami, cnecsermuzr-s), 
“o veeshos "11545953415967676672), 
Dindemt 
debugQuery “46"4"/Usera/sarovertezp/s01r-6.2 .0/docs/s0Lt-cluntering/0rg /apache/s0Lr (handler /clustering/Clustoringrarass.t 
“stream sixe"r [12609], 
“antera "ab i6-06-JOTHOr Corea" 1, 
“x parse by": ["org.apacho.tila.parser .Ootaultparmer”, 
“org apache. tika parser,búal Mtairacser" 1, 
“utroam content tppo"sp"toxs/nusio], 
“de tinio"s | Clusteringrarasa (solr 6.3.0 apr), 
“esatent encoding' stTUTT-S"], 
“content, trpo Mint" [“text/Dtnl; charactmatts"], 
“EvooUroUMAMO” 1["/Usero/varome/Lemp/991T-4.2.0/4008/00LE-SistOring/0r9/apacho/polx/nandlor/clustoring/Ciusta 
relatos pres sngtarams (Sole 6.3.0 Apt)"), 
“oontent type" il text/ntml; charsersure-s 1, 
* Nr atos ":154595 34 6017623040, 
Figura 11. Captura de tela do Solr 
Lucene 
O Apache Lucene fornece uma biblioteca de tecnologia de indexação e pesquisa baseada 
em Java, bem como verificação ortográfica, realce de ocorrências e recursos avançados de 
análise/tokenização. 
Spark 
O Apache Spark é um sistema de computação de cluster rápido e de uso geral. Ele fornece 
APIs de alto nível em Java, Scala, Python e R e um mecanismo otimizado que oferece suporte 
a gráficos de execução geral. Ele também suporta um rico conjunto de ferramentas de nível 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
superior, incluindo o Spark SQL para SQL e processamento de dados estruturados, MLlib para 
aprendizado de máquina, GraphX para processamento de gráfico e Spark streaming. O Spark 
usa as bibliotecas de cliente do Hadoop para HDFS e YARN. 
Soa Stages Storage Environment Executors Spark UI Tester application UI 
Spark Stages 
Total Duration: 20.3 s 
Scheduling Mode: FIFO 
Active Stagos: 1 
Completed Stages: 4 
Failed Stages: 1 
Active Stages (1) 
Stage ld Description Submitted Duration Tasks; SucceedediTotal 
5 Portinly failed phase 2013/09/25 13:02:09 64 ms EE 1510043 fnãos) 
count at UlWorkloadGenerator.scala:72 
Completed Stages (4) 
Stage Id Description Submitted Duration Tasks: SucceedediTotal 
Single Shuffle 2013/09/25 13:02:00 185 cc QOLIDO ai) 
count at UlWorkioadGenerator.scala:63 
Singio Shutt zonas sono 145 Co tono 
reduceByKey at UlWorkoadGenerator.scala:63 
Cache and Count 2013/09/25 13:01:54 108 co g0n0O 
 
Figura 12. Captura de tela do Spark 
Pig 
Apache Pig é uma plataforma para a análise de grandes conjuntos de dados que consistem 
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 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 MapReduce, 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 temas seguintes propriedades-chave: 
* Facilidade de programação. É trivial para alcançar a execução paralela de simples 
tarefas de análise de dados 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, tornando-as 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, permitindo que o usuário se concentre na 
semântica em vez de se concentrar na eficiência. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
* Extensibilidade. Os usuários podem criar suas próprias funções para fazer o processa- 
mento de propósito especial. 
Hive 
A linguagem do Apache Hive facilita a lei- 
tura, a escrita e o gerenciamento de grandes 
datasets que residem em armazenamento 
distribuído e 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, permitindo, em conse- 
 
quência, tarefas de armazenamento de da- 
dos, como extração/transformação/carga (ETL), relatórios e análise de dados; 
* 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. 
Drill 
Consulta vários datastores não relacionais. Com o Drill, é possível suportar uma variedade 
de bancos de dados e sistemas de arquivos NoSQL, incluindo HBase, MongoDB, MapR-DB, 
HDFS, MapR-FS, Amazon S3, armazenamento de BLOBs do Azure, Google Cloud Storage, Swift, 
NAS e arquivos locais. Uma única consulta pode unir dados de vários datastores. Por exemplo, 
é possível unir em uma coleção armazenada em MongoDB com um diretório de logs de even- 
tos no Hadoop. 
O otimizador com reconhecimento de datastore da Drill reestrutura automaticamente 
um plano de consulta para aproveitar os recursos de processamento internos do datas- 
tore. Além disso, o Drill oferece suporte à localidade de dados, portanto, é uma boa solu- 
ção instalar o Drill e o datastore nos mesmos nós. 
Os mecanismos de consulta tradicionais exigem uma intervenção de especialistas em Tl antes 
que os dados possam ser consultados. O Drill libera essa sobrecarga para que os usuários possam 
apenas consultar os dados brutos como estão. Não é necessário carregar os dados, criar e manter 
esquemas ou transformá-los antes que ele possa ser processado. Em vez disso, basta incluir o 
caminho para um diretório do Hadoop, a coleção MongoDB ou o Bucket do S3 na consulta SQL. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
O Drill aproveita as técnicas avançadas de compilação e recompilação de consultas 
para maximizar o desempenho sem exigir conhecimento inicial do esquema. 
SELECT * FROM dfs.root. /web/logs'; 
SELECT country, count(*) 
FROM mongodb.web.users 
GROUP BY country; 
SELECT timestamp 
FROM s3.root.'clicks.json” 
WHERE user id = 'jdoe'; 
Trate os dados como uma tabela mesmo quando não o são. O Drill apresenta um modelo 
de dados JSON que permite consultas em dados complexos ou aninhados, bem como estrutu- 
ras em rápida evolução usadas em aplicativos modernos e datastores não relacionais. O Drill 
também fornece extensões intuitivas para SQL para consultar facilmente dados complexos. 
Drill é o único mecanismo de consulta colunar que oferece suporte a dados complexos. Ele pos- 
sui uma representação colunada em memória fragmentada para dados complexos que permite 
que Drill atinja a velocidade colunar com a flexibilidade de um modelo de documento JSON interno. 
O Drill suporta SQL padrão. Usuários corporativos, analistas e cientistas de dados podem 
usar ferramentas padrão de Bl/Analytics, como Tableau, Qlik, MicroStrategy, Spotfire, SAS e 
Excel, para interagir com datastores não relacionais, aproveitando os drivers JDBC e ODBC do 
Drill. Os desenvolvedores podem aproveitar a API REST simples do Drill em seus aplicativos 
personalizados para criar visualizações bonitas. 
Os conjuntos de dados virtuais da Drill permitem que até mesmo os mais complexos e não 
relacionais sejam mapeados em estruturas amigáveis ao Bl, que os usuários podem explorar e 
visualizar usando sua ferramenta escolhida. 
A escalabilidade do Drill vai desde um laptop até 1.000 servidores. Ele pode ser executado 
em Mac, Windows e Linux e, dentro de um minuto ou dois, você estará explorando seus da- 
dos. Quando estiver tudo pronto para utilizar, o Drill pode ser implantado em um cluster de 
servidores comuns e o mecanismo de execução mais escalável e de alto desempenho estará à 
disposição da aplicação. A arquitetura simétrica do Drill (todos os servidores nós são iguais) e 
a instalação simples facilita a implantação e o funcionamento de clusters muito grandes. 
Drill combina flexibilidade e velocidade. Para conseguir isso, o Drill apresenta uma arquite- 
tura radicalmente diferente que permite o desempenho de quebra de registro sem sacrificar a 
flexibilidade oferecida pelo modelo de documento JSON. O projeto do Drill inclui: 
* Mecanismo de execução colunar (o primeiro a oferecer suporte a dados complexos). 
* Compilação e recompilação orientadas por dados em tempo de execução. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
* Gerenciamento especializado que reduz a necessidade de memória e elimina o garbage 
collection (mecanismos de liberação de memória). 
* Execução com reconhecimento de localidade que reduz o tráfego de rede quando o Drill é 
instalado no mesmo datastore. 
* Otimizador avançado baseado em custo que envia o processamento para o datastore 
quando possível. 
Apeche Ori - Monta Firefoa 
Date Bebete Anicre Cront Lesezeichen Entas Huse 
Apache Dem x,+ 
€ 3 Sucre Ovc nb Vs A O. = 
Eresmemo Egfesms Pra []Puimegweteml. GG FSomtims Brest Bm E GNOME Obenerrer E Grome Team Desa E Stumsaaieenerr.. [lana »” 
Query and Planning 
Query Physical Plan 
SOL (PHYSICAL -,LOGICAL 
Re-run query 
Cancel query 
Query Profile 
Figura 13. Capt 
HBase 
O HBase não é adequado para todos os problemas. 
Primeiro, é necessário certificar-se do volume de dados suficiente. Se a solução precisa gerenciar 
centenas de milhões ou bilhões de linhas, então HBase é um bom candidato. Se forem apenas alguns 
milhares/milhões de linhas, então é melhor usar um RDBMS tradicional, devido ao fato de que todos 
os dados podem ocupar apenas um único nó (ou dois) e o resto do cluster pode estar ocioso. 
Segundo, 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, índi- 
ces 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 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
driver JDBC, por exemplo. Considere a mudança de um RDBMS para HBase como uma re- 
formulação completa em contraposição a uma simples estratégia de portar conectividade. 
Terceiro, certifique-se de ter hardware sufi- 
ciente. Mesmo o HDFS não desempenha bem 
com menos de cinco DataNodes (devido a coi- 
sas 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 quan- 
do precisamos de acesso de leitura/gravação 
em tempo 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 clustersde 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 BigTable do Google: um sistema de armazenamento distri- 
buí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. 
Algumas características dele: 
* Escalabilidade linear e modular; 
* Leituras e gravações estritamente consistentes; 
* Fragmentação automática e configurável de tabelas; 
* Suporte a failover automático entre RegionServers; 
* Classes base convenientes para fazer backup de trabalhos do Hadoop MapReduce com 
tabelas Apache HBase; 
* API Java fácil de usar para acesso de cliente; 
* Cache de blocos e filtros Bloom para consultas em tempo real; 
* Filtros de consulta são enviados para servidores escravos por intermédio de Server side filters; 
* Gateway de thrift e um serviço da Web REST-ful que oferece suporte a XML, Protobuf e 
opções de codificaçã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. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING &
 
Figura 14. Captura de tela de Configuração do HBase 
Mahout 
Apache Mahout (TM) é uma biblioteca de álgebra linear com capacidade de computação distribuí- 
da projetada para permitir que matemáticos, estatísticos e cientistas de dados implementem rapi- 
damente seus próprios algoritmos. Possui ferramentas de machine learning para recomendação (de 
produtos, por exemplo), classificação e clustering. Suporte para vários backend's distribuídos (incluin- 
do o Apache Spark) e possui solvers nativos modulares para aceleração de CPU/GPU/CUDA. 
Spark MLlib 
O Spark MLlib é uma biblioteca de machine learning oferecida pelo Spark. Ela possui facilidade 
de uso e pode ser integrada às linguagens Java, Scala, Python e R. 
A MLlib está embutida nas APIs do Spark e interage com o NumPy em Python (a partir da ver- 
são 0.9) e bibliotecas R (a partir da versão 1,5). Interage com qualquer fonte de dados do Hadoop 
(por exemplo, HDFS, HBase ou arquivos locais), facilitando a conexão em fluxos de trabalho do 
Hadoop. Os seus algoritmos de alta qualidade são até 100 vezes mais rápidos que o MapReduce. 
O Spark se destaca na computação interativa, permitindo que o MLlib rode rápido. Ao mes- 
mo tempo, preocupa-se com o desempenho algorítmico: MLlib contém algoritmos de alta qua- 
lidade que aproveitam a iteração e podem produzir melhores resultados do que as aproxima- 
ções on-pass usadas no MapReduce. 
O Spark é executado em Hadoop, Apache Mesos, Kubernetes, autônomo ou em cloud e ou- 
tras diversas fontes de dados. Ainda pode ser usado em modo de cluster autônomo, no EC2, 
no Hadoop YARN, no Mesos ou no Kubernetes. Acessando dados em HDFS, Apache Cassandra, 
Apache HBase, Apache Hive e centenas de outras fontes de dados. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
MLlib contém muitos algoritmos e utilitários. Os algoritmos de ML incluem: 
* Classificação: regressão logística, naive Bayes etc.; 
* Regressão: regressão linear generalizada, regressão de sobrevivência (survival regression) etc.; 
* Árvores de decisão (decision trees), florestas aleatórias (random forest) e gradient-booster trees. 
* Recomendação: mínimos quadrados alternados (ALS); 
* Clustering: K-means, misturas gaussianas (GMMS) etc.; 
* Modelagem de tópicos: alocação de Dirichlet latente (LDA); 
* Conjuntos de itens frequentes, regras de associação e mineração de padrão sequencial. 
Os utilitários de fluxo de trabalho ML incluem: 
* Transformações de recursos: padronização, normalização, hashing; 
* Construção de pipeline de ML; 
* Avaliação do modelo e ajuste do Hyper-parâmetro; 
* Persistência de ML: salvando e carregando modelos e pipelines. 
Outros utilitários incluem: 
* Álgebra linear distribuída: SVD, PCA etc. 
* Estatísticas: estatísticas resumidas, testes de hipóteses etc. 
MLlib é desenvolvido como parte do projeto Apache Spark. Ele é, portanto, testado e 
atualizado a cada lançamento do Spark. É um projeto da Apache que continua a ter um 
rápido crescimento. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING <>
Sintetizando N 
 
As verdadeiras soluções de Data Science necessitam de dados corretos oriundos das 
fontes mais confiáveis. Isso incorre em conectar as fontes mais diversas ao processo de 
Big Data. Um verdadeiro sistema nervoso precisa ser criado para alimentar a criatividade 
e a necessidade de relacionamentos e o dinamismo que as corporações 
 
 
 
necessitam. O Hadoop é este framework e também um ecossistema 
que integra soluções flexíveis, escaláveis e tolerantes a falhas. Por 
ser modular, facilita sua flexibilidade, por ser flexível, atende a um 
enorme número de aplicações e se adapta a diferentes tipos de 
servidores, que podem ser agregados conforme a necessidade 
das aplicações, maximizando os investimentos em infraestrutura. 
 
Graças ao HDFS, o Hadoop consegue gerenciar arquivos imensos, dis- €> 
tribuídos em clusters, com alta capacidade de processamento paralelo. O 
MapReduce oferece uma forma de processar os dados de forma distribuída, simultanea- 
mente e com confiabilidade. O YARN controla todos os recursos dos clusters, inclusive 
o MapReduce. O Hadoop implementa a premissa de que é mais fácil e barato mover o 
processamento do que os dados. 
Podemos comparar o problema do Big Data à seguinte situação: um cozinheiro abre 
um restaurante, no centro da cidade. No início ele dá conta de tudo, atendendo até qua- 
tro pedidos por hora, mas, com o sucesso do restaurante, mais pessoas começam a 
frequentá-lo, exigindo seis pedidos por hora. Ele se vê necessitado de um outro cozi- 
nheiro e o contrata, contudo, há um só fogão e uma geladeira. A concorrência entre eles, 
para acessar os ingredientes e preparar a comida, não está dando mais certo, e agora 
o restaurante precisa atender 10 pedidos por hora. A solução é contratar ajudantes de 
cozinha, que preparam os ingredientes com seus respectivos armários, e os dois cozi- 
nheiros preparam os pratos em dois fogões, criando uma estrutura funcional. 
 
 
 
Os armários com os ingredientes nunca se movem, pois guardam o que é 
mais pesado. As pessoas se tornam especialistas (que representam os pro- 
cessos) e se movem para levar os itens para a preparação de 
acordo como pedido dos clientes. Se alguma coisa acontece 
com um armário, ou o ingrediente de um armário acaba 
(falha), o ajudante pode buscar em outros armários, ou os 
outros ajudantes assumem o seu papel, enquanto ele vai 
ao supermercado (reparo). 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING Cm)
Junto com o Hadoop, há soluções de Data Science prontas para o uso em análise de 
dados, tais como: 
* O HBase, que é um bando baseado em coluna e nosQL para consultas; 
* O Hive, que implementa acesso usando SQL; 
* O Drill, que se conecta com as principais ferramentas de análise de dados, tais como 
Tableau, Excel etc.; 
* O Mahout, que é uma biblioteca de álgebra linear e de machine learning e recomendação; 
* O Spark com a MLlib, que é uma biblioteca de machine learning integrável com mui- 
tas linguagens tais como: Python, Java, Scala e R. 
pao 
Ao 
 INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING (=>
A = “pe sq. 
Referências bibliográficas à 
[JN 
APACHE HADOOP. Apache Hadoop 2.9.2. Disponível em: <http://hadoop.apache.org/docs/ 
current/>. Acesso em: 27 mai. 2019. 
APACHE HADOOP. Welcome to Apache Pig! Disponível em: <http://pig.apache.org/>. Acesso 
em: 27 mai. 2019. 
CAVANILLAS, J. M. et al (eds.). New Horizons for a Data-Driven Economy: a Roadmap for Usa- 
ge and Exploitation of Big Data in Europe. Nova lorque: Springer Open, p. 39-61, 2016. 
D-WAVE.Quantum Computing. Disponível em: <https://www.dwavesys.com/quantum-com- 
puting>. Acesso em: 27 mai. 2019. 
NEWGENAPPS. What Is Hadoop and How It Changed Data Science? 13 mar. 2018. Disponível 
em: <https://www.newgenapps.com/blog/what-is-nadoop-and-how-it-changed-data-scien- 
ce>. Acesso em: 27 mai. 2019. 
O'REILLY MEDIA. Big Data Now - Current Perspectives from O'Reilly Media. Califórnia: O'Reilly 
Media, 2012. 
SQREAM. Dead or Alive and Kicking? Big Data Helps Retail Revive. 11 jul. 2017. Disponível em: 
<https://sgream.com/dead-or-alive-and-kicking-big-data-helps-retail-revive/>. Acesso em: 27 
mai. 2019. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
 
DELAS EDIT ET 
& Analisar soluções comerciais que usam a 
infraestrutura do Hadoop e suas aplicações; 
& Analisar a solução do Apache Group denominada 
Spark, que amplia a utilização do Hadoop para 
aplicações on-line e Machine Learning; 
& Aprender sobre outros componentes que podem ser 
acrescentados à infraestrutura de Data Science. 
ALGUM 
Clique aqui 
 
ES ERES UT [o 
& Soluções comerciais com o Hadoop DE Te ico] 
O Cloudera 
O Hortonworks 
O MapR & MongoDB 
O Pivotal O Cassandra 
€ Windows Azure HDInsigh O CouchDB 
O Databricks 
O Domino Data Labs 
& Bancos de dados NosQL 
& Introdução ao Apache Spark 
O Spark Framework 
& Spark x Hadoop 
DR ETe MA 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING E
 
 Soluções comerciais com o Hadoop 
O Hadoop é uma solução Open Source da Apache Software Foundation, e também faz parte 
de alguns pacotes comerciais de infraestrutura de Big Data e de aplicações em Cloud Compu- 
ting. As empresas de tecnologia investem no desenvolvimento do produto em código aberto 
para a comunidade e também incorporam os sistemas em seus pacotes - o que pode parecer 
contraditório ou não, dependendo do ponto de vista. As razões são muitas e podemos desta- 
car algumas: 
* As empresas investem em soluções de código aberto, agregando tecnologia e também 
recebendo know-how em forma de propriedade intelectual (código fonte) de uma comunidade 
engajada em soluções robustas; 
* As empresas identificam necessidades específicas de mercados e criam novos componen- 
tes que ajustam as soluções Open Source para atender a estas demandas; 
* As empresas vendem serviços de integração de suporte mais apropriado para o mercado, 
garantindo níveis de serviços mais robustos (atendimento 24x7, tempo de resposta em 15 mi- 
nutos, solução em quatro horas, por exemplo); 
* Integrações com outras soluções de mercado. Ip) SAT 
 
EXPLICANDO o 
Know-howé um termo em inglês que significa “saber como”. O conceito diz respeito ao 
conjunto de técnicas, procedimentos ou métodos adquiridos pela prática e utilizados 
para executar uma ou várias tarefas que agregam valor à empresa. 
 
Visões dos clientes das soluções ou do mercado: 
* Motivos para utilização de soluções em código aberto: 
* Baixo custo de licenças; 
* Independência de fabricantes, muitos fabricantes mudam estratégia de negócios ou são 
comprados por outras empresas e podem tornar o suporte instável. As soluções de código 
aberto são suportadas pela comunidade: quão mais forte for a comunidade, melhor será o 
suporte e a sua estabilidade; 
* A possibilidade de modificar e customizar a solução, principalmente de acordo com os 
padrões de mercado. 
Motivos para não adotarem soluções Open Source: 
* Acreditam que pode haver falhas de segurança, sendo estas comprovadas ou não; 
* Acreditam que depender dos testes da comunidade para que os produtos possam ter 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING (>
 confiabilidade pode não ser o suficiente para a estabilidade da solução; RETA: 
* Entendem que apesar dos custos serem menores, há um custo de ma- Walita 
nutenção da solução, ou custo total de propriedade (TCO - Total Cost of Ow- 
nership), escondidos ou difíceis de serem previstos antecipadamente; o) 
* A complexidade das soluções exige recursos humanos especializados e dedicados. 
Como observamos, os motivos são variados e, de novo, as corporações precisam de jus- 
tificativas claras, alinhadas às estratégias de negócio e principalmente o seu core business 
(linha de atuação principal). Empresas com espinha dorsal baseada em tecnologia podem 
ter em seu staff profissionais gabaritados para usufruir do melhor que as soluções Open 
Source podem oferecer, com o TCO entendido como um investimento. Já empresas que 
possuem o foco em outras áreas podem preferir terceirizar com as soluções comerciais 
que cuidam de grande parte do processo de suporte, atualização etc. 
O Hadoop está presente nas soluções: Cloudera, Hortonworks, Mapr, Pivotal e Windows 
Azure HDInsight. 
&, 
Cloudera 
A abordagem da Cloudera à inovação tem sido fundamental para atender às demandas 
dos clientes e diferenciar sua solução. A Cloudera aproveita o Apache Hadoop, o Spark, o 
Impala, o HBase, o Kudu e o Kafka para oferecer suporte a interações de baixa latência e alta 
simultaneidade que fornecem insights em tempo real de Big Data. As empresas que optaram 
por implantá-lo tiveram êxito em uma ampla variedade de casos de uso, incluindo detec- 
ção de fraudes, análise em tempo real, análise de loT e visões 360º de clientes. Os usuários 
desta solução relataram a órgãos de estudo 
que gostaram do desempenho da platafor- 
ma HARK (Hadoop + Spark) da Cloudera, o 
suporte técnico, o Roadmap de atualização 
e novidades, inovação contínua e ecossiste- 
ma de parceiros. No entanto, alguns afirmam 
que muitos componentes da plataforma exi- 
gem recursos altamente qualificados para 
implantar e operar. Cloudera e Hortonworks 
concluíram recentemente sua fusão e devem 
integrar as suas soluções. A solução da Clou- dera se chama CDH. INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING &
EE 
DST 
EA TS A 
mahout) 
GASES 
USA] 
OTA 4] 
LEU 
EESTI 
ae) 
LEITO] PTE Tea 
stream E) 
[E] 
SQL analítico 
(Impala) 
 
Figura 1. Ecossistema Cloudera CDH. 
E 
Hortonworks 
A estratégia da Hortonworks tem sido a de impulsionar toda a inovação por meio da co- 
munidade de código aberto e criar um ecossistema de parceiros, construindo serviços que 
aceleram a adoção do Hadoop e do Spark. Hoje, as organizações estão apoiando casos de 
uso de negócios novos e emergentes com o Hortonworks, como loT, visão 360º de clientes, 
análises avançadas e insights em tempo real. Fornece uma arquitetura econômi- 
 
 
ca, ágil e escalável para implementar o HARK, seja em infraestrutura do cliente 
(on premise), MultiCloud ou em nuvem híbrida. Os clientes dizem que gostam 
de sua plataforma de código aberto flexível, suporte MultiCloud, recursos de 
ingestão de dados, desempenho e escala, e amplo ecossiste- 
ma de parceiros e ferramental. No entanto, alguns afirmam 
que falta apoio abrangente à integração de dados e requer 
muitos treinamentos e compreensão para implantações 
complexas e grandes. Cloudera e Hortonworks concluíram 
recentemente sua fusão. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING (=>
MECANISMOS 
EE DB Online pf SE] 
Segurança 
consistente 
& een Ta 
LEOA 
AE 
Apache ETTA 
Ranger Pu 
Druid E 
Apache 
KNOX 
YARN 
Apache Container 
Atlas 
Storage local 
E) Ee] ES 
(53, ADIS, WASB, GCS) O) [PACATA 
(HDES) 
Grandes clusters, cargas compartilhadas, vários clientes 
aaa 
Figura 2. Ecossistema Hortonworks. Fonte: Hortonworks. Acesso em: 04/06/2019. (Adaptado) 
6, 
MapR 
A MapR Technologies continua a adicionar inovações exclusivas a sua distribuição Ha- 
doop e Spark. A MapR oferece uma plataforma de dados convergentes que permite aos 
clientes alavancarem Big Data, combinando análises em tempo real com aplicativos ope- 
racionais para dar suporte a insights acionáveis. A MapR tem integração com- 
 
 
pleta de plataformas com contêineres e kubernetes, bem como um bom 
suporte para ambientes híbridos e MultiCloud. Os clientes gostam da faci- 
lidade deuso da plataforma para engenheiros de dados, suporte para ca- 
sos de uso amplo e tempo de recuperação de investimento 
mais rápido devido a seu menor custo. No entanto, al- 
guns clientes reivindicam os atrasos de plataforma em 
recursos de integração de dados, processamento de 
gráficos, preparação de dados e gerenciamento de 
dados mestre (master data management). 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
 
Figura 3. Ec tema MapR. Fonte: MapF 
g 
Pivotal 
A Pivotal é uma plataforma de processamento de dados MPP (Massive Parallel Platform 
- Plataforma de Processamento Paralelo Massivo), MultiCloud baseada no banco de dados 
Greenplum de código aberto, com um otimizador de consultas. Ele fornece análises abran- 
gentes e integradas sobre dados, estruturas múltiplas em execução na AWS, Azure e Google 
Cloud Platform (GCP). O banco de dados Greenplum incorpora armazenamento híbrido (ar- 
mazenamento de linha e coluna) e execução para fornecer uma plataforma flexível que ofe- 
reça suporte a várias cargas de trabalho. Os clientes gostam de sua capacidade de fazer aná- 
lises em tempo real rapidamente, suporte para uma plataforma de infraestrutura flexível, 
retorno de investimento mais rápido para iniciativas de negócios e recursos de desempenho 
e escalabilidade. No entanto, alguns afirmam que o Pivotal Greenplum exige mais aprendiza- 
do inicial para implantar do que o esperado, e que sua segurança e governança não são tão 
abrangentes como as de outras plataformas. Os principais tópicos do seu Roadmap de fun- 
cionalidades provavelmente se concentrarão em Inteligência Artificial/Aprendizado de Má- 
quina, cargas de trabalho mistas, segurança aprimorada e expansão de suas ferramentas. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING (>
 
 Windows Azure HDInsight 
A forte presença da Microsoft nos mercados de banco de dados, data warehouse, cloud, 
planilhas, colaboração, Bl, OLAP e ferramentas de desenvolvimento está ajudando os seus 
clientes a criar e oferecer a implantação de infraestrutura de Big Data. O Azure HDlnsight 
usa a distribuição dos softwares da Apache Hadoop e Spark, projetado para rodar na nu- 
vem do Microsoft Azure de forma a poder ser escalável, com desempenho e segurança. Os 
arquitetos corporativos podem usar C4, Java e .NET para criar, configurar, enviar e monitorar 
trabalhos do Hadoop e do Spark, além de uma interface do usuário para acelerar as implan- 
tações. O PolyBase permite que os clientes do SQL Server executem consultas nos dados 
armazenados no Hadoop. A Microsoft também oferece o Azure Databricks, uma plataforma 
de análise baseada em Spark. 
Os clientes gostam do suporte para vários casos de uso, integração com a plataforma 
SQL e a facilidade de uso. No entanto, alguns relatam que requer muito treinamento e com- 
preensão para implantações grandes e complexas, e alguns relatam alguns problemas no 
seu desempenho, integração de dados e problemas de segurança, bem como o alto custo de 
execução da solução. 
SPARK SQL STREAMING DO SPARK pi ae AS [dA 
ET 
Consultas interativas OCS CO ETA [et fe tp arte] 
PJ CRS 
e TS E ST RT TES 
SS Guri E CRT Figura 4. Ec istema MS HDlnsight. Fonte: Microsoft. Ace em: 29/05/2019. (Adaptado) INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING &)
Para usar o Hadoop na AWS (cloud da Amazon), é necessária uma outra estratégia. A 
AWS oferece um serviço de cluster chamado EC2 (Elastic Computing), onde o Hadoop deve 
ser instalado, e ainda um serviço de armazenamento (Storage) chamado S3 que necessita 
de uma camada adicional de conectividade, que é o EMRFS, a parte do Amazon EMR, feito 
para gerenciar tudo isso dentro da AWS. 
8 
Databricks 
A Databricks também oferece uma plataforma integrada para Data Science denominada Data- 
bricks Unified Analytics Platform. Seus componentes são: 
* Databricks Workspace: manipula os processos analíticos desde o ETL, treinamentos de mo- 
delos e disponibilização em produção, alavancando ferramentas familiares, integrando linguagens, 
recursos, especialidades na forma interativa de notebooks (formas de apresentação de análises de 
Data Science) ou APIs; 
* Databricks Runtime: prepara os dados de forma massiva e escalável e cria processos contínuos 
de treinamento para obtenção de modelos de Machine Learning sempre atualizados e disponíveis 
para as aplicações. O Runtime possui ainda as seguintes características: 
* Confiabilidade dos dados: unificação de processos off-line (batch) e on-line (real-time) com 
tabelas Delta (gestão integrada usando Spark), deixando os dados prontos para serem usados para 
Machine Learning; 
* Desempenho: superior ao Spark em muitos casos, de 10 a 100 vezes mais rápido; 
* Frameworks embutidos: possui frameworks de bibliotecas de Machine Learning pré-con- 
figurados: Keras, TensorFlow, Ski-Learn, XGBoost, PyTorch; 
* Databricks Cloud Service: acelera o benefício de um serviço completo de gestão da 
complexa infraestrutura de Machine Learning, deixando o foco para a ino- 
 
 
vação, e não em detalhes de manutenção da segurança e armazenamento 
dos dados. 
A Microsoft também oferece um serviço no Azure para implementar 
o Databricks, com integração no Active Directory (AD) para 
segurança integrada para ACL (Access Control Lists - Lista 
de Controle de Acesso para gestão de segurança), faci- 
lidade de alocação e disponibilização de recursos au- 
tomaticamente, economizando custos quando não há 
necessidade de processamento. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
gs Plataforma de análise unificada de bancos de dados 
| me El — Databricks Notebooks | 
Tempo real 
EE = uuulby de análise 
Transmissão de Dados Ny O 
dados fundamentais fundamentais ES HE E . 
E Dados ) Aprendizado 
0] BB consolidados de máquina 
Transmissão de Dados £ databricks —, Espaço de 
preço de dados de preço DELTA trabalho 
integrado 
 
Figura 5. Plataforma do Databricks. Fonte: Databricks. Acesso em: 29/05/2019. (Adaptado) 
A Databricks oferece sua plataforma integrada também através da AWS. Uma versão aberta 
(Community) pode ser usada para aprendizado, treinamento e certificação. 
 
Domino Data Labs 
O Domino Data Labs é mais um framework para Data Science, com muitos dos componen- 
tes de Open Source. 
DOMINO 
integração de modelos «su 
ao Negócio 
Mais tempo para a 
Ciência de Dados Figura 6. Framework do Domino Labs. Fonte: Domino. Acesso em: 03/06/2019. (Adaptado) INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
O Domino também pode ser usado na AWS. Assim como o Databricks, acelerando o proces- 
so de adoção das práticas de Data Science, há preocupação com a implantação da infraestru- 
tura. Contudo, para que seja possível o bom uso de todo o framework, é necessário o enten- 
dimento de como tudo se encaixa para que seja possível tirar o melhor proveito das soluções. 
 
 Introdução ao Apache Spark 
É percebido que o maior diferencial da solução do Hadoop é o seu sistema de gerencia- 
mento de arquivos, o HDFS. Os seus componentes estão muito mais voltados para os pro- 
cessamentos de Big Data que são em batch. Mas, quando falamos em Data Science, temos a 
mesma necessidade de análise em batch. Porém, para que as descobertas e previsões pos- 
sam ser utilizadas nas transações on-line com grandes volumes, as ferramentas do Hadoop 
já não são suficientes. Atualmente, as aplicações de e-commerce analisam as transações on- 
-line e, à medida que os usuários colocam itens em seu carrinho de compras virtual, outras 
sugestões de compras são oferecidas; sugestões que possuem grande chance de serem o 
que mais precisamos, ampliando a possibilidade de venda (chamada “venda casada"). As re- 
lações entre estes itens podem ser diretas, como por exemplo oferecer um case na compra 
de um HD externo, ou uma correlação não tão clara, mas que através de Machine Learning 
pode fazer muito sentido. 
Pensando nestes problemas, a Apache Softwaredesenvolveu o Spark, que se utiliza de toda 
a infraestrutura de cluster do Hadoop, e seu sistema de arquivos, o HDFS, para criar um siste- 
ma de computação de cluster rápido e de uso geral. Ele é capaz de implantar o processamento 
de streams. O stream é um conceito de que os dados nunca vão parar de surgir, assim como a 
água de um rio. Os exemplos estão por toda a parte: redes sociais, informações de smartpho- 
nes, loT, navegação web, entre outros. 
 
 
 
 
O Apache Spark atinge alto desempenho para dados em lote e streaming, 
usando um scheduler (um gerenciador de jobs) DAG de última geração, um 
otimizador de consulta e um mecanismo de execução física. O Spark ofere- 
ce mais de 80 operadores de alto nível que facilitam a criação 
de aplicativos paralelos, e podemos usá-lo interativamente, 
usando os comandos do Scala, Python, R e SQL, bem como 
a sua biblioteca, incluindo SQL e Data Frames, MLlib para 
aprendizado de máquina, GraphX e Spark streaming. É 
possível combinar essas bibliotecas no mesmo aplicativo. 
Ele pode acessar diversas fontes de dados. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
DICA 
Como tirar proveito de tanta informação? O processamento de streams exige a criação 
de pipelines, uma forma de gravar rapidamente os dados para posterior uso, e também 
 
enviar ao processamento imediato, quase que em tempo real. É o que acontece nas 
transações de cartões de crédito que precisam de um tempo de resposta rápido, mas 
precisa analisar potenciais situações de fraude. Dessa forma, o processamento de 
streams do Spark é o que ele tem de melhor. 
 
Figura 7. Visualização dos DAGs do Spark. Fonte: Iteblog. Acesso em: 29/05 
O Spark pode ser executado usando seu modo de cluster autônomo, no EC2, no Hadoop 
YARN, no Mesos ou no Kubernetes. Acessa dados em HDFS, Alluxio, Apache Cassandra, 
Apache HBase, Apache Hive. 
Ele possui uma integração forte com o Apache Mesos, que foi um projeto original da UC Ber- 
keley para criação de um gerenciador de clusters, com as lições aprendidas em computação 
distribuída para estruturas em Cloud de larga escala. O Mesos introduziu uma arquitetura mo- 
dular, de código aberto, e que faz uma abstração da camada de infraestrutura. Ele foi rapida- 
mente adotado por empresas como Uber, Netflix, Twitter e Apple (Siri). Seu diferencial é poder 
suportar diversos recursos tecnológicos de microsserviços, Big Data e Real Time Analytics, de 
uma forma elástica (com crescimento vertical e horizontal). 
O Spark, comparado ao Hadoop, exige muito mais memória e é preciso ter isso em mente 
ao planejar sua arquitetura. Os jobs muito complicados que precisam rodar o mais rápido 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
possível, são os que mais se aproveitam da arquitetura em memória desta solução, bem como 
o processamento em seu mecanismo denominado DAG (Direct Acyclic Graph), gerando um de- 
sempenho superior ao MapReduce do Hadoop. Para as rotinas de análise de dados para o 
Machine Learning, a velocidade de processamento, e também muita leitura de informações, 
passam a usufruir destes recursos com desempenho adequado, possibilitando mais cenários 
de análise, já que os resultados são obtidos de forma mais rápida, além de contarem com as 
bibliotecas específicas de aprendizado de máquina. 
A combinação de Spark + Hadoop torna-se ideal para Data Science. O Spark é uma 
estrutura em cluster como o Hadoop, mas diferentemente ele não possui seu próprio 
sistema de arquivos. Ao invés disso, ele precisa alimentar a sua estrutura de dados de 
forma resiliente (RDD - Resilient Data) para poder processá-lo, e é este o motivo de a in- 
tegração com o Hadoop ser tão importante, usando o HDFS no mesmo cluster. Com isso 
temos a combinação perfeita entre volume (HDFS) e velocidade (SPARK), lembrando que 
os grupos de dados (datasets) precisam caber na memória distribuída do cluster para ob- 
tenção do desempenho superior, e o Hadoop pode cuidar dos jobs mais longos em batch 
e menos urgentes. 
Outra especialidade e propósito do Spark é o suporte ao processamento de pipelines 
de dados, que consiste em uma série de manipulações consistentes de dados, normal- 
mente usados para ETL, Analytics e Machine Learning, com muitas etapas sequenciais 
de transformação e preparação dos dados - principalmente se os dados são oriundos de 
sistemas legados ou não estruturados. Exemplos: 
Somente dados de uma aOje Peep TRT: [Et MET ET LS UEL 
determinada data Udo externos (social media) Tc a a Figura 8. Pipeline de ETL INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING q)
Estes passos nem sempre precisam ser efetuados em sequência e as APIs do Spark permitem 
que os desenvolvedores definam os passos sem se preocuparem em como eles serão executados 
no cluster. Ele “quebra” os jobs em DAGs que mapeiam as partes que podem ser executadas em 
paralelo e quais partes dependem uma da outra. Esta otimização é crítica, pois não basta rodar um 
processo em uma cluster que ele será otimizado para ter o melhor proveito da capacidade de para- 
lelização, sem levar em consideração onde os dados se encontram, se cabem na memória ou estão 
em disco - o que no MapReduce exige que o desenvolvedor desenhe como otimizar os jobs e escreva 
o código que faça acontecer a “mágica” da paralelização. 
Para se usar os comandos do Cassandra, é necessário utilizar o seu shell: cqlsh e, dentro deste 
ambiente, criar um KEYSPACE com suas regras de replicação. 
QUADRO 1. CRIAÇÃO DE KEYSPACE EM COMANDOS DO CASSANDRA 
 
CREATE KEYSPACE test01 
WITH REPLICATION = 
“class”: 'SimpleStrategy”, 
'replication factor: 1 
DEE Cy Seo 
DS 
[O NT PIRES 
id INT PRIMARY KEY, 
nome oficial TEXT, 
capital TEXT 
INSERT INTO paises (id, nome oficial, capital) VALUES (1, 'Brasil', Brasíl 
Buscar dados inseridos: 
SELECT * FROM paises WHERE id = 1; 
 
 Spark Framework 
O Spark fornece APIs de alto nível em Java, Scala, Python e R e um mecanismo otimizado 
que oferece suporte a algoritmos de grafos para uso geral. Ele também suporta um conjunto 
de ferramentas auxiliares, incluindo o Spark SQL para SQL e processamento de dados estru- 
turados, a MLlib (que é uma biblioteca para aprendizado de máquina), GraphX para processa- 
mento de grafos e o Spark streaming para o gerenciamento de fluxo contínuo de dados. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING
7! bes TO 
(MACHINE 
ut ETNTTS (GRAPH) 
SPARK SQL 
RIU 
Figura 9. Exemplo de Ciclo de Gestão de Pessoas. 
 
* Spark SQL: permite que os desenvolvedores utilizem a linguagem SQL em suas aplicações para 
processar dados estruturados e relacionais. Possui algumas limitações, não se comportando como 
as linguagens de bancos de dados mais tradicionais, que expandem a abrangência do SQL. Ele per- 
mite acesso aos RDDs do Spark e também aos armazenamentos do Hive; 
* Spark Streaming: processa fluxo de dados contínuos e gera análises. É uma API que fornece fon- 
tes de dados quase em tempo real, tais como as estruturas de messaging, sensores de loT (Internet of 
Things - Internet das coisas) ou outros componentes, como Kafka, Twitter ou outras formas de aqui- 
sição de dados. Como o Spark trabalha em um ambiente de processamento batch, não é tão óbvio 
como ele pode processar dados em tempo real. Por este motivo, ele utiliza microbatches que rodam 
muitas vezes num espaço de tempo bem pequeno, gerando resultados calculados bem próximos da 
velocidade em que eles são imputados; 
* MLlib: é uma biblioteca de algoritmos de Machine Learning, tais como regressão logística, cluste- 
rizada k-means, árvores de decisão, entre outros. Não é uma biblioteca exaustiva, mas sim algumas 
das mais populares para se obter resultados para classificações, clusterização e recomendações. O 
valor chave da MLlib é que os algoritmos são otimizados para tomar vantagem do processamento 
em memória e as outras características do cluster Spark; 
* GraphX: usadopara representação e análise complexa de dados em rede (grafos). Não é uma 
ferramenta visual, é uma API para representar os dados conectados de forma arbitrária, como, por 
exemplo, usuários de uma rede social, ligações efetuadas entre linhas de telefone (para uma investi- 
gação), rastreamento de utilização de antenas de celulares - o que significa que este módulo é literal- 
mente uma implementação de um banco de dados baseado em grafos no Spark. 
As aplicações em Spark consistem de um conjunto de processos denominados drivers e execu- 
tores. Os drivers executam a parte principal do programa, mantendo os metadados da aplicação, 
respondendo às solicitações externas, planejando e distribuindo as tarefas entre os executores dis- 
tribuídos no cluster. Os executores, como o próprio nome indica, executam as tarefas designadas 
pelos drivers. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
IR E 
ICU 
(o) 
LC BIC LIGUE Trabalho A 
(2) (job) (0) (job) 
 
Figura 10. Estrutura de trabalhos do Spark 
Os clusters managers se encarregam das máquinas físicas e das solicitações de recursos 
(memória, CPU e discos) para as aplicações. Uma sessão Spark possui o código da aplicação 
cliente e se comunica com o cluster manager, os drivers e os executores de forma indepen- 
dente da implantação, facilitando o desenvolvimento de aplicações. As aplicações devem 
usar as APIs disponíveis para: 
* Scala: linguagem em que foi escrito o Spark e, portanto, a necessária para a adminis- 
tração e execução dos seus principais comandos; 
* Java: o Scala é muito integrado com o Java, o que facilitou incluir o suporte desta lin- 
guagem. Na verdade, o Scala gera arquivos Java binários “jar” que rodam 
em JVM (Java Virtual Machine); ado 
* Python: suporta nativamente o Python, com bibliotecas completas; 
* SQL: suporta o SQL padrão ANSI 2003; A 
 
* R:o R é uma linguagem de programação utilizada para Data Science, e o Spark possui 
duas bibliotecas para ela, a SparkR e Sparklyr. 
 
Spark x Hadoop 
Ao compararmos a solução Hadoop com o Spark, veremos que os dois se complementam 
para dar soluções com diferentes propósitos. Se o objetivo é montar uma infraestrutura de 
alto desempenho em cluster com processamento paralelo, o Hadoop com o seu HDFS é in- 
dispensável. Mas, para as aplicações on-line e os tratamentos de fluxo de dados (streaming), 
o Spark é a solução ideal - logicamente, integrado ao Hadoop. O nome Spark vem do inglês e 
significa “fagulha”, já indicando o seu propósito relacionado à velocidade. A Figura 11 mostra a 
diferença de tempo de processamento entre o Hadoop e o Spark. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING E»
Te
mp
o 
de
 
pr
oc
es
sa
me
nt
o 
 
Figura 11. Comparação Hadoop e Spark. Fonte: Big Data Hush. Acesso em: 29/05/2019. (Adaptado). 
Em um artigo (HUNTER, 2016) que compara o desempenho do Spark em cluster usando a 
biblioteca do TensorFlow, podemos ver o aproveitamento da arquitetura do Spark na inclusão 
de mais máquinas no ambiente. 
Tempo de computação (em segundos) por quantidade de máquinas em cluster 
 Figura 12.Velocidade de processamento por quantidade de cluster. Fonte: HUNTER, 2016. Acesso em: 29/05/2019. (Adaptado). INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING <>
TABELA 1. DIFERENÇA DE DESEMPENHO ENTRE HADOOP E SPARK E PRINCIPAIS FATORES 
loja id 
Ae A OS 
TAMANHO DOS ARQUIVOS 
e AT 
TA UNS 
UTILIZAÇÃO Op Ro eso [o NTE do eis 
CONSULTAS E INSIGHTS 
ASIA OR Ro ao) 
STA e DD o DE DO 
Pl para computação em Grafos 
AI 
RELACIONAMENTO DE DADOS 
PUNTO (eo à 
O Hadoop tem ainda um outro componente que tem ajudado a melhorar seu desem- 
penho. Um exemplo disso é o Apache TEZ. Ele cria um framework que permite a criação 
de DAGs complexas para processar dados. Ele foi construído em cima do YARN com os 
seguintes objetivos: 
* Empoderar os usuários finais: 
* APIs com definições de fluxo de dados; 
* Modelo de runtime de entrada-processamento-saída flexíveis; 
* Agnóstico por tipos de dados; 
* Entrada em produção simplificada. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 65)
* Desempenho de execução: 
* Ganho de desempenho em relação ao MapReduce; 
* Gestão de recursos mais eficaz; 
* Planejamento de reconfiguração em tempo de execução e não desenvolvimento; 
* Decisões dinâmicas de acesso físico aos dados. 
Com estes objetivos, o TEZ pode ser usado para processar dados que antes precisa- 
vam de vários jobs em MapReduce em apenas um job. 
Apache STORM 
 
O Apache Storm é um sistema de computação distribuído em tempo real gratuito e de 
código aberto. O Storm facilita o processamento confiável de fluxos de dados ilimitados, 
fazendo o processamento em tempo real, 
o que o Hadoop fez para o processamento 
em lote. O Storm é simples, podendo ser 
usado com qualquer linguagem de progra- 
mação. Possui muitos casos de uso: análise 
em tempo real, aprendizado de máquina 
on-line, computação contínua, RPC distri- 
buído e ETL. É escalável, tolerante a falhas, 
garante que seus dados serão processados 
e é fácil de configurar e operar. 
O Storm integra-se com as tecnologias 
de enfileiramento e banco de dados já usa- 
das no mercado. Uma topologia do Storm 
consome fluxos de dados (stream) e pro- 
cessa esses fluxos de maneiras complexas, 
particionando os fluxos entre cada estágio 
da computação. Fazendo uma compara- 
ção com o Spark, o Storm pode dividir um 
processamento em diferentes tarefas para 
várias máquinas; já o Spark é o mesmo pro- 
cessamento feito em várias máquinas em 
dados diferentes. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING &
TABELA 2. DIFERENÇA ENTRE APACHE SPARK E APACHE STORM 
a lçã 
LÃ a çã 
E O 
RR 227272777 77207 PESE L POD 
RREO 277725 PSP VISIO III OIA 
O comam [7 Sean TT | ças capo 
DO nim 9 a 
E 1722250000 
RE E O 7/7720 DA 
Figura 13 
 
O Storm possui algumas abstrações básicas para sua arquitetura: 
* Tuplas: conjunto ordenado de dados que fluem pela arquitetura do Storm para serem 
processados, armazenados, transformados ou lidos; 
* Streams: uma sequência ou fluxo contínuo de tuplas. Exemplo: mensagens do Twitter ou 
sinais de sensores de loT; 
* Spouts (torneiras): fontes de entrada ou produtora dos streams. Exemplo: API do Twitter; 
* Bolt: são processos que recebem os streams e produzem uma saída de streams. Podem ser: 
funções, filtros, agregadores ou junção (join) de dados, ou conversas com outros bancos de dados; 
* Topologia: o cálculo ou processamento geral, representado visualmente como uma rede 
de spouts e bolts. 
A topologia desenhada pelo usuário guia a forma de processo do dado quando as tuplas 
“saem” dos spouts. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING &
 
 Banco de dados NoSOL 
Os bancos de dados NoSQL são bancos que não utilizam os mesmos padrões dos relacionais, 
nem estruturas no formato de tabela. Podem até usar a linguagem SQL, mas não funcionam da 
mesma forma que os bancos tradicionais. São escaláveis horizontalmente e capazes de gerenciar 
estruturas complexas em grandes volumes, o que os tornam ideais para Big Data e aplicações no 
mundo de Cloud Computing. Os bancos de dados NoSQL não possuem comprometimento com as 
propriedades tradicionais de banco de dados relacionais - em inglês estas propriedades possuem o 
acrônimo de ACID (atomicity, consistency, isolation, and durability) - para todas as estruturas, somente 
para o nível de documento: 
* Atomicity: indivisibilidade de uma transação, ela precisa chegar ao seu final, mesmo que envol- 
va várias entidades, garantindo que será executada completamente; 
* Consistency: consistência é a propriedade de garantir que uma transação gere um estado ínte- 
gro de uma base, depois da sua execução; 
* Isolation: isolamento é a propriedade que o banco deve garantir durante a execução de uma 
transação para que ela seja isolada até que termine, sem receber interferência por outras transa- 
ções, atéque o estado de consistência seja atingido; 
* Durability: durabilidade é a propriedade de manter os dados registrados, mesmo que alguma 
falha aconteça ou o sistema seja reiniciado; os dados permanecerão ou poderão ser colocados em 
um estado correto. 
TABELA 3. TIPOS DE BANCOS NOSQL 
Nao DD 
VA pjaga feto) (IS 
EUA Ad 
[RO 
 
PAS NAO ui | ue ria de far 
a Re RI Sula , uau 
PIN T 
jo ja (áNiço 
[ONA 
ERC 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING >
As principais vantagens do NoSQL são: 
* Evitar os problemas de escalabilidade e gestão de bancos de dados relacionais 
para ambientes de Big Data ou OLAP com milhões de transações; 
* Modelagem com estruturas mais flexíveis, que permitem que novas funcionalidades 
possam ser acrescentadas, sem um grande impacto no que já foi armazenado. 
 
MongoDB 
O MongoDB é um banco de dados Open Source de alto desempe- 
 
 
 
 
 
nho, por incrível que pareça, sem esquema ou estrutura pré-definida 
de relacionamento entre os dados (não relacional). Sua 
orientação é baseada em documentos, criado pela 
empresa 10gen em C++, lançado em 2009, levando 
dois anos para ser desenvolvido. Os documentos 
são estruturas em JSON, mais flexíveis, permitin- 
do construções mais complexas. Podem ser mani- 
pulados por diferentes linguagens e podem ser inde- 
xados ou pesquisados. 
QUADRO 2. EXEMPLO DE ESTRUTURA JSON 
f 
nome: “João”, 
idade: 31, 
cidade: “São Paulo” 
ir INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING E
QUADRO 3. OUTRO EXEMPLO DE ESTRUTURA JSON 
“empresa”: “Cia Companhia Ltda”, 
“funcionários”: [ 
('nome”: “João”, “idade”:31, “cidade”: “São Paulo”), 
“nome”: “Maria”, “idade":36, “cidade”: “Rio de Janeiro"), 
t'nome”: “Tereza”, “idade”: 28, “cidade”: “Belo Horizonte”) 
Ip 
“endereço”: ( 
“rua”: “Alameda Araguaia”, 
“número”: “s/n”, 
“cidade”: “Barueri”, 
“estado”: “SP” 
 
Portanto, o MongoDB, ao invés de tabelas, possui um conjunto de documentos - na verda- 
de, uma coleção de documentos. Pode haver a pergunta: mas como os dados são relaciona- 
dos? Na verdade, o intuito principal é que cada documento seja autossuficiente. Se pensarmos 
em uma nota fiscal, ela possui tudo o que é necessário para a sua existência. Assim como no 
exemplo em JSON, a empresa já possui os funcionários. Isso evita os famosos e custosos JOINS 
dos bancos relacionais, aumentando o desempenho em transações em bases mais complexas. 
Algumas das vantagens do MongoDB: 
* Armazenamento de dados em coleções de documentos, com campos e documentos su- 
bordinados; 
* Curva de aprendizagem menor; 
* Não possui relacionamento entre coleções ou documentos; 
 
* Garantia de escalabilidade, disponibilidade e desempenho; 
* As transações devem ser garantidas no nível da aplicação; 
* Usa comandos Java Script para manipular os dados; 
* Não possui algo equivalente ao JOIN do SQL; 
* Foco no desempenho de acesso a dados; 
 
* O esquema é mais variável, ditado pela aplicação; 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING a)
* Cada campo do documento pode armazenar múltiplos valores e até outros documentos; 
* Ideal para dados não estruturados; 
* Foi criado pensando em Big Data. 
O MongoDB não é indicado para sistemas que exijam muitos relacionamentos entre en- 
tidades e chaves estrangeiras. Algumas instituições financeiras exigem uma certificação de 
armazenamento de dados, e muitas só certificam a aplicação se estiverem usando banco de 
dados relacionais. 
o 
Cassandra 
O banco de dados Apache Cassandra é um banco de dados NoSQL com foco em esca- 
labilidade e alta disponibilidade sem comprometer o desempenho. Escalabilidade linear e 
comprovada tolerância a falhas em hardware comum ou infraestrutura de nuvem fazem com 
que seja uma plataforma boa para dados de missão crítica. O suporte de Cassandra para 
replicar em vários datacenters é um dos seus pontos fortes, proporcionando menor latência 
para seus usuários e a tranquilidade de saber que você está em segurança caso haja alguma 
paralisação regional. 
Ele é projetado para estabelecer uma estrutura de cluster no formato ponto a ponto (todos os 
nós possuem o mesmo peso), diferentemente do Hadoop, que possui os nós master e secundário 
que têm controle sobre todos os outros nós. 
As terminologias usadas pelo Cassandra são: 
* Node (nó): um servidor Cassandra em meio a outros que forma o cluster; 
* Rack: um agrupamento lógico de clusters; 
* Data Center: um agrupamento lógico de clusters; 
* Cluster: um agrupamento completo que mapeia um único e completo anel de servidores. 
Pela nomenclatura de seus componentes já é possível imaginar que o Cassandra é planejado 
para ser tolerante a falhas de servidor(es), rack(s) e inclusive data center(s). Isto quer dizer que você 
pode ter um ambiente de gestão de dados em uma companhia distribuído em vários continentes. 
Como os nós possuem o mesmo peso, uma requisição de um usuário é atendida pelo nó mais pró- 
ximo, que passa a agir como um coordenador de dados para os outros cluster, em relação àquela 
transação, possibilitando um desempenho bastante interessante. 
Há como se configurar o fator de replicação das bases com diferentes estratégias: 
* Simples: há somente um data center; 
* Topologia de Rede: onde há um balanceamento, baseado em regras para replicação de dados 
entre data centers e nós. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
[efe 
[E 
A 
São Paulo Q Rio Q 
Data Center N Data Center / 
 
Figura 14. Replicação do Cassandra 
O Cassandra permite a configuração de consistências de dados em diferentes níveis: 
* Todos: todas as gravações e leituras precisam ser replicadas em todos os nós para 
serem consideradas válidas. Este é o grau mais alto de consistência; 
* Quórum: é o cenário onde há replicação na maioria dos servidores. O quórum é al- 
cançado com metade mais um dos nós; 
* Quórum local: é o quórum por data center; 
* Um: a réplica é feita para apenas um grupo de replicação. É o mais simples; 
* N (um, dois, três... n): deve ser menor ou igual ao número do Fator de Replicação; 
* Qualquer (any): fornece a menor latência e a réplica será feita para qualquer nó do 
cluster. Também é modo que opera durante a contingência quando algum nó está fora, 
até que volte ao normal. 
e 
CouchDB 
O Apache CouchDB"" é um banco de dados NoSQL, sem esquema pré-definido de relaciona- 
mento dos dados, baseado em documentos. Tem como diferencial a gestão de acesso aos da- 
dos onde for necessário. O Couch Replication Protocol é seu maior diferencial, implementado 
em uma variedade de projetos e produtos que abrangem todos os ambientes de computação 
de clusters de servidores distribuídos globalmente, desde telefones celulares até navegadores 
da web. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING >
Ele armazena os dados com segurança, no formato JSON, em seus próprios servidores ou 
com qualquer provedor de Cloud. As aplicações web e nativas são facilitadas pelo uso do Cou- 
chDB, por suportar JSON nativamente, e também manipula muito bem dados binários para 
todas as necessidades de armazenamento. 
O protocolo de replicação do CouchDB permite que seus dados fluam perfeitamente entre 
clusters de servidor para telefones celulares e navegadores da web, permitindo uma experiên- 
cia de usuário off-line convincente, mantendo alto desempenho e confiabilidade. O CouchDB 
vem com uma linguagem de consulta amigável ao desenvolvedor e, opcionalmente, o MapRe- 
duce para recuperação de dados simples, eficiente e abrangente. 
CURIOSIDADE 
O termo CouchDB vem do inglês couch, que significa sofá. Como o próprio nome sugere, 
 
tem como intenção demonstrar sua capacidade de facilitar o uso por parte dos desen- 
volvedores, no sentido de relaxar. 
Sendo seu principal foco é aumentar a produtividade do desenvolvimento de aplicações. A 
principal razão do aumento da produtividade se dá pelo impulso de poderosas ferramentasque são mais fáceis de usar (Tome Ruby on Rails, por exemplo). É uma estrutura infinitamente 
complexa, mas fácil para começar. Rails é uma história de sucesso por causa do foco do de- 
sign central na facilidade de uso. Esta é uma razão pela qual o CouchDB está se destacando: o 
aprendizado do CouchDB e a compreensão de seus conceitos básicos devem ser mais naturais 
para a maioria das pessoas que têm feito trabalhos na web, e ainda é muito fácil de explicar a 
pessoas não técnicas. 
Sair do caminho quando as pessoas criativas tentam construir soluções especializadas é em 
si uma característica importante (não sendo um delimitador da criatividade) e uma coisa que 
o CouchDB pretende obter como resultado. Encontramos nas ferramentas existentes caracte- 
rísticas e detalhes muito pesados para trabalhar durante o desenvolvimento ou na produção, 
e o CouchDB foca em deixar as coisas mais fáceis. 
Outra área de facilidade para os usuários do CouchDB é a configuração de produção. Se 
você tiver um aplicativo em execução constante, o CouchDB novamente sai do seu caminho 
para evitar incomodá-lo. Sua arquitetura interna é tolerante a falhas e elas normalmente acon- 
tecem em um ambiente controlado, sendo tratadas com cuidado. Problemas únicos não in- 
terferem (não se cascateiam) através do sistema de um servidor inteiro, mas permanecem 
isolados, divididos em solicitações individuais, criando um ambiente controlado, como uma 
caixa de areia (sandbox). 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
Os conceitos centrais do CouchDB são simples, mas poderosos, e bem compreendi- 
dos. Equipes de operações não necessitam temer o comportamento aleatório e erros 
não rastreáveis. Se alguma coisa der errado, elas poderão facilmente descobrir qual é o 
problema, sendo que a proposta desta solução é tornar essas situações mais raras. 
CouchDB também é projetado para lidar com o tráfego, variando de maneira transpa- 
rente. Por exemplo, se um site está enfrentando um aumento súbito no tráfego, o Cou- 
chDB geralmente absorverá muitas solicitações simultâneas sem cair. Pode demorar um 
pouco mais de tempo para cada solicitação, mas todas elas são respondidas. Quando o 
pico de volume de acessos acabar, o CouchDB trabalhará com velocidade regular nova- 
mente. 
Aterceira área de facilidade está na possibilidade de crescimento e diminuição do har- 
dware, tanto verticalmente quanto horizontalmente, para a aplicação. Isso é comumente 
chamado de dimensionamento. O CouchDB impõe um conjunto de limites para o progra- 
mador. Na primeira olhada, o CouchDB pode parecer inflexível, mas alguns recursos são 
deixados de fora por design, pelo simples motivo de que, se o CouchDB os suportou, não 
permitiria que um programador criasse aplicativos que não possam lidar com o dimen- 
sionamento para cima ou para baixo. 
O Django pode ser construído para a Web, mas o CouchDB é construído 'na' 
Web. Eu nunca vi um software que abraça completamente as filosofias atrás de 
HTTP. O CouchDB faz o Django parecer Old-School, da mesma forma que o Djan- 
go faz com que o ASP pareça desatualizado. (MOSS, 2007). 
O design do CouchDB é inspirado fortemente pela arquitetura web e dos conceitos de 
recursos, métodos e representações. Ele aumenta isso com maneiras poderosas para 
consultar, mapear, combinar e filtrar seus dados. Ele adiciona a tolerância a falhas, esca- 
labilidade extrema e replicação incremental, e define um modelo bastante interessante 
para bancos de dados de documentos. 
Dados independentes: uma fatura contém todas as informações pertinentes sobre 
uma única transação: o vendedor, o comprador, a data e uma lista dos itens ou 
 
 
serviços vendidos. Como os documentos são independentes, não há referên- 
cia abstrata sobre este pedaço de papel que aponta para algum outro pedaço 
de papel com o nome do vendedor e endereço. Contabilistas apre- 
ciam a simplicidade de ter tudo em um só lugar, e dada a escolha, 
os programadores também apreciam isso. 
No entanto, usando referências, é exatamente a mesma for- 
ma como nós modelamos nossos dados em um banco de dados 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
relacional. Cada fatura é armazenada em uma tabela, como uma linha que se refere a 
outras linhas em outras tabelas, uma linha para informações do vendedor, uma para o 
comprador, uma linha para cada item faturado e mais linhas ainda para descrever os de- 
talhes do item, detalhes do fabricante e assim por diante. Isso não se entende como uma 
volta ao modelo relacional - que é amplamente aplicável e extremamente útil para uma 
série de razões. Isso ilustra o ponto que às vezes seu modelo pode não conter os dados 
na maneira como ocorre no mundo real. 
É possível, de forma confiável, sincronizar bancos de dados entre várias máquinas 
para armazenamento redundante ou mesmo distribuir dados para um cluster de instân- 
cias do CouchDB, que compartilham um subconjunto do número total de solicitações que 
atingiram o cluster (balanceamento de carga), e distribuir dados entre locais fisicamente 
distantes, como um escritório em São Paulo e outro nos Estados Unidos. 
Areplicação do CouchDB usa a API REST (Representational State Transfer - Transferên- 
cia de estado representativo), que se tornou muito comum por ser baseada em requisi- 
ções HTTP. A replicação funciona de forma incremental, ou seja, se durante a replicação 
nada der errado (como descartar sua conexão de rede, por exemplo), ele vai prosseguir 
de onde parou na próxima vez que a transação for executada. Ele também transfere ape- 
nas os dados necessários para sincronizar bancos. 
Uma suposição central que o CouchDB faz é de que as coisas podem dar errado, como 
problemas de conexão de rede, e é projetado para a recuperação de erro embutida em 
vez de assumir que tudo vai dar certo. O design incremental do sistema de replicação 
mostra que esta é a melhor abordagem. A computação distribuída gera uma série de 
variáveis intrincadas que geram seus próprios problemas e, assim como aumentam a 
disponibilidade, aumentam os possíveis focos de defeitos ou erros. Portanto, algumas 
destas variáveis estão em sistemas onde as premissas abaixo são falsas. 
A rede é confiável, a latência é zero, a largura de banda é infinita, a rede está segura, 
a topologia não muda, há um administrador que sabe o que está fazendo, o 
 
 
 
custo de transporte é zero, a rede é homogênea. 
Ferramentas existentes muitas vezes tentam esconder o fato de que há 
uma rede e que qualquer ou todas as condições anteriores não 
existem para um determinado sistema. Isso geralmente resul- 
ta em cenários de erro fatal quando algo finalmente dá erra- 
do. Por outro lado, o CouchDB não tenta ocultar a rede; ele 
apenas lida com erros de uma forma estruturada e permite 
que você saiba quando as ações em seu final são necessárias. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
990 em progc: tutor x 
| € > O 0 1270055084 ttaitsetata eicaroia 28 ocsTSmit=100 
RED 
tostor 
DESA 
Srowing O documents. Documents perpaçe 20 + 
 
Figura 15. Tela de administração do CouchDB chamada Fauxton 
Um banco de dados inspirado no CouchDB é o PouchDB, que é um banco de dados 
em código aberto escrito em Java Script. Seu objetivo é ajudar os desenvolvedores a cria- 
rem aplicações que necessitam de um banco de dados on-line e off-line. Os dados são 
armazenados localmente quando off-line e depois sincronizados com o CouchDB de uma 
forma compatível. 
[SR 
ENE 
(Cordova), 
Li 
WebSQL 
(node) 
CouchDB, NR 
[a ETa MemDOWN, 
pouchDB, Local Storage, 
Server, [Ii UR 
[ea Ea FruitD OWN Figura 16. PouchDB integrado com o CouchDB. INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
Sintetizand MEM o 
O mundo de infraestrutura de Cloud está no meio da maior revolução industrial que 
já tivemos, onde a informação é a matéria-prima mais abundante e mais valiosa para 
todas as áreas de atuaçãodo mercado. Empresas bilionárias estão suportadas por estes 
dados e criaram soluções inovadoras, com alta capacidade de processamento, e compar- 
tilharam o desenvolvimento destas soluções com outras empresas, levando as iniciativas 
de desenvolvimento de código aberto e os licenciamentos gratuitos de software ao seu 
maior momento. Por outro lado, as empresas participantes da comunidade de software 
empacotam novos produtos baseados em soluções de código aberto e cobram comercial- 
mente o licenciamento ou os serviços prestados com estes empacotamentos. 
Este é o caso do Hadoop, que é base de muitas soluções no mercado, tais como Clou- 
dera, Hortonworks, Mapr, Pivotal e Windows Azure HDInsight. Isso mostra o potencial da 
ferramenta, e também as necessidades que o mercado possui para que possam utilizar 
estes recursos em ambientes de produção nas suas respectivas indústrias. 
O que o Hadoop faz para o mundo de processamento de dados off-line, o Spark, está 
alcançando para o processamento em memória e de transformação de dados mais próxi- 
mo do on-line. Isso é muito importante para Data Science, que consome muitas informa- 
ções, normalmente não em seu estado “bruto”, mas já com vários tipos de processamen- 
to. O Spark chega a ser 100 vezes mais rápido que o Hadoop quando os bancos de dados 
cabem na memória do cluster. O Spark possui bibliotecas nativas de Machine Learning 
para regressão logística, clusterização com k-means e árvore de decisão. 
Uma grande quantidade de bancos de dados tem sido criada com o objetivo de utilizar 
os novos recursos de processamento paralelo e a manipulação de um volume gigantesco 
de dados, e eles estão sendo chamados de NoSQL (Not only SQL). Os tipos de bancos de 
dados NoSQL são: Armazenamento Tipo-Valor; Armazenamento em colunas; Orientados 
a documentos; e Orientados a grafos. Cada um destes com vantagens diferentes dos 
outros, muito ligados às características e diferentes necessidades das aplicações. Alguns 
exemplos são: MongoDB, Cassandra e CouchDB. Estes bancos estão sendo usados para 
Big Data e Data Science por serem capazes de processar grandes volumes de dados em 
alta velocidade. 
Upa 
o) 
 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
Referências bibliográficas à 
OO US 
APACHE HADDOP Disponível em: <http://pig.apache.org/>. Acesso em: 25 fev. 2019. 
ASHRAF, U. Apache Storm is awesome. This is why (and how) you should be using it. FreeCodeCamp, 
mai. 2018. Disponível em: <https://www.freecodecamp.org/news/apache-storm-is-awesome-this-is- 
-why-you-should-be-using-it-d7c37519a427/>. Acesso em: 15 mar. 2019. 
BIG DATA HUSH. Apache Spark. Disponível em: <https://Awww.bigdatahush.com/apache-spark>. 
Acesso em: 29 mai. 2019. 
BROWN, N. Hadoop from the beginning: the basics. Califórnia: CreateSpace, 2018. 
CAVANILLAS, ). M.; CURRY, E.; WAHLSTER, W. New horizons for a Data-Driven economy. Galway: 
SpringerOpen, p. 39-61, 2016. 
D-WAVE. Quantum computing. Disponível em: <https://Awww.dwavesys.com/quantum-compu- 
ting>. Acesso em: 26 fev. 2019. 
DATABRICKS. Databricks Unified Analytics Platform. Disponível em: <https://databricks.com/wp- 
-content/uploads/2018/07/01-steaming-stock-data-using-databricks-delta.png>. Acesso em: 29 mai. 
2019. 
DOMINO. Self-Service Data Science. Disponível em: <https://wnww.dominodatalab.com/solutions/ 
self-service-data-science/>, Acesso em: 03 jun. 2019. 
DUARTE, L. MongoDB para iniciantes: um guia prático. Gravataí: Luiz Tools, 2017. 
HORTONWORKS. Hortonworks Data Platform: HDP 3.1. Disponível em: <https://br.hortonworks. 
com/products/data-platforms/hdp/>. Acesso em: 03 jun. 2019. 
HUNTER, T. Deep Learning with Apache Spark and TensorFlow. Databricks, jan. 2016. Disponível em: 
<https://databricks.com/blog/2016/01/25/deep-learning-with-apache-spark-and-tensorflow.html>. 
Acesso em: 29 mai. 2019. 
ITEBLOG. Disponível em: <https://www.iteblog.com/pic/spark/spark job6.png>. Acesso em: 29 mai. 
2019. 
KAPLAN-MOSS, ). Of the web. Jacobian, 19 out. 2007. Disponível em: <https://jacobian.org/2007/ 
oct/19/of-the-web/>. Acesso em: 03 jun. 2019. 
JUPYTER NOTEBOOK. Disponível em: <https://jupyter-notebook.readthedocs.io/en/stable/>. Acesso 
em: 27 fev. 2019. 
MARP. MapR Data Fabric for Kubernetes. Disponível em: <https://mapr.com/datasheets/mapr-da- 
ta-fabricfor-kubernetes/assets/mapr-with-kubernetes-architecture.png>. Acesso em: 29 mai. 2019. 
MICROSOFT. O que é o Apache Spark no Azure HDinsight. Disponível em: <https://docs.microsoft. 
com/pt-br/azure/hdinsight/spark/apache-spark-overview>, Acesso em: 29 mai. 2019. 
NEW GEN APPS. What is Hadoop and how it changed Data Science? Disponível em: <https://Awww. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
newgenapps.com/blog/what-is-hadoop-and-how-it-changed-data-science>. Acesso em: 26 fev. 2019. 
NVIDIA. Deep Learning AI. Disponível em: <https:/Awvww.nvidia.com/en-us/deep-learning-ai/develo- 
per/>. Acesso em: 26 fev. 2019. 
PRESSER, M. Data Warehousing with Greenplum. Califórnia: O'Reilly, 2017. 
RADAR, O. Big Data now. Califórnia: O'Reilly, 2012. 
RAO, S. Cassandra: Data Warehousing, Data Modeling and Database Administration. Califórnia: 
CreateSpace, 2015. 
SQREAM. Dead or alive and kicking? Big Data helps retail revive, jul. 2017. Disponível em: <https:// 
sqream.com/dead-or-alive-and-kicking-big-data-helps-retail-revive/>. Acesso em: 30 mai. 2019. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
UNIDADE 
 
DELAS EDIT ET 
& Apresentar os conceitos por trás da computação em nuvem e como eles estão 
conectados ao Data Science; 
& Apresentar as diferentes abordagens que os projetos de Big Data e Data Science 
podem usufruir das características de Cloud Computing, bem como os desafios que 
EU VA god 
O Identificar quais são os principais desafios que os projetos de Data Science devem 
estar cientes para que o alinhamento com o negócio esteja sendo atendido. 
ALGUM 
ES ERES UT [o 
& Introdução ao Cloud Computing 
& Fundamentos de Cloud Computing 
Virtualização 
Computação distribuída 
Armazenamento distribuído (storage) 
Automação 
Estrutura de cloud em contêineres 
Arquitetura de Cloud Computing 
& Conceitos básicos, terminologias e 
modelos de serviços 
Private cloud 
Public cloud 
Hybrid cloud 
Community cloud 
& A importância do cloud no cenário 
atual 
O Características do Cloud Computing 
Tipos de Cloud Computing 
O Serviços em Cloud Computing para 
análise de Big Data 
& Aspectos de implementação, segu- 
rança, armazenamento, custo/preço, 
qualidade de serviço e SLA 
Implementação 
Segurança 
Custo/preço 
Qualidade de serviços 
SLA 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O 
 
 Introdução ao Cloud Computing 
A Cloud Computing (“computação em nuvem”) é um modelo que permite um acesso a uma 
gama de recursos computacionais, de uma forma conveniente, por demanda, configurável, que 
pode ser rapidamente preparada (provisioned) ou liberada (released) com um esforço de gestão 
mínimo ou com pouca interação com terceiros. Estes recursos computacionais podem ser: re- 
cursos de redes, servidores, storages, aplicações e serviços. Para ser considerado um modelo 
em cloud, precisa implantar algumas características mínimas, certos modelos de serviço e ainda 
determinadas formas de implantação. 
 
 Fundamentos de Cloud Computing 
Nem todos os fundamentos de Cloud Computing são novos, mas foram revisitados e am- 
pliados de uma forma sofisticada e integrada com outras soluções mais novas. Esta dinâmica 
permitiu que as soluções ficassem muito mais robustas, desenvolvidas com modelos de cons- 
trução comprovadamente seguros e confiáveis a cada evolução. As ferramentas de pesquisa e 
web crawlers passaram a processar um volume de dados tão grande que os métodos existentes 
precisaram ser revistos e reescritos. Hoje é possível pesquisar milhões de páginas em segundos 
graças a essas tecnologias, e o melhor: estão disponíveispara as empresas que necessitam e 
possuam aplicabilidade viável para manter estas soluções. 
Vamos estudar as principais soluções que compõem estes fundamentos que são: virtualiza- 
ção, computação distribuída, armazenamento distribuído e automação. 
 
 Virtualização 
A virtualização é o coração da Cloud Com- 
puting. Este conceito permitiu que muitos 
usuários pudessem usar os grandes compu- 
tadores das décadas passadas, pela IBM, e 
que evoluiu para a computação distribuída. 
Hoje quase tudo é virtualizado, desde servi- 
dores, storages, equipamentos de redes e as 
próprias redes, que se tornaram mais flexí- 
veis e passíveis de serem gerenciadas de for- 
 
ma mais dinâmica e inclusive configuradas 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
por software. A virtualização tornou-se uma camada adicional entre o sistema operacional 
e o hardware, e muitos equipamentos são desenvolvidos já pensando nisso, facilitando os 
serviços de virtualização, garantindo segurança de acesso tanto de armazenamento quanto 
de memória RAM dos servidores, ou ainda podemos entender que a camada de virtualização 
se tornou o sistema operacional, no qual outros sistemas operacionais podem ser instalados 
em máquinas virtuais. 
PAN o teto APLICAÇÃO APLICAÇÃO 
SEA EA SUA 
Lol gata o Ta OPERACIONAL OPERACIONAL 
o o MEMES E 
SISTEMA OPERACIONAL SUPERVISOR - HYPERVISOR 
HARDWARE DE SERVIDOR 
TA AN IS 
 
Figura 1. Virtualização do hardware de servidores e do de storage 
Com esta forma de funcionamento, o investimento em hardwares mais capacitados em 
relação à disponibilidade e à capacidade de processamento se torna viável, pois serão muito 
melhor aproveitados entre diversas aplicações e ambientes heterogêneos, uma vez que não 
há um único sistema operacional gerenciando os recursos. Com este encapsulamento da apli- 
cação com o sistema operacional em máquinas virtuais, facilitou também a recuperação de 
desastres. Se houver uma falha de hardware, as máquinas podem ser rapidamente instaladas 
em outro ambiente com o sistema operacional supervisor ou hypervisor. Os backups de má- 
quinas virtuais são denominados snapshots. A gestão dos ambientes virtuais também fica faci- 
litada, pois é padronizada, evitando falhas em outros ambientes, já que o acoplamento entre a 
aplicação e o sistema operacional é sempre muito forte e a virtualização isola as mudanças de 
versão de sistemas operacionais, que costumam gerar problemas nas aplicações e vice-versa. 
Quando uma máquina virtual apresenta problemas, ela pode ser reiniciada, interrompendo 
apenas os serviços prestados pelas aplicações nela instaladas. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
A eficiência dos ambientes virtualizados é aumentada devido à facilidade de alocação de 
recursos de acordo com a aplicação, isto é, se uma aplicação precisa de pouca memória e mais 
processamento e outra o contrário, o hypervisor pode ser configurado para criar máquinas vir- 
tuais de acordo com estas necessidades. Os principais fabricantes de hypervisor são: VMWare, 
Microsoft, Citrix, Oracle e Red Hat. 
Outra utilização do conceito de virtualização consiste em criar componentes virtuais para 
a infraestrutura de rede. Essa técnica começa quando uma máquina virtual usa drivers para 
acessar a rede e, tipicamente, os drivers simulam o comportamento das camadas de rede, 
permitindo que as aplicações na máquina virtual enviem e recebam dados. A interface física 
de rede é compartilhada entre as máquinas virtuais. Pode-se ainda emular os próprios com- 
ponentes de hardware da infraestrutura de rede que não estão nas máquinas virtuais, como 
switches e roteadores. São chamados equipamentos de interconexão. A Cisco, por exemplo, 
através da linha Catalyst, oferece um hardware projetado para suportar equipamentos de in- 
terconexão virtuais. 
 
 Computação distribuída 
A computação distribuída consiste em executar aplicações que cooperam entre si em 
máquinas diferentes ou, ainda, a mesma aplicação que se subdivide em máquinas diferen- 
tes, tanto com o objetivo de ampliar o processamento de dados quanto para melhorar a sua 
disponibilidade. Isso tornou-se possível a partir da utilização de redes de computadores com 
cada vez mais capacidade de transferência de dados. Parte das aplicações são executadas 
em máquinas diferentes interligadas por uma rede formando uma espécie de pilha (stack). 
Sistemas distribuídos são fracamente acoplados, isto é, trocam dados entre si de uma for- 
ma padronizada (protocolo) e, independentemente de processamento, tornam a mudança 
em um componente menos traumático. 
As principais vantagens do processamento distribuído estão ligadas ao uso 
 
 
 
aprimorado do poder de processamento, do melhor desempenho por separar 
os componentes de uma forma mais eficiente, do compartilha- 
mento de dados e recursos, da maior confiabilidade, da reuti- 
lização dos serviços já disponíveis, como segurança e arma- 
zenamento, e atendem a um maior número de usuários. 
Os principais desafios da computação distribuída são: o 
desenvolvimento de aplicações que usam os recursos, o ge- 
renciamento e a manutenção do sistema, o controle do acesso 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
concorrente a dados e a recursos compartilhados, a garantia da segurança do sistema e o sigilo 
dos dados trocados entre máquinas. Contudo, com a virtualização, ficou mais fácil a gestão 
automática desses desafios, gerando novas modalidades computacionais relacionadas: 
* Cluster: servidores interligados por barramento ou rede de alta velocidade com com- 
partilhamento de storages em rede SAN. 
Pateta o ame te to Potato APLICAÇÃO APLICAÇÃO teta 
EMA SOU Si GBA E Jiu 
[aire TA nai [ode [ode 
SISTEMA 
gia Tl 
o ma EO ==> Er 
Ee Rd To 
Dados Lada po 
 
Figura 2. Cluster 
* Grid: reúne recursos heterogêneos dispersos geograficamente (distribuídos), interligados 
por uma rede de longa distância com alta velocidade, normalmente com um anel de fibra ótica. 
CIDADEA CIDADE B 
 Figura 3. Grid Computing INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING &
* Cloud: conjunto compartilhado de recursos (servidores, armazenamento, rede, aplicações, 
etc.), distribuídos ou não, que são alocados temporariamente para os usuários. 
DATA CENTERA 
EEE EBBBES.EES 
o = 
EEE.EEEEEE,EEE 
4 GERE SGEE GEE SGÉEE 
E ' DATA CENTER 8 
o “TRT 
BEE.EBBEBBE,EEERE 
ue q On a e Ji O) e 
 
Figura 4. Cloud Computing 
As formas de interação entre as aplicações podem ser de vários tipos: 
* Messaging (troca de mensagens): um processo envia uma mensagem pela rede destinada a 
um ou mais processos, as mensagens são controladas por um software especializado em ge- 
renciar a recepção e entrega delas de forma confiável. 
* Cliente-servidor: o servidor incorpora toda a lógica e os dados necessários para executar um 
serviço, que é executado por solicitação de um ou mais clientes remotos. Por exemplo: uma 
aplicação usa um banco de dados relacionado, no qual a aplicação fica na máquina do usuário 
e o banco de dados em um servidor. 
* Memória compartilhada: a área de memória pode ser acessada por diversos processos ro- 
dando em diferentes máquinas. 
* Arquivos compartilhados ou sistemas de arquivos distribuídos: várias aplicações acessam 
Os mesmos arquivos. Um sistema de arquivos distribuído permite que arquivos de computado- 
res remotos sejam acessados como se estivessem armazenados no computador local. Um com- 
putador ou mais da rede compartilha um diretório (pasta) ou volume, que pode ser montado 
em outro computador da rede, passando a ser visto como uma unidade de disco (Windows) ou 
como um diretório do sistema de arquivos (UNIX/Linux). É assim que o Hadoop HDFS trabalha. 
* Middleware para programação distribuída: fornece suporte para executar programas 
distribuídos. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
* Servidores de aplicação: permitemo acesso a aplicações via rede. Por exemplo: Tomcat, JBoss. 
Estes sistemas e formas de computação distribuídos devem possuir os seguintes requisitos: 
transparência de acesso e de localização, funcionalidades e desempenho comparáveis a um 
sistema de arquivos convencional, controle de acesso, controle de concorrência, heterogenei- 
dade de hardware, independência de sistema operacional, escalabilidade e, principalmente, 
tolerância a falhas. 
Há, no mercado, equipamentos denominados de hiperconvergência, uma abordagem para 
a infraestrutura tecnológica que empacota funções de servidor, armazenamento e rede em 
uma só unidade modular, e ainda adiciona uma camada de software para descobrir, juntar e 
reconfigurar ativos em várias unidades de forma rápida e fácil, sem a necessidade de tecno- 
logia e conhecimento especializados. Esses sistemas podem ser implementados como soft- 
ware, além de unidades físicas modulares ou como uma sobreposição de software no topo 
da infraestrutura existente. Tais recursos também podem contar com SDN (Software Defined 
Networking), que reconfigura a rede conforme necessidade pré-programada, criando rotas e 
serviços que aumentam a qualidade de transporte para determinados tipos de pacotes de 
rede, dependendo do horário do dia ou dos comandos do administrador. 
 
 Armazenamento distribuído (storage) 
Além da virtualização de servidores, há também a virtualização de storages. Ainda o arma- 
zenamento em nuvem é viável para muitos propósitos: desde backup até dados operacionais 
para processamento, logicamente interligado com o seu processamento também em nuvem. 
Arquivos do tipo 5.vmdk (virtual machine disks) são criados e gerenciados independente- 
mente das máquinas virtuais, novamente facilitando a movimentação, backup e alocação de 
recursos. As conexões entre as máquinas virtuais e a storage usam o conceito de SAN (Storage 
Area Network) que usam redes para transferência de dados, em alta velocidade e versatilidade. 
ANA RI 3 AN RI CS 
 
Figura 5. Virtualização de storage 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING &
A utilização de armazenamento de dados corporativos, em serviços de armazenamento em 
nuvem, cresceu muito nos últimos anos com a popularidade dos serviços de sincronização, 
replicação e compartilhamento de arquivos, e também de armazenamento de objetos, como 
o serviço da Amazon S3, o da Google Cloud Storage e o Microsoft Azure. A única coisa que 
acaba limitando o uso dessas tecnologias é a latência (isto é, tempo de resposta na rede) em 
redes WAN (Wide Area Network) acima de dezenas de quilômetros. Uma solução para isso é co- 
locar os dados mais acessados ou das aplicações on-line o mais próximo possível, e os dados 
históricos, que pode ser o caso de Big Data, para análises off-line. Os aplicativos corporativos 
convencionais - como CRM (Client Resource Management) e ERPs (Enterprise Resource Manage- 
ment) - são projetados com a suposição de proximidade entre recursos computacionais e de 
armazenamento e não são projetados para trabalharem com latências de milissegundos, sen- 
do o que é comum em links WAN. Apesar dessas limitações, o armazenamento em nuvem 
é um candidato viável e forte para muitas aplicações e cargas de trabalho, conforme alguns 
desses exemplos: 
* Armazenamento secundário para dados não estruturados: foi a primeira utilização 
clara de armazenamento na nuvem, já que exige um volume grande, mas a velocidade de 
acesso poder ser relativamente baixa, que são os casos de documentos, gravações de aten- 
dimentos a clientes (após um determinado período), dados históricos e de logs de auditoria. 
* Backup, archive e armazenamento secundário: armazenamento de dados não opera- 
cionais e que não tenham as exigências de velocidade de recuperação são bons candidatos 
para o armazenamento em nuvem, e geram economia financeira adequada, pois os data 
centers investem em equipamentos de grandes capacidades, podendo obter custos por gi- 
gabytes compensadores. Até as empresas fornecedoras de software de backup já possuem 
formas de conectar seus produtos a provedores de storage em nuvem, fazendo a gestão de 
mídias conforme políticas predefinidas, tais como idade, acessibilidade etc. 
* Recuperação de desastres: vem do inglês Disaster Recovery. Com a vi tualização de quase 
tudo, é natural que o armazenamento em nuvem acabe se tornando um cofre 
 
 
 
 
de segurança para os dados corporativos, e também de snapshots de ser- 
vidores, configurações e discos virtuais para recuperação de 
desastres. Existe até uma modalidade de preços específica 
para este tipo de armazenamento e utilização, com pre- 
ços mais baixos, criando verdadeiros DRaaS (Disaster 
Recovery as a Service; “recuperação de desastres como 
serviço”, em português), com níveis de serviços para re- 
cuperação de ambientes inteiros. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
* Armazenamento para computação em nuvem: aqui já há uma diferença muito grande 
de utilização, justamente voltada para a computação em nuvem, na qual aplicações móveis, 
ou fontes de informações vindas de fontes espalhadas geograficamente, convergem como 
um tsunami de dados para a plataforma de processamento, exigindo velocidade de proces- 
samento e armazenamento de alta capacidade. As plataformas de armazenamento lançam 
mão de recursos como o drive sólido (SSD, Solid State Drive), construído com tecnologia de 
memória flash, persistente e que não possui forma mecânica de acesso a dados, acelerando 
muito a gravação e a leitura de dados entre processos e clusters. As velocidades das transa- 
ções aumentam muito num ambiente desse tipo. 
* Compartilhamento e sincronismo de dados: com a computação distribuída, somada à 
capacidade de processamento dos smartphones e ainda a dados de plataformas de loT, o 
armazenamento em nuvem se torna um grande concentrador de dados, mesmo que tem- 
porariamente, para esses dispositivos, sincronizando informações de toda a corporação. 
Este tipo de solução pode prover segurança de acesso, compartilhamento para pessoas au- 
torizadas, integração de fornecedores. E falando em estruturas governamentais, há como 
concentrar informações de toda a população. 
Com esta vastidão de possibilidade, o Data Science pode se beneficiar em obter informações de 
diversas fontes de dados para o seu processamento a um custo adequado às suas necessidades. 
Se o problema a ser resolvido prescindir do maior número de variáveis de entrada e a urgên- 
cia de solução puder ser definida a médio prazo, em uma empresa de varejo, que precisa prever 
o comportamento de compras para a próxima 
estação, será possível armazenar os históricos 
de compras, enriquecidos com informações de 
redes sociais, em nuvem. Durante testes e aná- 
lises, para a criação do modelo, poderá ter aces- 
so à parte dos dados em armazenamento mais 
rápido e, ao final, contratar mais processamen- 
to temporário do seu provedor para montar o 
modelo final, que rodará a previsão, planejará 
o processo de compras e poderá liberar os re- 
cursos até a próxima estação. Já uma empresa 
financeira, que quer aperfeiçoar o seu modelo 
de detecção de fraude, precisa de um modelo 
final com uma capacidade de processamento 
com tempo de resposta rápido para um volume INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
de transações muito grade. Neste caso, talvez seja melhor usar o ambiente em nuvem para o de- 
senvolvimento, e a operação ter infraestrutura dedicada. Esses dois casos mostram quão flexível 
é a computação em nuvem. 
8 
Automação 
A escala de crescimento da infraestrutura de armazenamento e processamento de dados 
para suportar a internet cresceu nas últimas décadas de maneira vertiginosa. Não é possível 
imaginar quantos discos de storages, ou chips de memória, ou mesmo servidores são troca- 
dos por hora somente em um desses grandes provedores, como Microsoft ou Amazon. Nãoé 
possível prover serviços em nuvem sem uma automação em larga escala. Todos os provedores 
possuem um portal de atendimento que provisiona tudo o que de possível pode ser fornecido. 
Além disso, os data centers não crescem por servidores, e sim por containers, ou estruturas 
completas semelhantes, que facilitam a manutenção e o crescimento, com menos partes mó- 
veis. O Google possui data center que cresce através de containers que possuem servidores, 
storages, redes, ar condicionado, tudo já configurado para se encaixar no data center. 
 
Figura 6. F t de j ogle containe 
ASSISTA 
Assista ao vídeo Google container data center tour e conheça a estru- 
tura de data center da empresa. O vídeo está disponível no YouTube. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING OQ
Os negócios puramente digitais podem tomar proveito dessa flexibilidade e também da au- 
tomação. Não há mais espaço para esperar a chegada e a instalação de um servidor, sua pre- 
paração, instalação da aplicação, testes, homologação e finalmente entrar em produção. Tudo 
isso é automatizado e imagens de sistemas e ambientes podem ser rapidamente preparadas, 
passando de meses para horas ou minutos, graças também à virtualização. A automação está 
no centro de tudo disso, com uma rica história na indústria, com máquinas programadas, ro- 
bôs em linhas de produção e, agora, com as operações de tecnologia. 
Não é apenas a implantação de máquinas virtuais, e sim a junção com tecnologias de in- 
fraestrutura definidas por software que permitem alcançar o maior grau de automação. Des- 
tacamos aqui algumas dessas tecnologias: 
* Gestão automatizada: não mais somente alertas sobre problemas, mas ações que mi- 
nimizam ou acionam tarefas de recuperação de serviços, ou acionam procedimentos de 
segurança de servidores ou sistemas, liberação de espaço para bancos de dados, chegando 
a ações proativas. 
* Automação de runhooks (rotinas recorrentes): muitas mudanças na infraestrutura po- 
dem ser executadas por scripts de automação, tais como: limpeza de arquivos, movimenta- 
ção de arquivos, backups, recuperação de serviços, limpeza de logs e liberações de acesso, 
podendo, ainda, usufruir de fluxos de aprovação. 
* Evolução de analítico para cognitivo: já existem soluções que se utilizam de Data Scien- 
ce aplicada na gestão de infraestrutura, antecipando problemas através de variáveis de 
monitoração e tomando ações antes que os problemas ocorram, e ainda aprendem com as 
informações novas a respeito do ambiente. 
* Automação de processos: mesmo que alguns componentes não estejam integrados sob 
o ponto de vista de automação, ainda existe a possibilidade de utilização das tecnologias 
de RPA (Robot Process Automation - “automação de processos com robôs”, em português), 
que automatizam operações em softwares, aplicações e sites, simulando 
 
 
 
 
as operações de usuários com mais produtividade (como macros que 
repetem gravações de teclas, cliques de mouse e também interpretam 
páginas web para integrações). 
Especificamente para Data Science, existem auto- 
mações que acionam treinamento de novos mo- 
delos, executam testes de acuracidade e verifi- 
cam como os resultados das análises estão se 
comportando, acionando procedimentos de ges- 
tão complexos. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
 
 Estrutura de cloud em contêineres 
Atecnologia de contêineres é uma plataforma que nasceu para ser suportada em ambiente 
de cloud. Ela encapsula em contêineres de software tudo o que é necessário para rodar uma 
carga de trabalho, facilitando a automação da gestão, principalmente no que diz respeito a es- 
calabilidade, configuração e portabilidade. Ela utiliza menos recursos do que muitas máquinas 
virtuais, pois coloca as bibliotecas em conjunto das aplicações que as usam, fazendo com que 
não haja a necessidade de virtualização de hardware e duplicação de sistema operacional, re- 
forçando o bom resultado do acoplamento fraco entre aplicações que não precisam uma das 
outras. Como exemplo, temos o Docker e Kubernetes. Os desenvolvedores podem criar suas 
aplicações com base nesses modelos e facilitar a colocação das suas aplicações em produção, 
e isso é o coração das novas aplicações na era digital, chamadas de Cloud-Native, ou “nascidas 
em cloud”. 
Conforme cresce a utilização de contêineres, a necessidade de gestão também cresce e temos 
que adotar ferramentas de orquestração, tais como o Kubernetes, Docker e Apache Mesos. 
 
 Arquitetura de Cloud Computing 
Os serviços de cloud forçam uma aborda- 
gem totalmente diferente para a infraestru- 
tura de tecnologia da informação. Clara e ine- 
vitavelmente, isso traz um benefício enorme 
por se tratar de padrões altamente testados 
e estressados por cargas de trabalho e lições 
aprendidas pelas grandes empresas que ini- 
ciaram toda essa evolução. No caso do Data 
Science, é de extrema importância este assun- 
 
to, pois estamos falando de dados que podem 
gerar conhecimento a respeito de diferenciais e estratégias de mercado, diferenciação da con- 
corrência, regras e compliance (regras definidas pela indústria) e também privacidade dos dados. 
Temos que antecipar possíveis problemas de velocidade de acesso para o Big Data, entendendo 
se os componentes da solução estarão mais próximos ou não de onde serão utilizados, se irão 
percorrer em redes WAN (mais lentas), prejudicando a movimentação e o transporte dos dados. 
Com isso em mente, devemos entender as possibilidades de arquiteturas, suas vantagens e des- 
vantagens para escolher a opção adequada para cada situação. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
 
Conceitos básicos, terminologias e modelos de serviços 
Entre os conceitos básicos de Cloud Computing estão os modelos que infraestrutura que 
ela pode assumir, conforme a modalidade da localidade de seus componentes, podendo ser 
Private, Public, Hybrid ou Community. Cada um desses modelos possui vantagens e desvanta- 
gens, que serão vistos. 
 
 Private Cloud 
A infraestrutura de cloud privada (private) é a construção de uma plataforma com as tecno- 
logias de cloud de forma dedicada para uma corporação e suas unidades de negócio, podendo 
estar em suas próprias instalações, ou em provedores de data centers externos terceirizados, 
gerenciados por seus funcionários ou por fornecedores de serviço. No Brasil, as instituições fi- 
nanceiras são as maiores utilizadoras deste modelo, tendo total controle sobre o processamento 
de dados, contudo, muitas entidades já estão utilizando recursos de clouds privadas externas e 
também públicas para parte de suas aplicações. As vantagens deste modelo é poder ter controle 
e dedicação dos componentes da solução, a baixa latência de acesso aos componentes e as ca- 
racterísticas de cloud. As desvantagens estão ligadas ao investimento antecipado para obtenção 
de flexibilidade de recursos, sobra ou ociosidade de recursos e investimentos altos iniciais. 
 
Public Cloud 
A infraestrutura de cloud pública (Public Cloud) é a construção inversa da cloud privada, isto 
é, uma plataforma com tecnologia de cloud de compartilhada entre muitos clientes, oferecida 
por provedores desses serviços no mercado, como Microsoft Azure, GCP (Google Cloud Plat- 
form), AWS (Amazon Web Services), e também provedores locais, como Uol Host, 
 
 
 
 
 
Locaweb, Tivit, entre outros. Alguns serviços são mais adequados a serem implan- 
tados em cloud pública, principalmente aqueles que serão usados por usuários 
finais, clientes distribuídos, facilitando a conectividade e largura de 
banda de internet. Uma regra geral seria entender se a aplica- 
ção será usada pelo público, e não somente por funcionários 
internos da corporação. As vantagens podem ser identifica- 
das como pagamento pelo que se consome, acesso a vários 
tipos de recursos de forma imediata (acesso ao pool) e pos- 
siblidadede abrir mão de recursos rapidamente. As desvanta- 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
gens podem ser falta de compliance por políticas internas ou legislação específica, latência para 
alguns tipos de aplicações e SLA mais adequado às necessidades de negócio. 
 
 Hybrid Cloud 
A infraestrutura de cloud híbrida é a cons- 
trução mesclada entre pública e privada, usu- 
fruindo do melhor de cada uma. Seguir requi- 
sitos de compliance com aplicações na nuvem 
privada, armazenando e processando dados 
internamente, e conectar esses sistemas de 
forma segura com outras aplicações em nu- 
vem pública, usufruindo das versatilidades 
inerentes de suas características. Este modelo 
tem crescido muito nos últimos anos, facilitan- 
do a portabilidade de aplicações, e também 
 
pelo fato de existirem ferramentas que possi- 
bilitam a portabilidade da aplicação entre privada e pública, e ainda entre fornecedores de cloud 
pública. Hoje é possível ter aplicações que possam ser portadas entre fornecedores e usufruir 
da melhor opção comercial ou técnica, sem mudar as aplicações, ou mesmo ter expansão ou 
balanceamento de carga entre diferentes provedores. As vantagens são a mistura entre modelos 
anteriores, dando flexibilidade para um desempenho ajustado para o negócio e ainda obtenção 
do benefício de acesso ao pool de recursos sob demanda, de forma a não impactar os processos 
de negócio. Entre as desvantagens, podemos destacar a complexidade de configurações das 
aplicações para que possam usufruir das novas tecnologias de cloud que permitem a migração 
entre plataformas de cloud. 
 
 Community Cloud 
A infraestrutura de cloud em comunidade é a construção dedicada a uma comunidade de 
empresas que se organizam para investirem em um ambiente flexível que irá servir aos par- 
ticipantes da comunidade, sendo gerido e suportado por membros da comunidade. Além do 
compartilhamento dos recursos, pode haver compartilhamento de responsabilidades, políticas, 
legislação e segurança. Este ambiente pode estar em um data center interno (em uma ou mais 
das empresas participantes) ou terceirizado. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
: E Í CLOUD PRIVADA CLOUD HÍBRIDA 
CLOUD COMUNITÁRIA 
CLOUD PÚBLICA 
 
Figura 7. Tipos de estruturas em cloud 
 
 À importância do cloud no cenário atual 
A computação em cloud tem sido a protagonista no cenário atual das corporações. Um estudo 
da RightScale (2019) mostra que 84% dos entrevistados estão usando uma estratégia multicloud, 
isto é, estão usando mais que um fornecedor de cloud. Sendo esses fornecedores múltiplos Pri- 
vate, Public ou Hybrid. Podemos concluir que não há mais uma preocupação em usar, e sim em 
como aproveitar a concorrência entre os fornecedores e também o melhor de suas especialida- 
des. Dos entrevistados também se destaca o número de 69% que usam Hybrid Cloud e na média 
usam 4,9 nuvens. Tais dados dizem respeito às regiões globais mostradas no Gráfico 1. 
GRÁFICO 1. USUÁRIOS DE ESTRATÉGIAS MULTICLOUD 
 
RESPONDENTES POR REGIÃO 
OUTRAS REGIÕES 
EUROPA 
AMÉRICA DO NORTE ÁSIA PACÍFICO 
Fonte: FLEXERA, 2019. (Adaptado). 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
O uso da Public Cloud está crescendo, como revelado por esse estudo, em 24%. Os desafios 
para as empresas estão se deslocando da migração para gestão financeira das soluções em 
cloud, conforme o Gráfico 2. 
GRÁFICO 2. DESAFIOS DE CLOUD POR TAMANHO DA EMPRESA 
Tama RA ad 
% DE RESPONDENTES 
GESTÃO DE CUSTOS DE CLOUD 6% 
|
 
; 
GOVERNANÇA : 
81% SEGURANÇA : 
79% 
COMPLIANCE 7 1% 
719% 
1% FALTA DE RECURSO/CONHECIMENTO 
GESTÃO DE MULTICLOUO o | 
o E os 
MIGRAÇÃO PARA CLOUD 0% EE: 
Fonte: FLEXERA, 2019. (Adaptado) 
As soluções em nuvem vieram para ficar e para mudar a nossa forma de trabalhar com com- 
putação. 
 
 Características do Cloud Computing 
Como as tecnologias em cloud estão em expansão e devem evoluir muito ainda, fica 
mais adequado elencar as suas características não associadas à tecnologia e sim ao que se 
destaca das outras formas de computação, que são: 
* Autosserviços por demanda: os usuários que contratam o serviço em Cloud Compu- 
ting podem, unilateralmente, solicitar e obter o provisionamento de capacidades, tais como 
servidores, rede e storage, conforme sua necessidade, automaticamente sem precisar de 
interação humana com o provedor de serviço. Isso normalmente é feito por um portal de 
serviços, que permite a solicitação on-line, eliminando burocracia e conhecimento técnico 
especializado. 
* Capacidade de acesso à rede: normalmente, os provedores de Cloud Computing es- 
tão em grandes data centers, com larga capacidade de conectividade entre seus compo- 
nentes de infraestrutura e também estão conectados aos back-bones (“espinhas dorsais”) 
da internet, provendo mecanismos de acesso padrão para ambientes heterogêneos, para 
clientes leves ou pesados (thin ou thick clients), como: smartphones, tablets, laptops, esta- 
ções de trabalho, loT, também mainframes e outros data centers). 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
* Reservatório de recursos: os provedores de Cloud Computing possuem uma gama de re- 
cursos com capacidade de processamento muito grande e de compartilhamento, permitindo 
que vários clientes possam usar o mesmo pool de recursos. O termo em inglês é multi-tenant, 
um modelo que consegue diferenciar os recursos físicos dos recursos chamados virtuais. Os 
recursos virtuais podem ser alocados dinamicamente, pois há uma camada de abstração dos 
recursos físicos, flexibilizando a sua alocação de acesso de acordo com a necessidade. Imagine 
um data center no Brasil que tem a sua maior carga durante o dia, e na parte da madrugada 
pode processar jobs de outros países como o Japão, por exemplo. Com isso, há um aprovei- 
tamento dos recursos de forma otimizada, podendo até haver uma redução de custos, justa- 
mente por este compartilhamento. Equipamentos que seriam muito mais caros, se fossem 
adquiridos por uma única empresa, podem ser compartilhados por horas mensais apenas. 
Mesmo com essa praticidade, legalmente os clientes devem poder optar pelo local onde seus 
dados são armazenados e processados em nível de país, Estado ou mesmo data center. 
* Computação elástica e rápida: as capacidades podem ser provisionadas e liberadas de 
uma forma elástica, em muitos casos automática, para o escalonamento rápido para cima 
(mais recursos) ou para baixo (menos recursos). O cliente pode ter recursos 
quase ilimitados em qualquer quantidade, a qualquer hora. douto 
* Medição de serviços: a Cloud Computing controla automaticamente os 
 
 
recursos usados por intermédio de uma capacidade de medição dos serviços E) 
e recursos em unidades associadas de consumo. Estas unidades estão diretamente ligadas e 
apropriadas às características de cada recurso e o tipo de serviço. Por exemplo: espaço em 
disco => gigabytes com backup, capacidade de processamento => core em GHZ; redes => giga- 
bits por período. O consumo de recursos deve ter condições de ser monitorado e reportado de 
forma transparente tanto para o provedor quanto para o cliente do serviço. 
Tipos de Cloud Computing 
A seguir, veremos três dos mais importantes tipos de Cloud Computing na área de Data 
Science: Infrastructure as a Service, Platform as a Service e Software as a Service. 
Infrastructure as a Service 
Infrastructure as a Service (laaS), ou “infraestrutura como serviço”, é o serviço em cloud que ofere- 
ce os componentes básicos de processamento (CPU), armazenamento (storage) e redes fundamen- 
tais em modalidades por demanda ou de longo prazo. O consumidor pode decidir o que fazer com 
os recursos que podem incluir sistema operacional e serviços adicionais de licenciamento e gestão. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
Esta forma de serviço em cloud é muito utilizada para migrações dotipo lift and shift, isto 
é, virtualizar e levar para cloud os serviços que não podem, por algum motivo, serem migra- 
dos para outras plataformas, ou possuem menor risco de migração, acelerando o processo de 
adoção da arquitetura em nuvem. 
Platform as a Service 
Platform as a Service (PaaS), ou “plataforma como serviço”, é o serviço em cloud que ofere- 
ce uma plataforma completa de desenvolvimento de aplicações nativas para cloud, com tudo 
sendo gerenciado pelo provedor de cloud, em termos de componentes básicos de processa- 
mento. O consumidor do serviço só precisa se preocupar com a aplicação. 
Esta forma de serviço em cloud é muito utilizada para novas aplicações e novos desenvol- 
vimentos ou para compras de pacotes que já utilizam plataformas em cloud. Também podem 
ser utilizadas em estruturas on premise, isto é, nas instalações de data center corporativos. 
Software as a Service 
Software as a Service (SaaS), ou "software como serviço”, é o serviço em cloud que oferece 
aplicações completas, prontas para uso, multi-tenant (os dados de cada cliente ficam isolados) 
e com facilidades de customizações. Podem ser usados via browser e smartphones, possuem 
alta disponibilidade e de fácil uso em escritórios remotos, lojas e grandes sites de usuários. 
CS laas e 
Die) [JUS iao Ee nie ie 
Ee LS Et Dados 
DECO Eno Ee EE 
Sistema operacional Sistema operacional Sistema operacional Sistema operacional 
[
E
]
 
LUA Te LA ACD) PII DAE 
a E q Sã 
F 
5 
E E 
8 
Servidores Elis Eis Ei 
Lu] uia PAGAS] Eua] 
Rede La LE LE 
 
Figura 8. Formas de serviços em cloud 
Esta forma de serviço em cloud é muito utilizada para pacotes de aplicações, tais como 
CRM, ERP, gestão de serviços, tais como Salesforce, SAP e ServiceNow, respectivamente. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
 
Serviços em Cloud Computing para análise de Big Data 
Os serviços digitais disruptivos são os 
que se beneficiam de toda a capacidade de 
dados disponíveis em redes sociais, aplica- 
ções e aplicativos para smartphones, e a 
capacidade de processar o grande volume 
gerado, associado às aplicações e proces- 
sos de negócios (vendas, marketing, de- 
livery, etc.). As limitações que podem ser 
encontradas na criação de ambientes em 
data center internos podem ser uma bar- 
reira grande para a revolução digital que as 
 
empresas podem conseguir. Uma tendên- 
cia clara no mercado é migração da parte de análise de dados, Big Data, Business Intelli- 
gence e ciência de dados, Machine Learning e Deep Learning para o ambiente de cloud. 
Como estas soluções são ávidas por processamento, dimensionar, comprar, implantar e 
manter esses ambientes com tecnologias muito avançadas se tornam um desafio intrans- 
ponível por algumas empresas. Um outro ponto ainda mais importante é quando tudo 
começa a funcionar bem e você precisa gerenciar centenas de nós de cluster, viabilizando 
ainda mais os serviços em cloud. 
Mudanças disruptivas podem ser alcançadas a partir do uso de serviços em cloud 
já desenhados para Big Data. Os custos de criação de infraestrutura vêm caindo nos 
últimos anos, justamente em função do crescimento dos data centers e provedores de 
cloud. A economia de escala tem possibilitado a utilização de algoritmos sofisticados de 
aprendizado de máquina e estão disponíveis por todos os grandes fornecedores de cloud 
no mercado, através de Paas voltadas para inteligência artificial. Além disso, algumas so- 
luções em Saas já incluem utilização de Machine Learning em seus produtos. 
As estruturas denominadas serverless (“sem servidores”) funcionam de forma a simplificar 
a criação e a operação de aplicações sem o forte acoplamento aos componentes de infraes- 
trutura. Por exemplo, podemos criar uma aplicação em Python e as respectivas bibliotecas, 
que são executadas em uma estrutura que abstrai o sistema operacional e outros detalhes, 
facilitando o escalonamento vertical e horizontal da solução. 
Podemos separar os serviços em cloud para Big Data em dois grandes LUNA 
grupos: os serviços de infraestrutura e os serviços de aplicações: 
Ao 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 
 
* Serviços de infraestrutura de Big Data: são a utilização do laaS específico para Big 
Data. Podem incluir storage de alta performance com SSD, GPUSs e acesso a algoritmos 
de Machine e Deep Learning sofisticados. As vantagens estão ligadas à flexibilidade e 
rapidez de acesso a estes recursos, mas a complexidade de gestão dos outros compo- 
nentes fica nas mãos dos seus usuários. 
* Serviços de aplicações de Big Data: é a utilização de PaaS específicos para Big Data. 
Incluem estruturas em Hadoop para armazenamento, Spark para streaming, NosSQL 
para bancos de dados e Data Warehousing ou Data Lake, processamento em memória. 
Alguns exemplos são: 
* AWS: EMR (Hadoop), Kinesis (streaming), Redshift (SQL para Data Warehousing), MSK 
(Kafka), DynamoDB (NoSQL), DeepLens (análise de imagens), Machine Learning, Polly 
(som para texto ou TTS - text to speech), Comprehend (análise de textos não estrutura- 
dos), entre outros. 
* Google: BigQuery (armazenamento e consulta), Nvidia (GPU), Cloud BigTable (NoSQL), 
Cloud DataFlow (ETL e streaming), Cloud DataProc (Spark e Hadoop), Genomics (para 
estudos genéticos e de saúde), Spanner (bancos de dados relacional), Firebase (análises), 
Ideata (preparação de dados para visualização). 
* Microsoft: Azure Data Explorer Cluster (cluster para exploração de dados), HDInsight 
(cluster com Hadoop), Data Lake Storage, Hortonworks Data Platform, StreamsSets Data 
Collector, Data Lake Analytics, MapR Data Platform, Data Science Virtual Machine, Machi- 
ne Learning Studio, Luis (processamento de linguagem natural). 
* Oracle: Data Science Cloud, Big Data Cloud. 
* IBM: Watson Cloud, HPC Cluster, DB2 Warehouse, Analytics Engine, Biglnsights (Ha- 
doop), Decision Optimization, Master Data Management, Streaming Analytics, Redis (in 
memory Data Base), JanusGraph, Knowledge Catalog, Watson Studio, Power Al, Watson 
Recognition. 
* SAP: Sap Hana Cloud Platform. 
* Serviços de software: é a utilização de SaasS aplicado da Big Data 
 
 
 
ou mais precisamente Business Intelligence, no que 
diz respeito à preparação de dados para visuali- 
zação ou mesmo a visualização dos dados que 
podem estar nestes serviços. Por exemplo: 
Tableau, Anaconda Enterprise, Domino Data- 
Lab, Cloudera, Databricks, H20.ai, Google. 
As opções são muitas, o que deve direcionar a toma- 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
da de decisão é a aplicabilidade nos objetivos da corporação. É essencial uma análise de toda a 
estratégia de negócio em médio e longo prazo, lembrando que a flexibilidade deve ser uma pre- 
missa importante para que não haja uma dependência de fornecedor, evitando a mudança para 
outro que esteja alinhado com novas necessidades no futuro. Muitos analistas como o Gartner 
e Forrester recomendam a paralização do investimento em Big Data fora de Cloud Computing, 
como se fosse algo obrigatório, uma nova era sem volta. Quem chegar na frente evoluirá na ve- 
locidade em que a tecnologia está empreendendo, sendo um fator de extinção para os que não 
usarem da mesma estratégia. 
O que se recomenda é começar com um sistema de análise antes de ir para o Enterprise 
Data Lake, assim haverá uma experiência com as vantagens da infraestrutura em nuvem, 
alguma recuperação dos seus benefícios e também angariará métricas para o entendimen- 
to de como será a evolução da solução para chegar ao Data Lake. 
 
 Aspectos de implementação, segurança, armazena- 
mento, custo/preço, qualidade de serviço e SLA 
As formas de utilização de soluções de Big Data em nuvem podem tomar diferentes 
caminhos, dependendo das necessidades de cada empresa, do nível de maturidade em 
relação ao uso de Big Data, características legais que regem o seu funcionamento, estraté- 
gias a respeito desoluções em nuvem e a natureza das principais fontes de dados mais im- 
portantes. Esta complexidade acaba direcionando formas mais cadenciadas de migração 
ou implantação. Ao invés de começar com um Data Lake com todas os dados relevantes 
em nuvem, esperando que os benefícios sejam logo alcançados, é recomendado que se 
comece com sistemas de análise em plataformas mais adequadas. Por exemplo: uso de 
processamento de linguagem natural para análise de sentimentos para a área de vendas e 
telemarketing; sugestão de produtos correlacionados para e-commerce ou próxima ação 
a ser tomada (next-best-action). Isso poderá gerar ganhos mais rápidos com as soluções. 
O fato de tomar as ações acima não significa que não há a necessidade de mapeamento 
dos dados e análises mais comuns na corporação para já planejar as integrações futuras, 
criando uma malha de dados integrados de forma modular, até haver ou não uma justifica- 
tiva clara para a criação de um Data Lake. Com certeza, será necessária uma estrutura de 
metadados que facilitará toda a integração, e os provedores de cloud possuem soluções 
muito robustas, como o serviço de catálogo do Azure, e gestão de acesso e segurança, 
como o AWS IAM (Identity and Access Management). 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
 
 
 
 
 
Implementação 
A solução híbrida na implantação de cloud evoluiu nos últi- 
mos anos com a experiência de migração e conectividade. 
Há formas de usar appliances (equipamentos dedicados e 
configurados para propósitos específicos), que atuam como 
preparadores para migração e integração de sistemas locais 
com plataformas dos provedores de cloud. Há appliances para laas, 
PaasS e SaaS. A Amazon, por exemplo, possui o AWS SnowBall para 
transferência de dados, realizando o casamento perfeito entre a 
cloud privada e a pública. Existem também aceleradores de redes 
que compactam blocos e evitam transferência em duplicidade, e equi- 
pamentos que conectam storages locais com storages em cloud. Este é um ponto-chave para 
iniciar a migração para cloud, já que o grande custo estará na migração dos dados e não no 
processamento. 
Alguns serviços conectam e compartilham storage, e permitem que se faça colocation de 
hardware de storages em seus data centers, como, por exemplo, o AWS Direct Connect ou o 
Microsoft Azure ExpressRoute, que não forçam a migração dos dados. Outros fornecedores 
de soluções de backup e storage também implementam soluções com estratégia de armaze- 
namento. Com estes dados disponíveis na estrutura de cloud, alguns sistemas de Data Science 
podem usufruir de imediato desta estratégia. Podemos detalhar um passo a passo: 
* Fase 1 - Planejamento. Selecionar uma estratégia de cloud básica. Identifique uma plata- 
forma tecnológica em cloud candidata. Mapeie as características de negócio e diferenciais 
que devem ser alcançados com Big Data. Ajuste o seu roadmap de análise de Big Data para 
a nova plataforma. 
* Fase 2 - Identificar as tecnologias de cloud pública candidata. Nesta fase, é importante op- 
tar por plataformas, para que não haja necessidade de configurações e ajustes adicionais, 
e sim no uso direto das tecnologias. As tecnologias de Bl e análises são as mais indicadas; 
possuem o formato SaaS e podem servir também para o desenvolvimento de pequenas 
aplicações preditivas com modelos menores. Outra característica é facilidade de uso, ele- 
vando o uso direto por usuários finais, acelerando a adoção do self-service. 
* Fase 3 - Iniciar o uso de plataformas como o Hadoop integrando as estruturas de arma- 
zenamento e análise de dados, usando serviços de aplicações do provedor. Aqui tem que 
haver uma análise dos custos adicionais em termos de armazenamento e processamento; 
por este motivo, as aquisições devem prever um tempo maior de utilização (anuais). 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
* Fase 4 - Com a estratégia básica implantada, refazer o roadmap de Big Data com as lições 
aprendidas nos passos anteriores, tendo em mente a possibilidade de aceleração da mi- 
gração para cloud. Priorize os esforços que coloquem os processamentos dos dados mais 
próximos a eles, criando valor de ação (uso dos modelos de aprendizado de máquina) nas 
aplicações transacionais. Aqui é importante envolver os clientes finais na identificação de 
oportunidades de alavancagem dos dados. Deve-se fazer uso das metodologias de design 
thinking e MPV (Minimum Product Value), bem como outras fontes de informação que pos- 
sam gerar diferenciais, como loT ou redes sociais. 
* Fase 5 - Crie pequenos projetos para experimentar outras tecnologias e outros prove- 
dores; há formas de avaliar gratuitamente por algum período ou volumes específicos. Isso 
pode facilitar futuras migrações ou mesmo uma estratégia multifornecedor. 
Esses passos são simples, mas uma vez que os problemas básicos estiverem soluciona- 
dos e a política de utilização de cloud estiver alinhada com a estratégia de negócios, o cami- 
nho estará livre para a revisão e a ampliação dos sistemas a serem migrados, como o uso de 
processamento de linguagem natural para Contact Center e SAC (serviços de atendimento a 
clientes), identificando situações de CHURN, análises de sentimento e comportamentos que 
podem propiciar novas vendas. Muitas empresas são obrigadas a armazenar dados por anos, 
conforme legislação, e seria uma ótima estratégia aproveitar esses dados para criação de valor 
em cima deles. 
2, 
Segurança 
A segurança em computação em nuvem é uma mudança de paradigma. Há ainda muita 
desinformação a este respeito, e também novas legislações na Europa e na indústria financei- 
ra que regem a forma de armazenamento, local e tipos de acessos, complicando ainda mais 
as definições de políticas de segurança das corporações. Primeiramente, deve-se envolver os 
departamentos jurídicos das empresas ou, se não houver conhecimento suficiente interno, 
buscar escritórios de advocacia especializados em TI para que não haja pré-conceitos ou falhas 
de entendimento a respeito das normas de cada mercado, de como reger os dados internos de 
clientes e externos que a companhia tem acesso e de que forma quer fazer uso deles. 
Com isso em mente, precisamos entender que, assim como os provedores de solução em 
cloud investiram em tecnologias de processamento e armazenamento, elas também passaram 
por problemas de acesso a esses dados, tentativas de roubo de informação, ataques visan- 
do a indisponibilidade e estão no meio do furacão no qual os principais ataques cibernéticos 
passam. Por este motivo, são verdadeiras fortalezas de segurança, usando sua capacidade de 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
processamento para identificar fraudes, des- 
vio de informação, falhas de segurança em 
aplicações e sistemas operacionais. 
Isso quer dizer que estar em uma solução 
em cloud dos principais fornecedores (AWS, 
Azure, Google, IBM e Oracle) eleva o nível de 
segurança da maioria as empresas de merca- 
do. Estar nesse ambiente não é estar vulnerá- 
 
vel a qualquer acesso, muito pelo contrário; 
às vezes é mais fácil para os hackers invadirem uma empresa em seu próprio data center. Ape- 
sar de usarmos serviços em outro provedor, podemos estar em um ambiente fora da internet 
(fora da DMZ), nos chamados Data Centers Virtuais. O que tem mais preocupado os usuários 
de cloud está mais ligado a deixar que seus dados sejam gerenciados por terceiros do que 
os riscos externos, mas já vimos que os provedores utilizam muitos recursos de automação. 
Uma pessoa que possui acesso físico a um equipamento em nuvem não possui uma forma de 
identificar e saber o que é processado naquele componente, além do que está criptografado e 
pode possuir blocos de diferentes clientes, um verdadeiro quebra-cabeças. 
A GDPR (General Data Protection Regulation), ou em português LGPD (Lei Geral de Proteção 
de Dados), define que as empresasprovedoras de serviços devem se responsabilizar pela lo- 
calização e gestão dos acessos aos dados armazenados e processados. Aqui, sim, é uma verda- 
deira área de análise e adequação de estratégia, pois fica claro o papel do provedor no relacio- 
namento com seus clientes. Não podemos deixar de criar políticas e processos de governança, 
incluindo os serviços em nuvem. Por estar tecnicamente bem estruturado, não significa que 
pode ser deixado sem governança. 
Os provedores são ótimos nos recursos padronizados, mas as aplicações desenvolvidas, 
como elas são usadas, as políticas e legislações locais, ciclo de vida da informação dentro das 
empresas usuárias, dependências de configuração ficam a cargo dos usuários. Temos que to- 
mar cuidados com APIs, integrações e conexões com terceiros e dados externos. Sempre tem 
de haver testes de falha, testes em aplicações, testes de segurança para que as brechas sejam 
identificadas antecipadamente. Dedique parte do time para investir em governança e testes 
funcionais e de recuperação de desastres. 
Na gestão de segurança, é preciso incluir uma forma segura de gerenciamento de chaves de 
acesso a APIs. Muitas APIs fornecem chaves para permitirem acessos a algoritmos de Machine 
Learning, de NLP, de Deep Learning, identificam o usuário e gerenciam a forma de cobrança e, 
por este motivo, precisam estar controladas e não depender de pessoas para o acesso. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
 
Custo/preço 
Os custos em cloud possuem dinâmicas diversas e precisam 
 
 
de estudo aprofundado para cada provedor. O investimento 
em gestão de custos com cloud é o desafio para 84% das 
empresas entrevistadas no estudo da RightScale. Os princi- 
pais pontos relacionados ao controle desses custos são: 
* Complexidade: não devemos considerar que seja fácil o contro- 
le de custos em cloud. Vamos ver o caso da AWS, que possui ao 
menos 150 produtos e gera em torno de 500 novas característi- 
cas destes produtos ou serviços a cada trimestre. Ela pode cobrar 
por demanda (a cada minuto de uso), ou por instâncias completas. 
Somente o produto EC2 (Elastic Computing 2) possui 25 famílias de instância com até 12 
tamanhos por família de instância. Existem ferramentas que podem automatizar a gestão 
dos custos e que se atualizam rapidamente com as informações dos provedores, algo muito 
custoso para uma equipe interna. É melhor manter uma equipe com foco no negócio do que 
na complexidade de análise de custos. 
* Desperdício: com a facilidade de escalonamento de recursos e a dispersão de uso de 
cloud nas corporações podem existir desperdício de recursos, pois nem todos dimensio- 
nam corretamente os recursos que precisam. Existem ferramentas de monitoração de uso 
de cloud que podem ser usadas para identificar oportunidades de liberação de recurso. Os 
provedores também possuem regras que ajudam na redução de custos: desligamento au- 
tomático de máquinas por horário ou carga e liberação de espaço não usado. 
* Descontos: todos os provedores possuem descontos por reserva de recursos. Este é um 
ponto muito importante para Big Data em que as cargas de processos podem variar de 
acordo com a fase dos projetos. Quanto maior for o tempo de alocação do recurso em 
cloud, mais barato ele fica, portanto, o tempo de uso deve fazer parte do projeto. Os arqui- 
tetos precisam pensar nisso e estimar o tempo para alocar os recursos adequadamente e 
calcular o que compensa mais. Há descontos de 20% a 40% dependendo do provedor para 
as alocações anuais, por exemplo. 
Com relação à gestão dos custos e orçamento, é necessário ater-se a esses pontos, que não 
são exaustivos, mas podem ajudar a iniciar uma boa estratégia: 
* Previsibilidade: aqui está um grande desafio para os arquitetos em soluções em cloud. 
É verdade que a economia já ajuda na relação com os orçamentos anuais que são comuns 
nas empresas, mas há que se ter cuidado com as curvas de demandas e acelerações de 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
adoção das soluções. Há como se calcular 
mais precisamente o uso de storage, mas 
devemos ficar atentos aos custos de rede, 
pois as transferências entre o Data Center 
interno e cloud podem variar conforme as 
velocidades e a direção (entrada e saída). 
Às vezes, o que pode parecer barato sob 
um ponto de vista, pode gerar demora em 
transferência, por isso deve-se analisar to- 
 
das as possibilidades, inclusive transferên- 
cia de mídia física (HDs, storages e fitas). As soluções como o appliance aceleram a trans- 
ferência e ainda podem economizar custos de rede. Após a implantação, devemos criar 
regras para evitar ou controlar os recursos de escalonamento automático, evitando custos 
adicionais não previstos. 
* Suporte: em uma migração para cloud, haverá um impacto tecnológico e, por consequên- 
cia, um impacto metodológico. Com isso em mente, devemos adicionar custos de suporte 
para esses pontos. Aqui, poderá se tomar a decisão de criar um time centralizado ou já 
separar as equipes entre sistemas ou departamentos com foco maior no negócio (vendas, 
marketing, produção etc.), acelerando o alcance aos benefícios, sempre levando em consi- 
deração a estratégia de área de Big Data. O foco do conhecimento técnico interno fará uma 
migração para soluções de integração de dados com as principais fontes da corporação, tais 
como ERPs (SAP, Oracle, Totvs) ou CRM (SalesForce, SAP, Oracle). Analisar as ofertas adicio- 
nais dos provedores pode ser algo que aumente a efetividade de uso das soluções em cloud. 
* Moeda: os provedores e cloud internacionais, apesar de terem data centers no Brasil, 
ainda estão com os custos associados à variação do dólar; muitos preços são informados 
em reais, mas são indexados à moeda estrangeira mensalmente. Devemos ficar atentos aos 
contratos. 
A gestão de custo em cloud pode ser melhorada com ferramentas especializadas neste 
assunto, chamadas de CCMO (Cloud Cost Management and Optimization), cujos exemplos de 
mercado são: RightScale, CloudHealth, Turbonomic, Apptio, Densify, Microsoft, Cloudability 
e Teevity. Ao avaliar as ferramentas, devemos nos atentar em: recursos suportados, monito- 
ração de uso, otimização de custos, gestão de níveis de serviço (SLA, Service Level Agreement), 
integração com APIs para outras ferramentas de gestão (ERP), gestão multicloud, workflow de 
aprovação ou integração com outros, e integração com ferramentas de monitoração e orques- 
tração de recursos. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING <>
Lralfo 0=] 
Total cost 
Sis270 
E 
DES] 
st82e7 
E Odo 
EB Asmunistranos 4 Securty 
E Nemo 10% 
E Ortstase 
EB Application Servicos 
E Sorgo ; 
am 
E Compute 
etailed breakdown for April 
Produt cstegonea 
É8 Amazon Vicb Servicos 
& Appicaton Services 
ANS secountto 5 
E Network 
 
Figura 9. Tela d ftware RightScale 
Os descontos estão disponíveis, mas os limites mudam de um tipo de serviço para outro. 
Os principais modelos de preços de nuvem estão, muitas vezes, abertos e disponíveis em si- 
tes, mas os fornecedores costumam discutir os pontos mais detalhados em negociações mais 
avançadas, principalmente quando se fala em descontos. 
Existem muitos programas de desconto, incluindo aqueles baseados em gastos cumulati- 
vos, bem como outros tipos de vantagens, como as reservas de instâncias. No entanto, os des- 
contos para laaS tendem a ser na faixa de 15% a 20%. Além disso, os fornecedores de nuvem 
direcionarão outros tipos de descontos, como aqueles que incentivam a migração, quando 
fizer sentido para eles. 
O acordo deve ser em nível corporativo, pois é uma estratégia-chave para obter o melhor 
um ótimo negócio. Os volumes contratados importam. Os acordos corporativos são uma fer- 
ramenta fundamental para obter o preço mais favorável e os melhores termos de contrato. Os 
negociadores precisam prestar a atenção, porque o termo “enterprise agreement”assume um 
significado diferente em Saas contra as plataformas de nuvem, embora a razão para usá-lo 
seja semelhante. Em plataformas de nuvem, o contrato da empresa é como um contrato de 
serviços mestre, algo mais formal do que comprar o site em um modelo de pagamento con- 
forme a sua utilização ou acesso. No Saas, o contrato empresarial está com foco no acúmulo 
de gastos em toda a empresa, que pode ser baseado em modelos de preços diferentes, como 
receita corporativa ou HeadCount corporativo, em vez de uma métrica de usuário/uso real. 
Assim como nas plataformas de nuvem, as melhores ofertas de SaaS vêm através de contratos 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING 5)
corporativos. O fornecedor está disposto a inseri-los porque eles, tipicamente, implicam num 
compromisso de maior volume e prazo. 
 
 Qualidade de serviços 
A qualidade dos serviços em cloud está também associada à forma de contratação. Para 
cada tipo de serviço há respectivos modelos de qualidade e níveis de serviço (SLA). A qualidade 
da modalidade laaS está associada à disponibilidade dos componentes e não se responsabiliza 
por dados ou configurações. Por outro lado, os provedores fornecem serviços adicionais de 
gestão, monitoração e backups que possuem SLAs específicos, e cada fornecedor possui seus 
próprios modelos de entrega. Na modalidade de Paas, os níveis de serviços estão ligados a dis- 
ponibilidade da infraestrutura, contas com bancos de dados, servidores de aplicação, métricas 
de réplicas de dados e escalonamento. No que diz respeito ao modelo Saas, deve-se atentar 
aos SLAs de upgrade de versão, indisponibilidades para atualizações e processo de migração 
de versões, lembrando que podem ter atualizações de versão menores e maiores, com dife- 
rentes níveis de esforços para cada uma. 
Quanto mais dependente nos tornamos dos serviços em nuvem, mais detalhados precisa- 
mos ser nos SLAs. Se precisamos de tempo de resposta como indicadores de nível de serviço, 
precisaremos de uma negociação forte para obtenção disso nos contratos. Lembramos aqui o 
cuidado na análise de indicadores de transferência de dados de saída, que são usados na hora 
de migrar para outro provedor; temos que garantir que não haja nenhuma forma de barreira 
no procedimento, como a concorrência estar aumentando, por exemplo. É necessário pesqui- 
sar e contrapor, justificando as exigências que o negócio necessita. 
 
 
Os fornecedores de nuvem são inconsistentes em compromissos com clien- 
tes. Os clientes tendem a pensar que um provedor de serviços de 
nuvem responderá da mesma forma entre os contratos diretos 
com outros tipos de fornecedores de outsourcing, por exemplo. 
Mas devemos lembrar que tudo é automatizado e suportado 
por equipes no mundo inteiro. 
 
SLA 
São os SLAs que dão confiança no desempenho dos serviços e garantem o retorno de in- 
vestimento (ROI) em qualquer tipo de solução e na disponibilidade, e em Cloud Computing há 
situações novas. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
O objetivo de penalizar a dor financeira nos fornecedores de nuvem por um desempenho 
inadequado não se aplica realmente. Isso ocorre porque, de muitas maneiras, os contratos em 
nuvem são, em última análise, projetados para não pagar por SLAs perdidos - os fornecedores 
geralmente estão em dívida apenas para estender serviços adicionais, em vez de pagarem por 
uma penalidade financeira. Além disso, a responsabilidade por falta de SLA é muitas vezes a 
responsabilidade explícita ou transferida para o cliente. 
TABELA 1. FORNECEDORES E SUAS PÁGINAS DE CONTRATO 
Naa 
LENA aà ao 
AT https://azure.microsoft.com/pt-br/support/legal/sla/ 
Amazon AWS [gi as o ZAe om/legal/amazon
-ec2-sla/Amazon EC2 Service 
RSS AÇO Portuguese Translat 2018-02-12 .pdf 
ETTA Re Es https://cloud.google.com/terms/sla/ 
Oracle Cloud https://cloud.oracle.com/pt PT/iaas/sla 
 INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O
Sintetizand Mme o 
Nesta unidade, pudemos ver como a computação em cloud se aproveitou dos concei- 
tos de tecnologias antigas para resolver os problemas enfrentados por grandes empresas 
que alavancaram a internet, como a Amazon, que começou como uma livraria sem livros 
e se tornou uma das gigantes globais de infraestrutura de cloud; a Google, com seu web 
crawler e algoritmos de pesquisa; e ainda a Netflix, que se tornou uma gigante do entre- 
tenimento. Estas empresas investiram em plataformas de código aberto e virtualizaram 
quase tudo, distribuindo processamento entre máquinas convencionais e muitas vezes 
de qualquer marca, mas alcançaram a capacidade de processamento que necessitavam. 
Elas saíram das garagens para estruturas em cluster, depois para estruturas em grid 
computing, até chegarem à cloud. Buscaram a automação no seu limite, desenvolveram 
novas formas de data centers, plugaram tecnologia de diferentes áreas e romperam com 
a barreira de integração e interoperabilidade, virtualizaram, “contêinerizaram”, desaco- 
plaram, encapsularam e, por fim, ofereceram ao mercado aquilo que descobriram ser a 
nova forma de prestar serviços, do tradicional para laas, depois para o Paas, até o SaasS. 
pao 
b 
 INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING OQ
Referências bibliográficas à 
OO US 
ASHRAF, U. Apache Storm Is Awesome. This Is Why (and How) You Should Be Using It. 23 mai. 
2018. Disponível em: <https://medium.freecodecamp.org/apache-storm-is-awesome-this-is- 
-why-you-should-be-using-it-d7c37519a427>. Acesso em: 29 mai. 2019. 
APACHE HADOOP. Welcome to Apache Pig. [s.d.] Disponível em: <http://pig.apache.org/>. 
Acesso em: 29 mai. 2019. 
BEN-ZVI, G. Dead Alive and Kicking? Big Data Helps Retail Revive. Sgream, 11 jul. 2017. Disponí- 
vel em: <https://sgqream.com/dead-or-alive-and-kicking-big-data-helps-retail-revive/>. Acesso 
em: 29 mai. 2019. 
BROWN, N. Hadoop From The Beginning: The Basics. [s.l.], 2018. 
CAVANILLAS, ). M. et al. New Horizons For a Data Driven Economy. [s.l.]: Springer Open, 2016. 
DUARTE, L. MongoDB para iniciantes: um guia prático. Gravataí: LuizTools, 2017. 
D-WAVE. Quantum Computing. [s.d]. Disponível em: <https://www.dwavesys.com/quantum- 
-computing>. Acesso em: 29 mai. 2019. 
FLEXERA. 2019 State of The Cloud Report: See The Latest Cloud Trends. 2019. Disponível em: 
<https:/www.rightscale.com/lp/state-of-the-cloud>. Acesso em: 29 mai. 2019. 
GOOGLE container data center tour. Postado por Google. (6min. 36s.). son. color. eng. Dispo- 
nível em: <https://www.youtube.com/watch?v=zRwPSFpLX8I>. Acesso em: 29 mai. 2019. 
HUNTER, T. Deep Learning with Apache Spark and TensorFlow. Databricks, 25 jan. 2016. Dispo- 
nível em: <https://databricks.com/blog/2016/01/25/deep-learning-with-apache-spark-and-ten- 
sorflow.html>. Acesso em: 29 mai. 2019. 
LEÃO CARNEIRO, ). B. Análise da tecnologia de virtualização de servidores em um data center 
como fator para obtenção de ganhos de produtividade. Espacios, v. 37, n. 27, p. 20, 2016. 
MELL, P.; GRANCE, T. The Nist Definition of Cloud Computing. 2011. Disponível em: <https:// 
nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf>. Acesso em: 29 mai. 
2019. 
NEW GEN APPS. What Is Hadoop and How It Changed Data Science. 13 mar. 2018. Disponível 
em: <https://nww.newgenapps.com/blog/what-is-hadoop-and-how-it-changed-data-science>. 
Acesso em: 29 mai. 2019. 
O'REILLY. Big Data Now - Current Perspectives From O'reilly Radar. Massachussets: O'Reilly 
Media, 2012. 
RAO, S. Cassandra: Data Warehousing, Data Modeling and Database Administration. Unified 
Data Science Corporation, 2016. 
INFRAESTRUTURA DE DATA SCIENCE E CLOUD COMPUTING O

Mais conteúdos dessa disciplina