O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Creando su primera aplicación Big Data en AWS

1.439 visualizações

Publicada em

Creando su primera aplicación Big Data en AWS
AWS Summit Ciudad de México - Jueves, 26 de mayo

Publicada em: Tecnologia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Creando su primera aplicación Big Data en AWS

  1. 1. © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Henry Alvarado, Solutions Architect 26 de Mayo de 2016 Creando su primera aplicación big data en AWS
  2. 2. Big Data Tecnologías y técnicas para trabajar productivamente con datos en cualquier escala Generación de datos Captura & Almacenamiento Computación & Análsis Visualización
  3. 3. Amazon S3 Amazon Kinesis Amazon DynamoDB Amazon Redshift Amazon Elastic MapReduce Servicios de Big Data en AWS Amazon Elasticsearch Amazon Machine Learning Amazon Quiksight
  4. 4. Almacenamiento de objetos Cualquier tipo de archivo Escalabilidad 99.999999999% de durabilidad Amazon S3
  5. 5. Procesamiento real-time Alta performance, elástico Fácil de usar Integrable con EMR, S3, Redshift, DynamoDB Amazon Kinesis Streams
  6. 6. Base de datos NoSQL Fácil de escalar Cero administración Latencia de un único dígito de milisegundo Amazon DynamoDB
  7. 7. Data Warehouse relacional MPP – Procesamiento Paralelo Masivo Escalabilidad en PBs Completamente administrado Costo de $1.000 / TB / año Amazon Redshift
  8. 8. Hadoop como servicio Hive, Pig, Impala, Hbase, Spark Fácil de usar, administrado Uso de On-demand y Spot Integrable con S3, DynamoDB y Kinesis Amazon Elastic MapReduce
  9. 9. Amazon Kinesis LogsdeServidores Amazon EMR Amazon S3 Amazon Redshift Caso de Uso – Análisis de logs de acceso Log4J Map Reduce Parallel Copy EMR-Kinesis Connector SQL Query Kinesis Log4j Appender Visualización y análisis
  10. 10. Amazon Kinesis Caso de Uso – Análisis de logs de acceso
  11. 11. Creación de un stream en Amazon Kinesis aws kinesis create-stream --stream-name AccessLogStream --shard-count 2
  12. 12. Amazon Kinesis Amazon EMR Caso de Uso – Análisis de logs de acceso
  13. 13. Creación de un cluster en Amazon EMR aws emr create-cluster --name ”CLUSTER-NAME" --instance-type m3.xlarge --instance-count 3 --region=AWS-REGION --ami-version 3.7.0 --ec2-attributes KeyName=KEY-NAME --no-auto-terminate --applications Name=Hive
  14. 14. Amazon Kinesis Amazon EMR Amazon S3 Caso de Uso – Análisis de logs de acceso
  15. 15. Creación de un bucket en Amazon S3 aws s3 mb s3://BUCKET-NAME
  16. 16. Amazon Kinesis Amazon EMR Amazon S3 Amazon Redshift Caso de Uso – Análisis de logs de acceso
  17. 17. Creación de un cluster en Amazon Redshift aws redshift create-cluster --cluster-identifier CLUSTER-NAME --db-name DB-NAME --node-type dw2.large --cluster-type single-node --master-username MASTER-USER --master-user-password PASSWORD --publicly-accessible --port PORT-NUMBER
  18. 18. Amazon Kinesis LogsdeServidores Amazon EMR Amazon S3 Amazon Redshift Caso de Uso – Análisis de logs de acceso
  19. 19. Ejemplo de archivo de log
  20. 20. Amazon Kinesis LogsdeServidores Kinesis Log4j Appender✔ Caso de Uso – Análisis de logs de acceso Amazon EMR Amazon S3 Amazon Redshift
  21. 21. Configurar Amazon Kinesis Log4J Appender Descargar Amazon Kinesis Log4j Appender: http://emr-kinesis.s3.amazonaws.com/publisher/kinesis-log4j- appender-1.0.0.jar Configurar el archivo AwsCredentials.properties: accessKey=IAM-ACCESS-KEY secretKey=IAM-SECRET-KEY
  22. 22. Capturar logs en un stream de Amazon Kinesis Descargar un archivo de log de ejemplo de Apache httpd: http://elasticmapreduce.s3.amazonaws.com/samples/pig- apache/input/access_log_1 Ejecutar Amazon Kinesis Log4J Appender:
  23. 23. Amazon Kinesis LogsdeServidores Kinesis Log4j Appender✔ Caso de Uso – Análisis de logs de acceso Amazon EMR Amazon S3 Amazon Redshift
  24. 24. Amazon EMR’s Hive • Software para ejecutar consultas SQL-like (HiveQL) en Hadoop • Schema on read: mapea tablas para datos de entrada • Accede dados en Amazon S3, DynamoDB y Kinesis • Consultar formatos complejos usando SerDe • Transformar datos con User Defined Functions (UDF)
  25. 25. Configurar Hive para acceder Amazon Kinesis > hive hive> SET kinesis.accessKey=IAM-ACCESS-KEY; hive> SET kinesis.secretKey=IAM-SECRET-KEY; hive> SET kinesis.nodata.timeout=1; hive> SET kinesis.endpoint.region=REGION; hive> SET kinesis.retry.interval=1000; hive> SET kinesis.retry.maxattempts=3;
  26. 26. Amazon Kinesis LogsdeServidores Amazon EMR ✔ Kinesis Log4j Appender✔ EMR-Kinesis Connector✔ Caso de Uso – Análisis de logs de acceso
  27. 27. Creación de una tabla Hive usando Amazon Kinesis como origen hive> CREATE TABLE apachelog_from_kinesis( host STRING, identity STRING, user STRING, request_time STRING, request STRING, status STRING, size STRING, referrer STRING, agent STRING ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' WITH SERDEPROPERTIES ( "input.regex" = "([^ ]*) ([^ ]*) ([^ ]*) (-|[[^]]*]) ([^ "]*|"[^"]*") (-|[0-9]*) (-|[0-9]*)(?: ([^ "]*|"[^"]*") ([^ "]*|"[^"]*"))?" ) STORED BY 'com.amazon.emr.kinesis.hive.KinesisStorageHandler' TBLPROPERTIES("kinesis.stream.name"="AccessLogStream");
  28. 28. Amazon Kinesis LogsdeServidores Amazon EMR ✔ Kinesis Log4j Appender✔ EMR-Kinesis Connector✔ Caso de Uso – Análisis de logs de acceso ✔
  29. 29. Test de Amazon EMR leyendo de Amazon Kinesis -- return the first row in the stream hive> SELECT * FROM apachelog_from_kinesis LIMIT 1; -- return count all items in the Stream hive> SELECT COUNT(1) FROM apachelog_from_kinesis; -- return count of all rows with given host hive> SELECT COUNT(1) FROM apachelog_from_kinesis WHERE host="66.249.67.3”;
  30. 30. Amazon Kinesis LogsdeServidores Amazon EMR Amazon S3 ✔ Kinesis Log4j Appender✔ Map Reduce EMR-Kinesis Connector✔ ✔ Caso de Uso – Análisis de logs de acceso ✔
  31. 31. Creación de una tabla externa en Amazon S3 hive> CREATE EXTERNAL TABLE apachelog_to_s3 ( request_time STRING, host STRING, request STRING, status INT, referrer STRING, agent STRING ) PARTITIONED BY (hour STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY 't' STORED AS TEXTFILE LOCATION 's3://BUCKET-NAME/emroutput';
  32. 32. Configurar Hive para particionar archivos hive> hive>
  33. 33. Configurar Hive para compactar archivos hive> hive> hive> hive>
  34. 34. Amazon Kinesis LogsdeServidores Amazon EMR Amazon S3 ✔ Kinesis Log4j Appender✔ Map Reduce EMR-Kinesis Connector✔ ✔ Caso de Uso – Análisis de logs de acceso ✔
  35. 35. Ejecutar una consulta Hive y guardar el resultado en Amazon S3 hive> INSERT OVERWRITE TABLE apachelog_to_s3 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]'))) as hour FROM apachelog_from_kinesis;
  36. 36. Listar los archivos en Amazon S3 aws s3 ls s3://BUCKET-NAME/emroutput/
  37. 37. Amazon Kinesis LogsdeServidores Amazon EMR Amazon S3 Amazon Redshift ✔ ✔ ✔ Kinesis Log4j Appender✔ Map Reduce EMR-Kinesis Connector✔ ✔ Caso de Uso – Análisis de logs de acceso
  38. 38. Conectándose a Amazon Redshift
  39. 39. Crear una tabla en Amazon Redshift CREATE TABLE apachelog ( request_time timestamp, host varchar(50), request varchar(1024), status int, referrer varchar(1024), agent varchar(1024) ) DISTKEY(host) SORTKEY(request_time);
  40. 40. Amazon Kinesis LogsdeServidores Amazon EMR Amazon S3 Amazon Redshift ✔ ✔ ✔ Kinesis Log4j Appender✔ Map Reduce EMR-Kinesis Connector✔ ✔ Caso de Uso – Análisis de logs de acceso
  41. 41. Cargar datos en Amazon Redshift COPY apachelog FROM 's3://BUCKET-NAME/emroutput' CREDENTIALS 'aws_access_key_id=IAM-ACCESS_KEY; aws_secret_access_key=IAM-SECRET-KEY' DELIMITER 't' IGNOREHEADER 0 MAXERROR 0 GZIP;
  42. 42. Amazon Kinesis LogsdeServidores Amazon EMR Amazon S3 Amazon Redshift ✔ ✔ ✔ Kinesis Log4j Appender✔ Map Reduce EMR-Kinesis Connector✔ ✔ Caso de Uso – Análisis de logs de acceso ✔
  43. 43. Consultar datos en Amazon Redshift -- mostrar los requests de una determinada dirección IP SELECT host, request FROM apachelog WHERE host = '66.249.67.3'; -- contar todos los requests de un determinado dia SELECT COUNT(1) FROM apachelog WHERE request_time LIKE '2009-07-21%'; -- mostrar los requests referenciados desde otros sites SELECT * FROM apachelog WHERE referrer NOT LIKE '"-"';
  44. 44. Amazon Kinesis LogsdeServidores Amazon EMR Amazon S3 Amazon Redshift Visualización y análisis ✔ ✔ ✔ ✔ Kinesis Log4j Appender✔ Map Reduce EMR-Kinesis Connector✔ ✔ SQL Query✔ ✔ Caso de Uso – Análisis de logs de acceso
  45. 45. Visualizar los datos en Amazon Redshift
  46. 46. BI Partners https://aws.amazon.com/redshift/partners/
  47. 47. Amazon Kinesis LogsdeServidores Amazon EMR Amazon S3 Amazon Redshift Visualización y análisis ✔ ✔ ✔ ✔ Kinesis Log4j Appender✔ Map Reduce EMR-Kinesis Connector✔ ✔ SQL Query✔ ✔ Caso de Uso – Análisis de logs de acceso
  48. 48. Gracias México

×