processamento em big data

Post on 13-Feb-2017

130 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Processamento em Big Data

Luiz Henrique Zambom Santana

24/08/2016

Agenda● Introdução● Map/Reduce e Hadoop● Arquitetura Lambda● Filas com Apache Kafka● Memória compartilhada com Apache Ignite● Streaming com Apache Spark● Exercícios● Conclusões

Motivação

Não custa lembrar...

No início era o map/reduce...

...e o Apache Hadoop...

Latência vs. Vazão

O que é mais importante?

Arquitetura Lambda (Nathan Marz)

Arquitetura Kappa (Jay Kreps)

Arquitetura do Exercício

Twitter Spark streamming

1

Master Database(Cassandra)

Kafka queue2

2

Ignite SQL3

https://github.com/lhzsantana/neoway-processing

Apache Kafka● Criado pelo LinkedIn no começo de 2011● Liderado atualmente pela http://www.confluent.io/● http://www.slideshare.net/GuozhangWang/apache-kafka-at-linkedin-43307044

Apache Kafka

Apache Kafka

Apache Kafka1. Download Kafka2. Start zookeeper

a. zookeeper-server-start.bat zookeeper.properties

3. Start kafkaa. kafka-server-start.bat server.properties

Apache Kafka● Exercício

○ Usando o exemplo, criar um código para enfilerar objetos produto no tópico MeusProdutos e objetos vendas no tópico MinhasVendas.

● Desafio○ Ler dados do Cassandra, enfilerar e enviar para o MongoDB.

Apache Ignite● In-Memory Data Fabric● Compete/Coopera em várias frentes

DataGrid● JCache (JSR 107)● Vantagens:

○ Consistency○ Distributed In-Memory Caching○ Lightning Fast Performance○ Elastic Scalability

○ Distributed In-Memory Transactions

○ Web Session Clustering○ Hibernate L2 Cache Integration○ Tiered Off-Heap Storage

○ Distributed ANSI-99 SQL Queries with support for Joins

Apache Ignite com Spark

Apache Ignite como Streaming

IgniteSQL● Possui duas formas de

operação transactional e atomic

● Implementa SQL Ansi-99

De certa forma relacionado ao NewSQL...

SQL and NoSQL will merge “Not yet SQL”Michael Stonebraker, 2015https://www.youtube.com/watch?v=KRcecxdGxvQ

Apache Ignite● Exercício

○ Usando o exemplo, criar um código enviar o Produto e a Venda para o Ignite. Acessar os produtos com preço maior que 20 e as vendas com valor maior que 100.

○ Usar uma transação para atualizar o valor de produto em 10%.■ http://apacheignite.gridgain.org/v1.0/docs/transactions

● Desafio○ Acessar todas as vendas de um produto usando um Join:

http://apacheignite.gridgain.org/docs/sql-queries#sql-joins

Apache Spark● Iniciado no AMPLab● Tese do Dr. Matei Zaharia

“An Architecture for Fast and General Data Processing on Large Clusters”

Abstração de memória

Data Frames

Abstração de memória

Spark Streaming

Spark Streaming e o Spark Engine

Discretized Stream (DStream)

Transformações sobre DStreams

Apache Spark1. Download Spark2. Windows:

a. spark-class.cmd org.apache.spark.deploy.master.Master b. spark-class.cmd org.apache.spark.deploy.worker.Worker spark://192.168.99.1:7077

3. Linuxa. ./sbin/start-master.shb. ./sbin/start-slave.sh spark://192.168.99.1:7077

4. Colocar o Jar do projeto no Target5. Possível erro: org.apache.spark.rpc.netty.RequestMessage; local class

incompatible: stream classdesc

Apache Spark

Spark Context (cliente)

Apache Spark● Exercícios

○ Usando como base o código de streaming do Twitter, salvar as informações no Cassandra.

● Desafio○ Usar o conector para Kafka para receber os dados de Produtos e Vendas do exercício

anterior via s]treaming.

Conclusões● Existem muitas (muitas!) opções para processamento de dados em Big Data● Sugestões:

○ Apache Parquet○ Apache Mesos○ MLLib

Outros frameworks de Big Data● Streaming

○ Storm

● Filas○ Flume

● Multi-NoSQL○ Apache Drill

● Gerenciador de Hadoop○ Apache Falcon○ Apache Flink○ Apache Apex

● Exploração e Visualização○ Apache Zepellin

Referências● Hadoop

○ http://www.cloudera.com/developers/get-started-with-hadoop-tutorial.html

● Spark○ https://www.mapr.com/blog/spark-streaming-and-twitter-sentiment-analysis

○ https://databricks.gitbooks.io/databricks-spark-reference-applications/content/twitter_classifier/collect.html

● Arquitetura Lambda○ http://www.devmedia.com.br/conheca-a-arquitetura-lambda-em-java/32646

Referências● Mesos

○ https://abhishek-tiwari.com/post/building-distributed-systems-with-mesos

● Kafka○ https://www.mapr.com/blog/getting-started-sample-programs-apache-kafka-09

Referências● Parquet

○ http://www.infoworld.com/article/2915565/big-data/apache-parquet-paves-the-way-towards-better-hadoop-data-storage.html

top related