1. COLETAR dados de acesso do servidor web usando Amazon Kinesis.
2. PROCESSAR os dados com Apache Spark no Amazon EMR, armazenando resultados no Amazon S3.
3. ANALISAR os dados no data warehouse Amazon Redshift usando consultas SQL.
2. Amazon S3
Amazon Kinesis
Amazon DynamoDB
Amazon RDS (Aurora)
AWS Lambda
KCL Apps
Amazon
EMR
Amazon
Redshift
Amazon Machine
Learning
Coletar Processar Analisar
Armazenar
Coleta de dados
e armazenamento
Processamento
de dados
Processamento
de eventos
Análise
de dados
Dados Respostas
Ecossistema de big data na AWS
8. Recursos
1. Interface da linha de comando da AWS (aws-cli) configurada
2. Fluxo do Amazon Kinesis com um único fragmento
3. Bucket do Amazon S3 para manter os arquivos
4. Cluster do Amazon EMR (dois nós) com Spark e Hive
5. Cluster de data warehouse do Amazon Redshift (nó único)
9. Amazon Kinesis
Criar um fluxo do Amazon Kinesis para manter os dados de
entrada:
aws kinesis create-stream
--stream-name AccessLogStream
--shard-count 1
13. Seu primeiro aplicativo de big data na AWS
1. COLETAR: Fluxo de dados para
o Kinesis com Log4J
2. PROCESSAR: Processar dados
com EMR usando Spark e Hive
3. ANALISAR: Analisar dados no
Redshift usando SQL
ARMAZENAR
SQL
16. Amazon Kinesis Log4J Appender
Arquivo de credenciais AwsCredentials.properties
com estas credenciais o usuário do IAM que tenha
permissão para acesso ao Amazon Kinesis:
accessKey=YOUR-IAM-ACCESS-KEY
secretKey=YOUR-SECRET-KEY
Então inicie o Amazon Kinesis Log4J Appender:
19. Spark
•Mecanismo rápido e básico para
processamento de dados em grande
escala
•Grave aplicativos rapidamente em
Java, Scala ou Python
•Combine SQL, streaming e análises
complexas.
20. Uso do Spark no EMR
SUA CHAVE SSH DA AWS NOME DO HOST DO EMR
Inicie o shell do Spark:
--jars /usr/lib/spark/extras/lib/spark-
streaming-kinesis-asl.jar,amazon-kinesis-client-
1.5.1.jar
21. Amazon Kinesis e streaming do Spark
Produtor Amazon
Kinesis
Amazon
S3
DynamoD
B
KCL
O streaming do Spark
usa KCL para o Kinesis
Amazon
EMR
O aplicativo de streaming do Spark para ler do Kinesis e gravar no S3
22. Streaming do Spark - Leitura do Kinesis
/* Setup the KinesisClient */
/* Determine the number of shards from the stream */
23. Streaming do Spark - Gravação no S3
/* Merge the worker Dstreams and translate the byteArray to string */
/* Write each RDD to Amazon S3*/
24.
25. Visualizar os arquivos de saída no
Amazon S3
SEU BUCKET DO S3
SEU BUCKET DO S3
aaaa mm dd HH
28. Hive do Amazon EMR
Adapta a consulta como SQL (HiveQL) para execução no
Hadoop
Esquema na leitura: mapeie a tabela para os dados de
entrada
Acessar dados em Amazon S3, Amazon DymamoDB e
Amazon Kinesis
Consultar formatos de entrada complexos usando SerDe
Transformar dados com funções definidas pelo usuário (UDF)
29. Uso do Hive no Amazon EMR
SUA CHAVE SSH DA AWS NOME DO HOST DO EMR
Iniciar Hive:
hive
30. Criar uma tabela que aponte para o bucket do
Amazon S3
CREATE EXTERNAL TABLE access_log_raw(
host STRING, identity STRING,
user STRING, request_time STRING,
request STRING, status STRING,
size STRING, referrer STRING,
agent STRING
)
PARTITIONED BY (year INT, month INT, day INT, hour INT, min INT)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "([^ ]*) ([^ ]*) ([^ ]*) (-|[[^]]*]) ([^
"]*|"[^"]*") (-|[0-9]*) (-|[0-9]*)(?: ([^ "]*|"[^"]*") ([^
"]*|"[^"]*"))?"
)
LOCATION 's3://SEU BUCKET DO S3/access-log-raw';
msck repair table access_log_raw;
31.
32. Processar dados usando o Hive
Transformaremos os dados que são retornados pela consulta antes de
gravá-los na tabela Hive externa armazenada no Amazon S3
Funções definidas pelo usuário (UDF) do Hive em uso para as
transformações de texto: from_unixtime, unix_timestamp e hour
O valor de "hour" é importante: ele é usado para dividir e organizar os
arquivos de saída antes de gravar no Amazon S3. Com essas
divisões, podemos carregar os dados com mais eficiência no Amazon
Redshift depois no laboratório com o comando "COPY" paralelo
34. Configurar partição e compactação
-- configurar "particionamento dinâmico" do Hive
-- isso dividirá os arquivos de saída ao gravar no Amazon S3
-- compactar arquivos de saída no Amazon S3 usando Gzip
35. Consultar Hive e gravar saída no Amazon S3
-- converter carimbo de data/hora do registro do Apache em um carimbo de
data/hora do UNIX
-- dividir arquivos no Amazon S3 pela hora nas linhas do registro
INSERT OVERWRITE TABLE access_log_processed PARTITION (hour)
SELECT
from_unixtime(unix_timestamp(request_time,
'[dd/MMM/yyyy:HH:mm:ss Z]')),
host,
request,
status,
referrer,
agent,
hour(from_unixtime(unix_timestamp(request_time,
'[dd/MMM/yyyy:HH:mm:ss Z]'))) como hora
FROM access_log_raw;
40. Spark SQL
Módulo do Spark para trabalhar com dados estruturados
usando SQL
Execute consultas Hive não modificadas nos dados
existentes.
41. Uso do Spark-SQL no Amazon EMR
SUA CHAVE SSH DA AWS NOME DO HOST DO EMR
Iniciar Hive:
spark-sql
42. Consultar os dados com o Spark
-- retornar a primeira linha no fluxo
-- retornar todos os itens contados no fluxo
-- encontrar os 10 hosts principais
45. Conectar ao Amazon Redshift
# using the PostgreSQL CLI
ENDPOINT DO REDSHIFT
Ou use qualquer cliente JDBC ou ODBC SQL com os drivers
PostgreSQL 8.x ou suporte nativo do Redshift
• Aginity Workbench para Amazon Redshift
• SQL Workbench/J
47. Carregamento de dados no Amazon Redshift
O comando "COPY" carrega arquivos paralelamente
COPY accesslogs
FROM 's3://SEU BUCKET DO S3/access-log-processed'
CREDENTIALS
'aws_access_key_id=SUA CHAVE DE ACESSO DO IAM;
aws_secret_access_key=SUA CHAVE SECRETA DO IAM'
DELIMITER 't' IGNOREHEADER 0
MAXERROR 0
GZIP;
48.
49.
50. Consultas de teste do Amazon Redshift
-- encontrar distribuição de códigos de status ao longo dos
dias
-- encontrar os códigos de status 404
-- mostrar todas as solicitações de status como PÁGINA NÃO
ENCONTRADA
51. Seu primeiro aplicativo de big data na AWS
Um favicon corrigiria 398 dos 977 erros de PÁGINA NÃO
ENCONTRADA (404) no total
52. ... pelo mesmo preço de uma xícara de café
Experimente na nuvem AWS...
Serviço Custo
estimado*
Amazon Kinesis $1.00
Amazon S3 (nível gratuito) $0
Amazon EMR $0.44
Amazon Redshift $1.00
Total estimado $2.44
*O custo estimado presume: uso do nível gratuito onde disponível, instâncias de custo mais baixo, conjunto de dados com no máximo
10 MB e instâncias em execução por menos de 4 horas. Os custos podem variar dependendo das opções selecionadas, do tamanho
do conjunto de dados e do uso.
$3.50