big data - uma introdução

Post on 16-Jul-2015

95 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Big DataUma introdução

Thiago Rigo

Agenda

Big Bang dos Dados

Conceitos

Ecosistema

Casos de Uso

Demo

Big Bang dos Dados

http://www.visualnews.com/2012/06/19/how-much-data-created-every-minute/

http://awesome.good.is/transparency/web/1009/the-world-of-data/flat.html

“Desde o nascimento da civilização até 2003 criamos 5 Exabytes de informação, mas agora, essa mesma quantidade de informação é criada a cada 2 dias.”

Eric Schmidt, CEO Google, 2010

1 Exabyte = 1.000.000 TB

http://thehumanfaceofbigdata.com/pressroom/

Conceitos

Volume

Quantidade muito grande de dados

Bancos de dados tradicionais não atendem

Servidores high-end custam muito caro

Variedade

Dados de diversas fontes

Dados estruturados, semi-estruturados e não estruturados

Schemaless

Velocidade

Agilidade no processamento dos dados

Processamento de dados em tempo real

Rapidez na ingestão dos dados

Ecosistema

Hadoop - Historia

2002-04: Nutch

2004-06: GFS, MapReduce

2006-08: Yahoo!, Top-Level

Hadoop

“O Apache Hadoop é um framework que permite processamento distribuído de grandes volumes de dados, sendo desenhado para escalar de um servidor para milhares de máquinas…”

http://hadoop.apache.org/

Hadoop

Escalabilidade horizontal

Tolerancia a falha

Redundância

Paralelismo

Data locality

Hadoop - Arquitetura

http://www.rosebt.com/blog/hadooparchitecture-and-deployment

Hadoop - HDFS

https://developer.yahoo.com/hadoop/tutorial/module2.html

Hadoop - MapReduce

http://www.alex-hanna.com/tworkshops/lesson-5-hadoop-and-mapreduce/

Hadoop - MapReduce

public  void  map(LongWritable  key,  Text  value,  Context  context)          throws  IOException,  InterruptedException  {  

       String[]  words  =  value.toString().split("  ");  

       for  (String  word  :  words)  {              context.write(new  Text(word),  new  IntWritable(1));          }  }

Hadoop - MapReduce

public  void  reduce(Text  key,  Iterable<IntWritable>  values,  Context  context)          throws  IOException,  InterruptedException  {  

       int  sum  =  0;  

       for  (IntWritable  value  :  values)  {                  sum  +=  value.get();          }  

       context.write(key,  new  IntWritable(sum));  }  

Pig

“Apache Pig é uma plataforma para analisar grandes data sets que é composta por uma linguagem de alto nível para expressar programas de análise de dados e infraestrutura para executar esses programas.”

http://pig.apache.org/

Pig

Linguagem de alto nível

Suporte a UDFs

Operadores relacionais (Group, Join, Cross)

Modo local e interativo

PigA = LOAD ‘logs/2014/12‘ AS (f1:int,f2:int,f3:int);

DUMP A; (1,2,3) (4,2,1) (4,3,3)

B = GROUP A BY f1;

DUMP B; (1,{(1,2,3)}) (4,{(4,2,1),(4,3,3)})

X = FOREACH B GENERATE COUNT(A);

DUMP X; (1L) (2L)

Hive

“ O Apache Hive é um software de data warehouse que facilita realizar consultas e gerenciar grandes data sets que são armazenados de forma distribuída, provendo um mecanismo para estruturar e consultar esses dados usando uma linguagem parecida com SQL, chamada HiveQL.”

http://hive.apache.org/

Hive

Traduz SQL para MapReduce

Estrutura dados como tabelas

Suporte a UDFs

Não é OLTP

Hive

INSERT OVERWRITE TABLE pv_gender_sum SELECT pv_users.gender, count (DISTINCT pv_users.userid) FROM pv_users GROUP BY pv_users.gender;

Ecosistema

https://www.codecentric.de/schulungen-und-workshops/hadoop-essentials/

E muito mais!

https://amplab.cs.berkeley.edu/benchmark/

Casos de Uso

Casos de Uso

Análise de logs

Engines de recomendação

Processos ETL

Eleições presidenciais

Previsão de horário de pouso

Demo

Demo

Contar palavras no Hadoop

Dúvidas?

top related