uma visão sobre fast-data: spark, voltdb e elasticsearcherbd2018.c3.furg.br/downloads/erbd.pdf ·...

86
Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearch Luiz Henrique Zambom Santana

Upload: others

Post on 30-May-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Uma visão sobre Fast-Data:Spark, VoltDB e Elasticsearch

Luiz Henrique Zambom Santana

Page 2: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Agenda● Introdução● Processamento: Apache Spark● Armazenamento: VoltDB● Analytics: Elasticsearch● Conclusões

2

Page 3: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

IntroduçãoLuiz Henrique Zambom Santana

Parte 1

Page 4: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Big Data

4

Page 5: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Tempo real

5

Page 6: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

6

Page 7: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Não custa lembrar...

7

Page 8: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

No início era o Apache Hadoop

8

Page 9: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

...e o map/reduce...

9

Page 10: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

O que é mais importante?

10

Page 11: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Latência ou Vazão?

11

Page 12: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Arquitetura Fast DataLuiz Henrique Zambom Santana

Parte 2

Page 13: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Arquitetura Lambda

13

Page 14: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Not only SQLSadalage e Fowler, 2012(http://martinfowler.com/books/nosql.html)

Relational databases will be a footnote in history

Nathan Marz, 2014 (http://www.slideshare.net/nathanmarz/runaway-complexity-in-big-data-and-a-plan-to-stop-it)

Armazenamento

14

Page 15: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

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

Armazenamento

15

Page 16: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Processamento

Matei Zaharia

16

Page 17: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Analytics

Shay Banon

17

Page 18: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

O problema que vamos tratar...

18

Page 19: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

19

Page 20: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

https://github.com/lhzsantana/fastdata

20

Page 21: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Processadores:Apache Spark

Luiz Henrique Zambom SantanaParte 2

Page 22: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Agenda - Processadores: Apache Spark● Frameworks para processamento de Big Data● Arquitetura do Apache Spark● Funcionamento do cluster● Fluxo de processamento

○ Directed Acyclic Graph (DAG)○ Resilient Distributed Dataset (RDD)○ Evolução do RDD

● Exercícios

22

Page 23: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Frameworks para processamento de Big Data● Streaming

○ Apache Spark, Apache Storm

● Filas○ Apache Kafka, RabbitMQ

● Gestão de Clusters○ Apache Mesos, Apache Zookeeper

● Aprendizado de Máquina○ Apache Spark, Apache Mahout, IBM Watson, TensorFlow

● Estatística○ Apache Spark

● Gestão de Memória○ Apache Spark, Apache Ignite

23

Page 24: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Arquitetura do Apache Spark

24

Page 25: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Funcionamento do cluster

25

Page 26: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Funcionamento do cluster

26

Page 27: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Fluxo de processamento

27

Page 28: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Directed Acyclic Graph (DAG)

28

Page 29: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Resilient Distributed Dataset (RDD)

29

Page 30: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Evolução do RDD

30

Page 31: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Spark Streaming

31

Page 32: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

SparkML

32

Page 33: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Apache Bahir

33

Page 34: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Apache Kafka

34

Page 35: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Apache Ignite

35

Page 36: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Exercícios1. Classificar os Tweets de POA

--------------------- Lição de casa :) ---------------------

2. Receber em modo Streaming os dados do Twitter e filtrar pela latitude e longitude de POA

3. Criar uma fila de processamento para adicionar os Tweets coletados no exercício do Spark para contar as palavras mais comuns nesses Tweets

4. Usando como base o código de streaming do Twitter, fazer um streaming direto do Cassandraa. https://github.com/datastax/spark-cassandra-connector/blob/master/doc/8_streaming.md

5. Configurar o Ignite para armazenar os Twitters e usar a API SQL do Ignite para consultar esses Twitters 36

Page 37: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Bancos de Dados:VoltDB

Luiz Henrique Zambom SantanaParte 3

Page 38: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Agenda - Banco de Dados: VoltDB● Problemas com SQL● NewSQL● VoltDB● Como o VoltDB entrega o que promete?● Exercício

38

Page 39: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Problema SQL: múltiplos gargalos

39

Page 40: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

NewSQL: comparação

40

Page 41: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

NewSQL: definições● Definições

○ SQL como interface principal○ Suporte a transações ACID○ Sem lock no controle de concorrência○ Alto desempenho○ Arquitetura escalável (share nothing)

● In-memory○ Alta ○ Baixa latência○ Sem gerenciamento de bugger○ Sem locks e latches

● HBase, Clustrix, NuoDB e VoltDB

41

Page 42: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Share nothing

42

Page 43: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

NewSQL: como?● Particionamento

○ Sharding

● Controle de concorrência por agendamento ou multi-versões● Indexação● Replicação

43

Page 44: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

NoSQL vs. NewSQL: produtos

44

Page 45: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Mercado NewSQL

45

Page 46: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

HStore

46

Page 47: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

VoltDB

● Evolução do C-Store e H-Store○ http://hstore.cs.brown.edu/documentation/faq/

● Visão:○ VoltDB relies on horizontal partitioning

down to the individual hardware thread to scale, k-safety (synchronous replication) to provide high availability, and a combination of continuous snapshots and command logging for durability (crash recovery)

47

Page 48: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

K-safety

48

● A segurança K é uma medida de quantas cópias dos dados existem no cluster

Page 49: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

VoltDB: console

49

Page 50: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

VoltDB

50

Page 51: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

VoltDB: arquitetura

51

Page 52: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

VoltDB: integrações

52

Page 53: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Command logging

53

Page 54: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Recuperação de desastre

54

Page 55: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

55

Page 56: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

56

Page 57: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Comandos VoltDB● ./voltdb init

● ./voltdb start

● ./sqlcmd

● CREATE TABLE users (id INTEGER UNIQUE NOT NULL, username VARCHAR(15), city VARCHAR(15));

● CREATE TABLE tweets (id INTEGER UNIQUE NOT NULL, body VARCHAR(150), userId INTEGER);

● insert into users values (1,'lhzsantana','floripa');

● insert into tweets values (1,'sol em floripa', 1);

● select * from users;

● select * from users u inner join tweets t on u.id=t.userId;

● drop table users;

● CREATE INDEX name_idx ON users (name);

● PARTITION TABLE users ON COLUMN city;

● show tables;

57

Page 58: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Instalação do VoltDB

Referência: https://www.voltdb.com/try-voltdb/download-enterprise/

58

Page 59: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Exercícios1. Salvar os dados de streaming e os dados do DataPoa no VoltDB

--------------------- Lição de casa :) ---------------------

2. Consultar os usuários que mais postam no Twitter

59

Page 60: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Visualização e analytics: Elasticsearch

Luiz Henrique Zambom SantanaParte 4

Page 61: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Agenda - Visualização e analytics: Elasticsearch● Elasticsearch?

61

Page 62: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Elasticsearch?

• Tempo real

• Flexível

• Livre de esquema e muito escalável

• Iniciado por Shay Banon em 2010

• Desenvolvido pela comunidade

• Código aberto em:• https://github.com/elastic/elasticsearch

• Atualmente apoiado pela Elastic

62

Page 63: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Onde é usado?

Mais casos de uso em: https://www.elastic.co/use-cases 63

Page 64: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Visão geral

• Cluster

• Lucene

• Índice

• Mapeamento

• Tipo Lucene Banco de dados relacional (BDR)

Índice (Index) Esquema

Type Tabela

Documento (JSON) Linha

Campo (Field) Coluna

Mapeamento (Mapping) Estrutura da tabela

Query DSL SQL 64

Page 65: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Arquitetura - Indexação

Client API ElasticsearchUsuários

Usuários

65

Page 66: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Arquitetura - Busca

Client API ElasticsearchUsuários

Usuários

66

Page 67: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Arquitetura - Autocomplete (“search as you type”)

Client API ElasticsearchUsuários

Usuários

67

Page 68: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Cliente API ElasticsearchUsuários

Usuários

68

Page 69: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Arquitetura - Indexação em lote

ElasticsearchAPI69

Page 70: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Desenvolvimento com o Elasticsearch - Pontos importantes

● Gerenciamento dos dados○ Backup do Elasticsearch?

■ Geralmente o Elasticsearch é usado como um repositório volátil■ Backup:

● https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html

■ Segurança: ● https://www.elastic.co/products/shield

● Mapeamento

70

Page 71: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Desenvolvimento com o Elasticsearch - Instalação

• Simplesmente baixar e desempacotar• Elasticsearch e Kibana

• https://www.elastic.co/downloads/elasticsearch• https://www.elastic.co/downloads/kibana

• Iniciar:• /bin/elasticsearch• /bin/kibana

• Em produção não é tão simples:• http://logz.io/blog/deploy-elk-production/

71

Page 72: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Verificar se está funcionando (localhost:9200)

72

Page 73: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Kibana Dev Tools

73

Page 74: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Criar índice e mapeamento no Elasticsearch• Exemplo simples “Tweet” e “Comentário”• Criar um índice seria tão simples como:

• PUT erdb

• O mapeamento no Elasticsearch é flat• O Elasticsearch está configurado para buscar palavras em Inglês

• Usar um analisador para português• GIST:

• https://gist.github.com/lhzsantana/4f940684075ce115d799

74

Page 75: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Indexar alguns documentosPOST erbd/tweet/1

{

"author":"Luiz",

"text":"Tá muito sol para falar de Elasticsearch",

"hashtag":"#queriatánapraia"

}

POST tweet/post

{

"author":"Luiz",

"text":"Esse post não tem ID",

"hashtag":"#seráqfunciona"

}

75

Page 76: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Indexar alguns documentosPOST erbd/tweet/1

{

"author":"Luiz",

"text":"Elasticsearch é mais legal que praia",

"hashtag":"#sqn"

}

POST erbd/tweet

{

"author":"Luiz",

"text":"O mapeamento do Elasticsearch é flexível",

"local":"Florianópolis",

"hashtag":"#schemaless"

}

76

Page 77: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Indexar alguns documentos

POST erbd/comments/1

{

"author":"Anônimo",

"text": "Até agora não vi nada de Spark",

"hashtag":"#taenrolando"

}

POST erbd/comment/1?parent=1

{

"author":"Anônimo",

"text": "Jurerê ou PHP?",

"hashtag":"#queriatánapraia"

}

77

Page 78: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Como ficou o mapeamento?

• GET erbd/_mapping• Mapping com o nome errado “comments”• O campo “local” não tem analisador

https://gist.github.com/lhzsantana/b72dd13f339ff29b4682

78

Page 79: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Mapeamento com Geo Point

PUT erbd

{

"mappings": {

"crash": {

"properties": {

"location": {

"type": "geo_point"

}

}

}

}

}

79

Page 80: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Busca

GET /_search

{

"query": {

"match_all": {}

}

}

GET /erbd/_search

{

"query": {

"match_all": {}

}

}

GET /erbd/tweet/_search

{

"query": {

"match_all": {}

}

}

GET /erbd/tweet,comment/_search

{

"query": {

"match_all": {}

}

}

GET /erbd, sbbd/_search

{

"query": {

"match_all": {}

}

}

GET /erbd,sbbd/tweet,comment/

_search

{

"query": {

"match_all": {}

}}80

Page 81: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Busca

GET /_search

{

"query": {

"match": {

"author": "luiz"

}

}

}

81

Page 82: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Busca

GET /_search

{

"query": {

"match": {

"local": "florianopolis"

}

}

}

82

Page 83: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Busca - bool, boost e agregações

GET /erbd/tweet,comment

/_search

{

"sort": [

{

"author": {

"order": "desc"

}

}

],

"size": 100,

"query": {

"bool": {

"should": [{

"match": {

"author": "anônimo"

}}, {

"match": {

"local": "Florianópolis"

}

}

]

} ,

"aggs" : {

"hashtags" : {

"terms" : { "field" : "author.raw" }

}

}

https://gist.github.com/lhzsantana/f552751d66a153741657

83

Page 84: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Busca - bool, boost e agregações

{

"took": 88,

"timed_out": false,

"_shards": {

"total": 5,

"successful": 5,

"failed": 0

},

"hits": {

"total": 2,

"max_score": null,

"hits": [{

"_index": "phpsc",

"_type": "post",

"_id": "AVLauzKDtyulCxogNOoi",

"_score": null,

"_source": {

"author": "Luiz",

"text": "O mapeamento do Elasticsearch é flexível",

"local": "Florianópolis",

"hashtag": "#schemaless"

},

"aggregations": {

"hashtags": {

"doc_count_error_upper_bound": 0,

"sum_other_doc_count": 0,

"buckets": [

{

"key": "anônimo",

"doc_count": 1

},

{

"key": "luiz",

"doc_count": 1

}

]

}

}

}

84

Page 85: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Exercícios1. Enviar dados do Twitter e do DataPOA para o Elasticsearch2. Buscar palavras nos dados

--------------------- Lição de casa :) ---------------------

3. Fazer gráfico de calor4. Fazer gráfico de barras

85

Page 86: Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearcherbd2018.c3.furg.br/downloads/ERBD.pdf · Frameworks para processamento de Big Data Streaming Apache Spark, Apache Storm Filas

Conclusões