View
130
Download
0
Category
Preview:
Citation preview
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
Recommended