• Nenhum resultado encontrado

MARCELO NAGY CICLO DE PALESTRAS EM TI

N/A
N/A
Protected

Academic year: 2021

Share "MARCELO NAGY CICLO DE PALESTRAS EM TI"

Copied!
31
0
0

Texto

(1)

 

 

 

 

BIG DATA NA PRÁTICA

 

 

 

MARCELO NAGY

CICLO DE PALESTRAS EM TI

 

 

 

Marcelo Nagy

 

 

Formação

 

 

Tecnologias

 

 

 

(2)

 

Big Data

 

A era das grandes massas de dados já começou. Usuários são agora fontes de dados. Empresas armazenam incontáveis informações de clientes e milhões de sensores monitoram o mundo real, criando e trocando dados na Internet das coisas. Uma variedade de informações é gerada não só por cientistas, empresas e governos, como acontecia antes, mas também pela população em geral. As arquiteturas em nuvem obrigam indivíduos e organizações a lidam com um verdadeiro dilúvio de dados. Estes dados são úteis ? Estes dados estão correlacionados ? Como garimpar informações destes dados ?

 

 

 

 

 

 

Aumento dos dados armazenados

estimados pela IDC

 

Fonte: IDC’s Digital Universe Study, patrocinado pela EMC, Junho de 2011

 

Armazenamento em exabytes

 

 

 

 

Curiosidades

(3)

 

    20 gigabytes tem a coleção de trabalhos do Beethoven 2 terabytes em média uma biblioteca acadêmica 11 petabytes total de mensagens de correio eletrônico em um ano 5 exabytes total de palavras ditas pelos humanos 200 petabytes todo material impresso no mundo    

 

 

 

 

Escalas

 

 

 

 

 

 

3 V's

 

  Velocidade Volume Variedade Volume + variedade + velocidade de geração de dados são os elementos que compõe o Big Data. Possibilidade de localizar, peneirar e analisar informações úteis.

(4)

A proposta ambiciosa do Big Data é ajudar empresas a decidir com base em evidências e analisadas continuamente.    

 

 

 

 

 

3 V's

 

Os sistemas tradicionais atuais não estão preparados para tratar certas coleções de dados: A previsão é que passaremos da faixa de muitos gigabytes (bilhões de bytes) ou poucos terabytes (trilhões) para a faixa de petabytes (milhares de trilhões) ou até mesmo exabytes (milhões de trilhões). Um disco rígido comum tem atual mente em torno de 1 terabyte. O LHC, o maior acelerador de partículas do mundo armazena 15 petabytes por ano de dados na forma original. É o equivalente a 15 mil discos rígidos cheios. Velocidade significa que esses dados são enviados aos nossos sistemas com uma taxa de bytes por intervalo de tem po muito alta. Como saber o que guardar e guardar cada vez mais rápido é o desafio! Guardar informação qualquer que seja permite que, mais tarde, exista uma disponibilidade que pode ser aproveitada em uma oportunidade não identificada previamente. Uma das principais aplicações de ter à disposição uma grande quantidade de dados é descobrir algo novo. Analisando e criando um modelo de execução a partir de exemplos, podemos fazer com que um computador ‘aprenda’ a reconhecer padrões ou fazer previsões.

 

 

 

 

(5)

3 V's

 

Os dados gerados ultrapassam significativamente as capacidades de armazenamento das estruturas. Desta forma, se torna imprescindível a concepção de novos procedimentos para o tratamento de dados. Não é descartada a possibilidade de que novas observações sejam feitas com relação aos mesmos dados. Para comparar todos os pares de uma coleção qualquer (nomes, CPFs, número de telefones, compras, endereços etc.), precisamos gastar um tempo proporcional ao quadrado da quantidade de dados.

Variedade significa que os dados aparecem em formas diferentes,

facilmente descritos na forma de tabelas, textos, imagens, etc.

Precisamos melhorar nossos algoritmos, buscar soluções aproximadas – caso contrário, o processamento se torna inviável. Soluções paralelas permitem desempenho superlinear, isto é, o aumento de velocidade é maior do que o aumento do número exigido de processadores.

 

 

 

 

Exemplos de classificação de Big

Data

 

• Uma apresentação de 40 megabytes representa uma grande massa de dados se não for possível enviá­la por correio eletrônico a um colega ou cliente; • Uma imagem médica de 1 terabyte representa uma grande massa de dados se não for possível exibi­la de forma simples e acurada em uma tela remota em tempo real durante uma consulta médica com um paciente; • Um filme de 1 petabyte representa uma grande massa de dados se não for possível editálo a tempo.    

 

 

(6)

 

 

Big Data no comércio

 

  Quantas informações são geradas em cada venda em uma rede de supermercados? E se essas informações forem cruzadas com mensagens em redes sociais sobre mercados, produtos, receitas e notícias na mídia e de cartão de crédito? Raciocinando dessa forma, sistemas que analisam toda essa informação permitem a obtenção tanto de perfis de consumo individualizados quanto da experiência de compra do cliente e seus gastos.    

 

 

 

 

Big Data na indústria

 

  Um dos fatores que aumentaram a quantidade de dados foi a multiplicação dos sensores de vários tipos de câmeras de alta definição a simples contadores ou termômetros. A maioria das casas já tem equipamentos que fornecem informação aos seus produtores ou provedores de serviço, como computadores, equipamentos de TV a cabo e celulares. Já temos geladeiras ligadas à internet,para informar seu estado ou ritmo de consumo. Isto mostra que Big Data já esta bem próximo do nosso dia a dia.        

 

(7)

 

 

 

Big Data no Brasil

 

No Brasil, em especial, a indústria

de petróleo é grande criadora de

dados. Em dezembro do ano

passado, o Banco de Dados de

Exploração, mantido pela Agência

Nacional de Petróleo (ANP),

continha 4,57 petabytes.

Os dados desse banco da ANP

são usados por várias empresas

de petróleo, que produzem ainda

mais informação.A partir deles,

são gerados imagens e filmes que

são analisados e geram textos e

relatórios, que, por sua vez, geram

investimentos financeiros,

(8)

movimentos da bolsa e notícias na

mídia.

Como país de grandes proporções

e com uma população de

aproximadamente 200 milhões de

pessoas, algumas bases de dados

aqui já traziam problemas de Big

Data antes que esse nome fosse

criado.

 

 

 

 

 

Desafios

 

i) Como adquirir; ii) Armazenar; iii) Processar; iv) Transmitir e disseminar; v) Gerenciar e manter; vi) Arquivar por longo prazo; vii) Garantir a segurança; viii) Treinar pessoas para usá­los; ix) Pagar por tudo isso.

(9)

Ainda podemos adicionar a esses desafios, como entendê­los de forma isolada e como relacioná­los.        

 

 

 

 

Desafios

 

 

Um desafio importante é entender como esses dados evoluem. Essa

tarefa criará, em 2015, segundo a grande empresa norte­americana de

consultoria Gartner Group, cerca de 4,4 milhões de empregos muitos

deles para profissionais capacitados a analisar esses dados, em um

mercado mundial avaliado, já para este ano, em US$ 34 bilhões (cerca

de R$ 70 bilhões).

Grandes empresas de computação já orientam suas linhas de produtos e

serviços para atender a esse mercado.

Uma questão crítica é como armazená­los de forma que possam ser

rapidamente encontrados e manipulados.Um dos grandes

desenvolvimentos tecnológicos em computação do século passado

foram os Sistemas de Gerenciamento de Banco de Dados (SGBDs).

 

 

 

 

 

 

Desafios

 

(10)

 

São eles que permitem que tratemos de forma eficiente milhões de

contas bancárias e outros sistemas que basicamente fazem o

gerenciamento de transações.

Os SGBDs compartilham uma linguagem chamada SQL (sigla, em

inglês, para linguagem de consulta estruturada), e o modo de organizar

essas tabelas para condições ótimas de acesso é bem conhecida.

Com novos tipos de dados, essa tecnologia não é eficiente. Para alguns,

o caminho parece ser o que denominamos bancos de dados No­SQL ou

outros ainda mais especializados.

 

 

 

 

 

 

Desafios

 

Outro caminho é a paralelização do processamento. Essa paralelização se dá em muitos níveis, como um computador com vários processadores (chips); em processadores com vários núcleos; ou pela união de computadores para formar uma rede que age como um supercomputador, por exemplo. Há ainda a opção do processamento em nuvem. Propostas como o programa livre Hadoop baseado no MapReduce, um dos mecanismos que fazem o Google funcionar permitem que um problema seja dividido por várias máquinas e, depois, tenha seu resultado agregado em uma máquina central.    

 

 

 

 

Exemplos

(11)

 

No Japão, uma rede de milhares de sensores permite detectar terremotos e avisar a população. Empresas de cotação de preços, bem como as de vendas pela internet, analisam o perfil dos clientes, para dar sugestões de consumo. Instituições financeiras e governos avaliam milhões de transações financeiras em busca de fraudes.    

 

 

 

 

Ética e Big Data

 

Não podemos deixar de lembrar

que Big Data também traz à tona

novos problemas éticos.

O que empresas e governos

fazem com tantos dados privados?

Que informação pode ser

deduzida a partir de dados?

O uso das informações que

estamos guardando e analisando

pode ter resultados não

(12)

desejados. É famosa a história do

caso de um pai que descobriu, por

meio da propaganda direcionada

de uma rede norte­americana de

lojas de varejo, que sua filha

adolescente estava grávida fato

que havia sido detectado pelos

algoritmos da empresa.

 

 

 

 

 

Ética e Big Data

 

A disponibilidade dessas grandes

bases de dados e a viabilidade de

sua interligação permitem que

imaginemos aplicações que

salvam ou prejudicam vidas. Fazer

(13)

um julgamento ético ou moral de

uma tecnologia não é questão

simples.

Melvin Kranzberg (1917­1995),

que disse: “A tecnologia não é boa

nem é má, nem é neutra”.

Não devemos esquecer o ditado

que diz: informação é poder.

 

 

 

 

Clusters

 

Uma solução para agilizar e viabilizar a análise das grandes massas de dados é a partir das arquiteturas em aglomeração (cluster). Escalabilidade, a agilidade e a elasticidade dos recursos são pré­requisitos muito importantes para a análise das grandes massas de dados. Uma questão chave, entretanto, é como as arquiteturas em aglomeração podem atingir todas essas características. Considerando, por exemplo, que a Google possua milhões de núcleos de processadores em todos os seus centros de dados, apesar desses componentes falharem com frequência, componentes redundantes fazem com que essas falhas sejam imperceptíveis aos usuários.    

 

(14)

 

 

 

Hadoop

 

O Hadoop foi desenvolvido para aproveitar os recursos e a estrutura disponível em uma arquitetura em aglomeração (cluster). O objetivo é possibilitar que as aplicações utilizem todo o potencial de um aglomerado ao levar em consideração dois pontos chave:     (i) a distribuição dos dados pelo aglomerado, assegurando que os dados estejam distribuídos igualmente; (ii) o desenvolvimento de aplicações que se beneficiem da localização dos dados.        

 

 

 

 

Hadoop

 

Esses dois pontos fundamentais levam o projeto do Hadoop a empregar dois mecanismos: Sistema de Arquivos Distribuído (Hadoop Distributed File System ­ HDFS) que é um sistema de arquivos para dividir, espalhar, replicar e gerenciar dados ao longo dos nós em um cluster; Namenode Datanode    

(15)

 

 

 

 

Hadoop

 

O MapReduce que é um mecanismo computacional para executar aplicações em paralelo. As aplicações são executadas através da divisão em tarefas que manipulam apenas uma parcela dos dados, coletando e redistribuindo resultados intermediários e gerenciando falhas através de todos os nós do aglomerado. JobTracker Coordena todas as tarefas executadas no sistema através da divisão da tarefa em rotinas e para agendar cada uma dessas tarefas para serem executadas em um nó. O JobTracker também mantém informações de todos os nós participantes da computação, monitora os status individuais, orquestra o fluxo de dados e se encarrega de contornar as falhas dos nós; TaskTracker Executam tarefas e enviam relatórios de progresso ao JobTracker. Caso a tarefa falhe, o JobTracker pode reagendá­la em um TaskTracker diferente. O TaskTracker mantém informacões de todas as tarefas em execução em seus nós, seja uma tarefa de mapeamento ou redução.

 

 

 

 

Instalação do Hadoop

 

Instalação de um pseudo cluster

em uma máquina linux.

Alterar os hosts das máquinas

(16)

para as máquinas poderem se

conectar.

Instalar o ssh nas máquinas do

cluster.

Configurar o repositório da

cloudera no linux.

Instalando

sudo apt­get install hadoop­0.20­

conf­pseudo

Instala o core do hadoop

configurado para rodar em uma

máquina.

sudo ­u hdfs hdfs namenode ­

format

Formata o NameNode os

metadados do nameNode ficam na

pasta /var/lib/hadoop­

(17)

hdfs/cache/hdfs/dfs/name

Configurar o alternatives

/etc/hadoop/conf

link simbólico para

/etc/alternatives/hadoop­conf

 

 

 

 

 

Instalação do Hadoop

 

$ for service in /etc/init.d/hadoop­

hdfs­*

do

sudo $service start

done

iniciar os serviços da hdfs

(18)

criar a pasta temporária do hdfs

$ sudo ­u hdfs hadoop fs ­mkdir

/tmp

alterar a permissão da pasta para

que todos o componentes do

hadoop possam utilizá­la

$ sudo ­u hdfs hadoop fs ­chmod ­

R 1777 /tmp

criar as pastsas que o mapReduce

utilizam e dar suas permissões

$ sudo ­u hdfs hadoop fs ­mkdir \

/var/lib/hadoop­

hdfs/cache/mapred/mapred/staging

 

 

 

 

Instalação do Hadoop

 

(19)

$ sudo ­u hdfs hadoop fs ­chmod

1777 \/var/lib/hadoop­

hdfs/cache/mapred/mapred/staging

$ sudo ­u hdfs hadoop fs ­chown ­

R \mapred /var/lib/hadoop­

hdfs/cache/mapred

for service in /etc/init.d/hadoop­

0.20­mapreduce­*

do

sudo $service start

done

iniciar os serviços do MapReduce

sudo jps

verificar os serviços

comandos básicos

$ hadoop fs ­mkdir input

(20)

$ hadoop fs ­put shakespeare.txt

input

$ hadoop fs ­ls input

$ hadoop fs ­tail

input/shakespeare.txt

 

 

 

 

Flume

 

O flume é utilizado para inserir logs no hdfs em real time. Implementa transações. Instalando o flume sudo apt­get install flume­ng Criando a pasta no hdfs que receberá os logs hadoop fs ­mkdir flume/collector1 Criando o arquivo de configuração do flume /etc/hadoop/conf/ flume­conf.properties

 

 

 

 

Flume

 

(21)

conteúdo do arquivo

tail1.sources = src1

tail1.channels = ch1

tail1.sinks = sink1

tail1.sources.src1.type = exec

tail1.sources.src1.command = tail ­

F /tmp/access_log

tail1.sources.src1.channels = ch1

tail1.channels.ch1.type = memory

tail1.channels.ch1.capacity = 500

tail1.sinks.sink1.type = avro

tail1.sinks.sink1.hostname =

localhost

tail1.sinks.sink1.port = 6000

tail1.sinks.sink1.batch­size = 1

tail1.sinks.sink1.channel = ch1

(22)

##

collector1.sources = src1

collector1.channels = ch1

collector1.sinks = sink1

collector1.sources.src1.type = avro

collector1.sources.src1.bind =

localhost

collector1.sources.src1.port = 6000

collector1.sources.src1.channels =

ch1

collector1.channels.ch1.type =

memory

collector1.channels.ch1.capacity =

500

collector1.sinks.sink1.type = hdfs

collector1.sinks.sink1.hdfs.path =

(23)

flume/collector1

collector1.sinks.sink1.hdfs.filePrefix

= access_log

collector1.sinks.sink1.channel =

ch1

 

 

 

 

 

Flume

 

Startar o flume sudo service flume­ng­agent start sudo hadoop fs ­ls flume/collector1

 

 

 

 

Scoop

 

Instalando Scoop sudo apt­get install scoop Criar um link simbolico para o jdbc que o scoop ira' utilizar.

(24)

sudo ln ­s /usr/share/java/mysql­connector­java.jar /usr/lib/sqoop/lib/ Scoop importa/exporta dados de um banco de dados relacional. Utiliza de um JDBC para se conectar a uma base de dados. sqoop import ­­connect jdbc:mysql://localhost/movielens ­­table movie ­­fields­terminated­by '\t' ­­username training ­­password training    

 

 

 

 

MapReduce

 

cat /my/log | grep '\.html' | sort | uniq –c >

/my/outfile

    1­ mapeamento 2­ordenacao 3­reduce    

 

 

 

 

MapReduce

 

exemplo contador de palavras 1­entrada the cat sat on the mat the aardvark sat on the sofa

(25)

2­dados intermediarios (the, 1), (cat, 1), (sat, 1), (on, 1), (the, 1), (mat, 1), (the, 1), (aardvark, 1), (sat, 1), (on, 1), (the, 1), (sofa, 1)        

 

 

 

 

MapReduce

 

3­entrada no reducer (aardvark, [1]) (cat, [1]) (mat, [1]) (on, [1, 1]) (sat, [1, 1]) (sofa, [1]) (the, [1, 1, 1, 1])            

 

 

 

 

MapReduce

 

(26)

4­saida do reducer (aardvark, 1) (cat, 1) (mat, 1) (on, 2) (sat, 2) (sofa, 1) (the, 4) sudo hadoop jar seujar.java /diterotrio/hdfs/entrada /diterotrio/hdfs/saida

 

 

 

 

Hive

 

Criado pelo facebook. Hive foi criado para aproveitar o conhecimento previo em Sql. Suporta somente instrucoes de select, não realiza updates nem deletes. Transforma uma hiveQuery em um job MapReduce. Para o Hive Hive uma pasta no hdfs e' vista como uma tabela. Com o Hive e' possível unir diferentes bases. Os arquivos dentro da pasta em questao serao os dados da tabela. Intalando o hive sudo apt­get install hive­metastore sudo service hive­metastore start shell hive hive

 

 

 

 

Impala

 

Projeto apache.O impala utiliza

(27)

hiveQuery, é cerca de 20 X mais

rápido que o hive.

O impala não utiliza jobs

mapreduce.

 

instalar o impala

instalar o server em todos os datas

nodes:

sudo yum install impala­server

sudo service impala­server start

 

instalar o impala meta­store em

uma máquina:

sudo apt­get install impala­state­

store

sudo service impala­state­store

start

(28)

 

Instalar o shel do impala em uma

ou mais ma'quinas:

sudo yum install impala­shell

impala­shell

 

 

 

 

PIG

 

Criado pelo yahoo. Abstracao em

alto nivel de MapReduce.

Linguagem similar ao Perl e Ruby.

Maior facilidade para se criar

MapReduces.

Instalando o Pig

sudo install pig

Exemplo de codigo pig

(29)

 

movies = LOAD '/data/films' AS

(id:int, name:string, year:int);

ratings = LOAD '/data/ratings' AS

(movie_id: int, user_id: int,

score:int);

jnd = JOIN movies BY id, ratings

BY movie_id;

recent = FILTER jnd BY year >

1995;

srtd = ORDER recent BY name

DESC;

justafew = LIMIT srtd 50;

STORE justafew INTO

'/data/pigoutput';

 

para rodar um script pig

(30)

pig ­f seuScript.pig

 

 

 

 

 

Solr

 

Base de dados totalmente customizável, ferrammenta especializada, faz melhor o trabalho para buscas textuais. Performance melhor. Solr entende diferentes línguas. Solr tem funcoes especiais para buscas de texto ex. Highlighting. Busca com relevancia. Busca geoespacial.

 

 

 

 

 

Redis

 

Base de dados que trabalha como hash Consulta rapida aguenta muitas requisicoes. Excelente para implementar contadores e filas.

 

(31)

 

 

 

 

Temas relacionados

 

Ozzie Yarn Hue Presto Mahout

 

 

 

 

 

     

 

Ciclo de vida dos dados

 

geração

 

agregação

 

análise

 

apagamento        

Referências

Documentos relacionados

Assim o fez a Corte, editando emendas ao regimento interno e regulando os procedimentos relacionados à tramitação dos recursos de sua competência (extraordinários

O Hadoop oferece como ferramentas principais o MapReduce, responsável pelo processamento distribuído, e o Hadoop Distributed File System (HDFS), para armazenamento de

A disciplina irá analisar as tecnologias recentes para a distribuição de dados e o armazenamento em sistemas de arquivos distribuídos como o HDFS ("hadoop file

 Considerando indagações já elencadas como pesquisa, debate e experimentação para a formação, busca-se definir e trilhar caminhos instrumentais e teóricos para que o

FIGURA 1: Relação entre número de ocorrências de espécies de aves e horas de observação em cinco fragmentos de mata na Usina São José, Igarassu (Pernambuco), entre julho de 2005

Diante disto, o presente trabalho teve como objetivo avaliar o conhecimento de farmacêuticos e atendentes farmacistas sobre as siglas de liberação modificada no município

Pelas armadilhas de queda foram registrados cinco indivíduos, totalizando quatro espécies; para o percurso em transecto foram registrados 19 indivíduos representados

Austrália Duplamente cego Randomizado (desenho factorial) estratificado consoante P.aeruginosa Adultos Azitromicina (250 mg id) e/ou Soro hipertónico 7% 26 130 Qualidade