Your SlideShare is downloading. ×
0
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Emr hive   barcamp 2012
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Emr hive barcamp 2012

338

Published on

Introducción super rapida al mundo de hadoop montado sobre amazon web services

Introducción super rapida al mundo de hadoop montado sobre amazon web services

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
338
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Hadoop y Hive en AWS Cómo analizar terabytes de datos y no morir en el intentodomingo 4 de noviembre de 2012
  • 2. Quién soy yo? • Ezequiel Golub • Desarrollador en Smowtion • Hace más de un año que implementamos Hadoopdomingo 4 de noviembre de 2012
  • 3. Qué es Hadoop? • Framework para aplicaciones distribuidas en miles de nodos • Ahora familia de productos, pero en su core son 2: • HDFS • Map/Reduce • Proyecto de apache.orgdomingo 4 de noviembre de 2012
  • 4. Limitaciones de RDBMS • Datasets de petabytes • no escalan horizontalmente • Escalar horizontalmente = chau ACID • Particionar y shardear es dificil. • Rendimiento de lecturas o escrituras: Elegí una. • Usar hardware especializado = $$$!!domingo 4 de noviembre de 2012
  • 5. Por qué Hadoop? • Da respuesta las limitaciones de las RDBMS • Escalabilidad horizontal • Confiabilidad • Apoyo de comunidad • Map/Reduce • Orientado a procesos batch para datos “grandes” • AWSdomingo 4 de noviembre de 2012
  • 6. Quienes lo usan?domingo 4 de noviembre de 2012
  • 7. Cuándo usar Hadoop? • Demasiados datos para que entren en algun tipo de datastore comodamente • Datos desestructurados • Y necesitas analizarlos! • Y necesitas alta disponibilidad! • Suficientes datos para que analizarlos en una sola maquina sea dificildomingo 4 de noviembre de 2012
  • 8. HDFS • Sistema de archivos distribuido, redundante y con alta disponibilidad. • Soporta archivos muy grandes. • Pensado para commodity hardware • Acceso streaming de baja latencia y alta transferencia.domingo 4 de noviembre de 2012
  • 9. HDFS - Ventajas • Tolerancia a los fallos • Autoregenerativo • Escalable • Confiabilidad • Soportedomingo 4 de noviembre de 2012
  • 10. Map/Reduce • Paradigma de programación distribuida • Basada en un paper de Google (http://bit.ly/ gXZbsk) • Modelada a partir de las ideas de programación funcional • Distribuible en N nodos • map() -> reduce() • La etapa de reduce se inicia cuando todos los mappers terminan.domingo 4 de noviembre de 2012
  • 11. Map/Reduce • Dos pasos secuenciales • Map: Toma todas las lineas de un input, y por cada una, las procesa y devuelve un par de key valor • Reduce: Recibe secuencialmente un key valor, los procesa y emite un resultado (ej: otro k-v)domingo 4 de noviembre de 2012
  • 12. wc.py M/R: WC en Python import hadoopy ** usando el modulo Hadoopy para usar python def mapper(key, value): con Hadoop! for word in value.split(): yield word, 1 def reducer(key, values): accum = 0 for count in values: accum += int(count) yield key, accum if __name__ == "__main__": hadoopy.run(mapper, reducer, doc=__doc__) Probandolo localmente! $ echo "a b a a b c" | python wc.py map | sort | python wc.py reduce a 3 b 2 c 1domingo 4 de noviembre de 2012
  • 13. Ejemplo: wordcount {‘foo’:12, <arch1.part1> mapper ‘bar’:13, ‘baz’:19} {‘foo’:[12,33,1,55]} count() Reducer sum() {‘foo’:33, <arch1.part2> mapper ‘bar’:23, ‘baz’:42} {‘bar’:[13,23,0,43]} count() Ordenar {‘foo’:101, Muchos y Reducer ‘bar’:79, archivos agrupar ‘baz’:218} por key sum() {‘foo’:1, <arch2.parte1> mapper ‘bar’:0, ‘baz’:99} {‘baz’:[19,42,99,65]} count() Reducer sum() {‘foo’:55, <arch2.parte2> mapper ‘bar’:43, ‘baz’:65} count()domingo 4 de noviembre de 2012
  • 14. M/R en Hadoop • Las tareas de M/R son entregadas como un “job” • Los “jobs” se asignan a una cola especifica de trabajo • Los jobs son “rack-aware”: aprovecharse del “data locality” • Cada “job” es divido en N “tasks” • Streaming: No usar Java para M/R • Las tareas que fallen son reiniciadas automaticamente.domingo 4 de noviembre de 2012
  • 15. M/R: Implementación • M/R es excelente para los problemas donde los ‘sub-problemas’ no son interdependientes • Nada se comparte entre mappers y reducers, ni siquiera si corren en el mismo nodo • X ej: La salida de un mapper no puede depender de la salida o comunicación con otro mapperdomingo 4 de noviembre de 2012
  • 16. Amazon Web Services • Crear servidores virtuales dinamicamente. • Pagas solo por las horas que usas • Podes ‘apagar’ y ‘prender’ maquinas en cualquier momentodomingo 4 de noviembre de 2012
  • 17. AWS: Servicios clave • EC2: Servidores virtuales • S3: Servicio de data-storage • EMR: Hadoop on demanddomingo 4 de noviembre de 2012
  • 18. Elastic Map Reduce • Proveen un cluster configurado con los ultimos patches + un poco de magia extra • Interactua nativamente con S3 • Podes agregar o sacar servers del cluster dinamicamentedomingo 4 de noviembre de 2012
  • 19. Elastic Map Reduce • Al crear el server, se lo puede acceder igual que cualquier otro server virtual • Bootstrap actions permiten customizar el master o slaves • Los cluster pueden ser persistente o efimeros • 2 instance groups: CORE y TASKdomingo 4 de noviembre de 2012
  • 20. domingo 4 de noviembre de 2012
  • 21. domingo 4 de noviembre de 2012
  • 22. domingo 4 de noviembre de 2012
  • 23. domingo 4 de noviembre de 2012
  • 24. domingo 4 de noviembre de 2012
  • 25. domingo 4 de noviembre de 2012
  • 26. Elastic Map Reduce Ejemplos desde la consola: # Bajar el instance group TASK a cero instancias shell# elastic-mapreduce --jobflow j-XXXXX --modify-instance-group TASK --instance-count 0domingo 4 de noviembre de 2012
  • 27. Hive: Qué es? • SQL sobre hadoop • Traducir Pseudosql a tareas Map/Reduce • Maneja datos a escala “Hadoop” • Puede usar logfiles como source data • WC en Hive: • SELECT COUNT(*) as freq, word FROM words GROUP by word;domingo 4 de noviembre de 2012
  • 28. Access log - crear tabla CREATE EXTERNAL TABLE access_log( ip STRING, host STRING, finishtime STRING, uri STRING, return_code STRING, bytes STRING, referrer STRING, user_agent STRING, quality STRING ) comment data logs uploaded from servers PARTITIONED by (   year string,   month string,   day string,   hour string,   minute string) ROW FORMAT SERDE org.apache.hadoop.hive.contrib.serde2.RegexSerDe WITH SERDEPROPERTIES (   "input.regex" = (.+?) (.+?) - (.+) "(.+?)" ([0-9]+) ([0-9]+) "(.+)" "(.+)" "(.+)",   "output.format.string" = "%1$s %2$s %3$s %4$s %5$s %6$s %7$s %8$s %9$s" ) STORED AS TEXTFILE LOCATION s3n://somebucket/acceslog_dir/;domingo 4 de noviembre de 2012
  • 29. Ejemplo con CSV CREATE EXTERNAL TABLE page_view( viewTime INT, userid BIGINT, url STRING, referrer_url STRING, ip STRING COMMENT IP Address of the User, country STRING COMMENT country of origination ) ROW FORMAT DELIMITED FIELDS TERMINATED BY , STORED AS TEXTFILE LOCATION s3n://somebucket/page_views;domingo 4 de noviembre de 2012
  • 30. Queries # Conteo de hits x url para Nov 2012 SELECT count(*) as count, uri FROM access_log WHERE year = 2012 and month = 11 GROUP by uri ORDER by uri DESC; # subqueries # tablas: users, action_video y action_comment # salida: una lista con todas las acciones de todos los usuarios y sus fechas SELECT u.id, actions.name, actions.date FROM ( SELECT av.uid AS uid, ‘video publicado’ as name FROM action_video av WHERE av.date = 2008-06-03 UNION ALL SELECT ac.uid AS uid, ‘comentario publicado’ as name FROM action_comment ac WHERE ac.date = 2008-06-03 ) actions JOIN users u ON (u.id = actions.uid) # insertar la salida del query en s3 INSERT OVERWRITE DIRECTORY ‘s3n://somebucket/somedir’ SELECT * FROM access_log where uri = ‘http://example.com’domingo 4 de noviembre de 2012
  • 31. Limitaciones • No implementa todo el SQL. • Algunas cosas se hacen de manera rara (group by) • Miles de archivos de salida. • Map/Reduce es inherementente lento • Puede ser adictivodomingo 4 de noviembre de 2012
  • 32. Tips • Particionar las tablas (s3://bucket/ access/y=2012/m=11/d=4/h=1) • Crear sets de prueba con pocos datos • Crear varias tablas para distintos queries • Tabla => Query => Tabla => Query • Borrar los datos que no usas en S3!domingo 4 de noviembre de 2012
  • 33. Precios? • Cluster tipico • Master: small (u$s 0.09/hora) x 1 • Slaves: c1.medium u$s 0.2/hora x 2 • Total: u$s 0.49 x hora • S3: u$s 0.125 x gb (muy aprox)domingo 4 de noviembre de 2012
  • 34. En Smowtion? • 70 gb x dia entre datos propios y de partners • Hive funciona como datawarehouse y como parte del pipeline de datos:domingo 4 de noviembre de 2012
  • 35. Cómo seguir? • Cloudera.com • Hadoop.apache.org • http://developer.yahoo.com/hadoop/tutorial/ • http://aws.amazon.com/developertools/2264 (AWS command line Ruby Client) • https://cwiki.apache.org/confluence/display/ Hive/LanguageManual (hive lang manual)domingo 4 de noviembre de 2012
  • 36. Preguntas? • @ezegolub • ezequiel.golub@gmail.comdomingo 4 de noviembre de 2012

×