Big Data - Uma Introdução
-
Upload
thiago-rigo -
Category
Technology
-
view
96 -
download
0
Transcript of Big Data - Uma Introdução
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/
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?