Escolar Documentos
Profissional Documentos
Cultura Documentos
Tolerância a falhas (replicação dos dados em diferentes nodes). Distribuição dos dados no momento do
armazenamento.
MapReduce é acíclico. Bom
Trazer a computação para onde o dado está armazenado (Map Reduce). para gerenciamento de falhas,
mas ruim reuso de dados
(processos iterativos).
Spark leva isto a outro patamar.
Fonte: http://pt.slideshare.net/dhiguero/adios-hadoop-hola-spark-t3chfestdhiguero
Apache Spark
Spark é uma engine rápida, escrita em Scala, para processamento de grandes volumes de
dados em um cluster de computadores.
Arquitetura Lambda.
RDDs são criados por meio de arquivos, de dados na memória ou de outras RDDs.
Resilient Distributed Datasets
2 tipos de operações, de transformação ou de ação.
RDD: data_up
Resilient Distributed Datasets
Lazy Evaluation: Nada é processado até uma operação de ação. File: test.txt
Eu gosto de hadoop.
Eu também gosto de Spark.
Mllib é ótimo, mas
> data = sc.textfile(“test.txt”)
eu acho que precisa de mais algoritmos.
RDD: data
> data_up = data.map(lambda line: line.upper())
RDD: data_up
RDD: data_filtr
Resilient Distributed Datasets
Lazy Evaluation: Nada é processado até uma operação de ação. File: test.txt
Eu gosto de hadoop.
Eu também gosto de Spark.
Mllib é ótimo, mas
> data = sc.textfile(“test.txt”)
eu acho que precisa de mais algoritmos.
RDD: data
> data_up = data.map(lambda line: line.upper()) Eu gosto de hadoop.
Eu também gosto de Spark.
> data_filtr = data_up.filter(lambda line: line.startswith(“E”)) Mllib é ótimo, mas
eu acho que precisa de mais algoritmos.
> data_filtr.count() RDD: data_up
EU GOSTO DE HADOOP.
EU TAMBÉM GOSTO DE SPARK.
3 MLLIB É ÓTIMO, MAS
EU ACHO QUE PRECISA DE MAIS ALGORITMOS.
RDD: data_filtr
EU GOSTO DE HADOOP.
EU TAMBÉM GOSTO DE SPARK.
EU ACHO QUE PRECISA DE MAIS ALGORITMOS.
Resilient Distributed Datasets
Caching. File: test.txt
Eu gosto de hadoop.
Eu também gosto de Spark.
Mllib é ótimo, mas
>
eu acho que precisa de mais algoritmos.
Resilient Distributed Datasets
Caching. File: test.txt
Eu gosto de hadoop.
Eu também gosto de Spark.
Mllib é ótimo, mas
> data = sc.textfile(“test.txt”)
eu acho que precisa de mais algoritmos.
RDD: data
Resilient Distributed Datasets
Caching. File: test.txt
Eu gosto de hadoop.
Eu também gosto de Spark.
Mllib é ótimo, mas
> data = sc.textfile(“test.txt”)
eu acho que precisa de mais algoritmos.
RDD: data
> data_up = data.map(lambda line: line.upper())
RDD: data_up
Resilient Distributed Datasets
Caching. File: test.txt
Eu gosto de hadoop.
Eu também gosto de Spark.
Mllib é ótimo, mas
> data = sc.textfile(“test.txt”)
eu acho que precisa de mais algoritmos.
RDD: data
> data_up = data.map(lambda line: line.upper())
> data_up.cache
RDD: data_up
Resilient Distributed Datasets
Caching. File: test.txt
Eu gosto de hadoop.
Eu também gosto de Spark.
Mllib é ótimo, mas
> data = sc.textfile(“test.txt”)
eu acho que precisa de mais algoritmos.
RDD: data
> data_up = data.map(lambda line: line.upper())
> data_up.cache
RDD: data_filtr
Resilient Distributed Datasets
Caching. File: test.txt
Eu gosto de hadoop.
Eu também gosto de Spark.
Mllib é ótimo, mas
> data = sc.textfile(“test.txt”)
eu acho que precisa de mais algoritmos.
RDD: data
> data_up = data.map(lambda line: line.upper()) Eu gosto de hadoop.
Eu também gosto de Spark.
> data_up.cache Mllib é ótimo, mas
eu acho que precisa de mais algoritmos.
> data_filtr = data_up.filter(lambda line: line.startswith(“E”)) RDD: data_up
EU GOSTO DE HADOOP.
EU TAMBÉM GOSTO DE SPARK.
> data_filtr.count() MLLIB É ÓTIMO, MAS
3 EU ACHO QUE PRECISA DE MAIS ALGORITMOS.
RDD: data_filtr
EU GOSTO DE HADOOP.
EU TAMBÉM GOSTO DE SPARK.
EU ACHO QUE PRECISA DE MAIS ALGORITMOS.
Resilient Distributed Datasets
Caching. File: test.txt
Eu gosto de hadoop.
Eu também gosto de Spark.
Mllib é ótimo, mas
> data = sc.textfile(“test.txt”)
eu acho que precisa de mais algoritmos.
RDD: data
> data_up1 = data.map(lambda line: line.upper())
> data_up1.cache
> data_up1.cache
SHUFFLE
JOB
Como o Spark calcula as Stages?
Spark constrói uma grafo acíclico direcionado (DAG) das dependências entre as RDDs.
Operações Narrow
• Apenas um filho depende do RDD.
• Shuffle não é necessário entre os nós.
• Colapsada em um estágio único.
• Ex: map, filter, union.
Operações Wide
• Múltiplos filhos dependem do mesmo RDD.
• Define um novo stage.
• Ex: reduceByKey, join,groupByKey
Como o Spark calcula as Stages?
Spark constrói uma grafo acíclico direcionado (DAG) das dependências entre as RDDs.
HDFS – Block1
STAGE 1
Operações Narrow TASK 1
• Apenas um filho depende do RDD. TASK 2
• Shuffle não é necessário entre os nós.
• Colapsada em um estágio único. TASK 3 HDFS – Block2
• Ex: map, filter, union.