Big Data

Propaganda
Marcos Haraoka Morais
[email protected]
Big Data
© 2015 IBM Corporation
Agenda
 Big Data
 Hadoop
 HDFS
 YARN
 MapReduce
 Spark
 Spark SQL
 Spark Streaming
 GraphX
 MLlib (SystemML)
 SparkR
2
© 2015 IBM Corporation
Big Data
• Recomendações
• “House of Cards”
• Estratégia de negócio
3
© 2015 IBM Corporation
Big Data
• Recomendações
• Logística
4
© 2015 IBM Corporation
Big Data
• Ferramentas “grátis”
5
© 2015 IBM Corporation
Big Data
“Vou xingar no Twitter hoje, muito”
by fã do Restart
6
© 2015 IBM Corporation
Big Data – Os 3 V’s
 Variedade, Volume, Velocidade
 Fatos
 A cada dois dias criamos a mesma quantidade de dados que
criamos desde o início até 2003
 Mais de 80% dos dados não são estruturados
7
© 2015 IBM Corporation
Big Data
RDBMS
8
© 2015 IBM Corporation
Big Data
A
A
A
9
© 2015 IBM Corporation
Big Data
A
A
A
A
A
A
A
A
A
10
© 2015 IBM Corporation
O que é Hadoop?
 Projeto de software open-source que permite processamento
distribuído de grande conjuntos de dados.
 Componentes principais:
 HDFS (Hadoop Distributed File System)
 YARN (Yet Another Resource Negotiator)
 MapReduce
 Outros projetos Apache:
 Hive (SQL)
 Storm (Streaming)
 Mahout (Machine Learning)
 Giraph (Grafos)
11
© 2015 IBM Corporation
MapReduce
 Modelo de programação que permite o processamento de dados
massivos em um algoritmo paralelo e distribuído em um cluster de
computadores
 Divisão e conquista
 3 fases
 Map
 Suffle
 Reduce
12
© 2015 IBM Corporation
MapReduce - MAP
13
© 2015 IBM Corporation
MapReduce - MAP
São Paulo 20
Goiania
31
Curitiba
8
Natal
35
MAP
Goiania
27
Natal
20
São Paulo 13
São Paulo
Goiania
Curitiba
Natal
MAP
Goiania
Natal
São Paulo
14
22
32
6
25
28
24
14
São Paulo 24
Goiania
33
Curitiba
10
Natal
36
MAP
Goiania
29
Natal
28
São Paulo 15
São Paulo 26
Goiania
34
Curitiba
4
Natal
37
MAP 30
Goiania
Natal
40
São Paulo 17
São Paulo
Goiania
Curitiba
Natal
MAP
Goiania
Natal
São Paulo
28
35
12
26
32
32
16
© 2015 IBM Corporation
MapReduce - MAP
MAP
15
São Paulo 26
Goiania
34
Curitiba
4
Natal
40
São Paulo
Goiania
Curitiba
Natal
Goiania
Natal
São Paulo
26
34
4
37
30
40
17
© 2015 IBM Corporation
MapReduce – SHUFFLE/SORT
São Paulo 20
Goiania
31
Curitiba
8
Natal
35
São Paulo 22
Goiania
32
Curitiba
6
Natal
25
16
São Paulo
Goiania
Curitiba
Natal
24
33
10
36
São Paulo 26
Goiania
34
Curitiba
4
Natal
40
São Paulo
Goiania
Curitiba
Natal
28
35
12
32
© 2015 IBM Corporation
MapReduce - REDUCE
São Paulo
São Paulo
São Paulo
São Paulo
São Paulo
Goiania
Goiania
Goiania
Goiania
Goiania
17
32
31
33
34
35
20
24
22
28
26
Curitiba
Curitiba
Curitiba
Curitiba
Curitiba
Natal
Natal
Natal
Natal
Natal
6
8
4
10
12
25
35
36
32
40
R
E
D
U
C
E
R
© 2015 IBM Corporation
MapReduce - REDUCE
R
E
Paulo
D
ba
nia U
C
E
R
18
28
12
35
40
R
E
D
U
C
E
R
© 2015 IBM Corporation
Vantagens do Hadoop
• Múltiplas fontes de dados
Escala ilimitada
• Múltiplas aplicações
• Múltiplos usuários
• Confiabilidade
• Resiliência
Plataforma Empresarial
• Segurança
Vasta gama de formato de
dados
19
• Arquivos
• Semi-estruturados
• Banco de dados
© 2015 IBM Corporation
Desafios do Hadoop MapReduce
• Profundo conhecimento Java
• Poucas abstrações
disponíveis para analistas
Facilidade no
desenvolvimento
• Sem framewok In-memory
Performance In-memory
• Adequado apenas para
tarefas em batch
• Modelo de processamento
rígido
20
• Tarefas de aplicativo são
escritas no disco a cada ciclo
Combina fluxos de
trabalho
© 2015 IBM Corporation
O que é Spark?
 Apache Spark é um sistema de computação em cluster rápido, de
propósito geral e de fácil utilização para processamento de dados em
larga escala
 Mais rápido do que o MapReduce
 Três formas de funcionamento:
• Standalone
• Em conjunto com o Hadoop
• Cloud
 Projeto mais ativo na comunidade
Apache
21
© 2015 IBM Corporation
Vantagens do Spark
• APIs simples
• Python, Scala, Java
Performance In-memory
• Batch
• Interativo
• Algoritmos iterativos
• Micro-batch
22
Facilidade no
desenvolvimento
• Resilient Distributed Datasets
• Processamento unificado
Fluxos de trabalho
combinados
© 2015 IBM Corporation
Facilidade no desenvolvimento
Código Java MapReduce:
public class LineLengthMapper
extends Mapper<LongWritable,Text,IntWritable,IntWritable> {
@Override
protected void map(LongWritable lineNumber, Text line, Context context)
throws IOException, InterruptedException {
context.write(new IntWritable(line.getLength()), new IntWritable(1));
}
}
public class LineLengthReducer
extends Reducer<IntWritable,IntWritable,IntWritable,IntWritable> {
@Override
protected void reduce(IntWritable length, Iterable<IntWritable> counts,Context context)
throws IOException, InterruptedException {
int sum = 0;
for (IntWritable count : counts) {
sum += count.get();
}
context.write(length, new IntWritable(sum));
}
}
23
© 2015 IBM Corporation
Facilidade no desenvolvimento
Código Scala Spark:
lines.map(line => (line.length, 1))
val lengthCounts = lines.map(line => (line.length, 1)).reduceByKey(_ + _)
24
© 2015 IBM Corporation
Vantagens do Spark
• APIs simples
• Python, Scala, Java
Performance In-memory
• Batch
• Interativo
• Algoritmos iterativos
• Micro-batch
25
Facilidade no
desenvolvimento
• Resilient Distributed Datasets
• Processamento unificado
Fluxos de trabalho
combinados
© 2015 IBM Corporation
Performance In-memory
Resilient Distributed Dataset (RDD)
RDD
Transformations
textfile
map
26
reduce
HDFS
HDFS
map
Actions
reduce
© 2015 IBM Corporation
Performance In-memory
Hadoop
Spark
Quantidade de dados
102.5 TB
100 TB
Tempo
72 mins
23 mins
3.1 X <
# Nós
2100
206
10.2 X <
# Cores
50400
6592
7.6 X <
# Reducers
10,000
29,000
2.9 X >
1.42 TB/min
4.27 TB/min
3.0 X >
0.67 GB/min
Data center dedicado
20.7 GB/min
Cloud
30.9 X >
On-prem/Cloud
Taxa
Taxa/nó
Ambiente
Comparação
Daytona GraySort contest 2014
27
© 2015 IBM Corporation
Vantagens do Spark
• APIs simples
• Python, Scala, Java
Performance In-memory
• Batch
• Interativo
• Algoritmos iterativos
• Micro-batch
28
Facilidade no
desenvolvimento
• Resilient Distributed Datasets
• Processamento unificado
Fluxos de trabalho
combinados
© 2015 IBM Corporation
Fluxos de trabalho combinados - Bibliotecas Spark
Interativa (SQL)
Grafos (relacionamento)
Machine Learning
Tempo real
Spark SQL
Spark
Streaming
Estatística
GraphX
MLlib
SparkR
Apache Spark
29
© 2015 IBM Corporation
Flexibilidade do Spark sobre uma plataforma Hadoop estável
30
Escala ilimitada
Facilidade no
desenvolvimento
Performance In-memory
Plataforma Empresarial
Vasta gama de formato de
dados
Fluxos de trabalho
combinados
© 2015 IBM Corporation
Casos de Uso
Utilizado para o entendimento dos tipos de
produto que seus usuários estão vendendo
com o objetivo de selecionar lojas para uma
possível parceria de negócio. Optou pelo
Spark após seu data warehouse ter problemas
de time out rodando consultas na base.
Utilizado para a criação de um mapa de calor
para visualização de dados importantes como
a velocidade média dos taxis, onde os piores
congestionamentos acontecem em NY,
auxiliando na melhoria do tráfego nessas
áreas problemáticas e aumentando a
eficiência das companhias de taxi
31
© 2015 IBM Corporation
Casos de Uso
Ajudando na personalização das páginas do
domínio Yahoo!, mostrando o que mais
interessa ao usuário, baseado em seus
hábitos.
Utiliza o Spark no sistema de recomendações
para os usuários oferecendo conselhos
obtidos do processamento de milhões de
reviews de viajantes
Utiliza o Spark Streaming para selecionar e
otimizar dinamicamente as fontes, enquanto o
vídeo está sendo reproduzido, para maximizar
a qualidade.
32
© 2015 IBM Corporation
“Big Data will be standard: everyone will have it.”
Matei Zaharia, criador do Apache Spark
33
© 2015 IBM Corporation
Download