Hadoop – Pig And Map-
Reduce
1 Comprender el problema actual y las
soluciones big data
2
Conocer la tecnología de
map/reduce y poder entender su
funcio...
1 Big Data – Un Problema
2 El Map Reduce como solución
3 Hadoop
4 Simplificación con Pig
Big Data – Un problema
1. Internet es enorme:
2. 20+B de páginas * 20KB/datos  400TBytes
3. Un ordenador lee alrededor de 30/35MB/seg
1. 4 meses...
• Paralelizamos el problema
• El mismo problema con 1000 maquinas  < 3
horas
• pero…
• Compleja programación
• Comunicaci...
1.3 Solución
El Map Reduce como solución
2.1 Map Reduce
Objetivo : Cuantos Tweets tiene twitter por cada Usuario?
2.1 Map Reduce
Input : Clave Fila / Valor  Información de un tweet
2.1 Map Reduce
Map : Clave de salida : user_id, valor  1
2.1 Map Reduce
Ordenamos por user_id
2.1 Map Reduce
Reduce : Por cada user_id , sumamos el value del map (1)
2.1 Map Reduce
Output : user_id , tweet_count
2.1 Map Reduce
Contra mas maquinas añadamos al cluster, mas rápido el
procesamiento de la información
 Análisis típicamente en Java
 Los prototipos requieren de compilación
 Código complejo
 Alta probabilidad de error
“
...
 Lenguaje de alto nivel
 Más fácil que el SQL?
 Procesa la información paso a paso
2.3 Pig entra en acción
2.3 ¿Por qué Pig?
Porqué somos capaces de entender el siguiente script :P
Hadoop
1 Arquitectura
2 Word Count - Explicación
3 Instalación
4 Ejecución Word Count
3.1 Arquitectura de Hadoop
3.2 WordCount – Explicación
3.3 Instalación – Pre - requisitos
Requisitos : Java JDK :
1. sudo add-apt-repository ppa:webupd8team/java
2. sudo apt-get...
3.3 Instalación – Hadoop
1. “Restart Computer”
2. cat /proc/sys/net/ipv6/conf/all/disable_ipv6
3. exit
Hadoop:
• Download:...
3.3 Instalación – Hadoop basics
• lzohead () { hadoop fs -cat $1 | lzop -dc | head -1000
| less }
• export PATH=$PATH:$HAD...
3.3 Instalación – Hadoop XML Files – core-
site.xml
 sudo gedit /usr/local/hadoop/conf/core-site.xml
 Entre los tags de ...
3.3 Instalación – Hadoop XML Files – mapred-
site.xml
 sudo gedit /usr/local/hadoop/conf/mapred-site.xml
 Entre los tags...
3.3 Instalación – Hadoop XML Files –
hdfs.site.xml
 sudo gedit /usr/local/hadoop/conf/mapred-site.xml
 Entre los tags de...
3.3 Iniciando Hadoop
 su – hduser
 cd /usr/local/hadoop/bin
 ./hadoop namenode -format
 ./start-all.sh
 jps
 ./stop-...
3.4 Ejecución de un Map/Reduce
Descargar los siguientes e-books en formato texto-simple (UTF-8):
http://www.gutenberg.org/...
Pig
1 Instalación
2 Word Count en Pig
4.1 Instalación
 wget http://apache.cs.utah.edu/pig/pig-0.11.1/pig-
0.11.1.tar.gz
 tar -xvf pig-0.11.1.tar.gz
 sudo mv ...
4.1 WordCount Pig
 wget http://www.gutenberg.org/ebooks/20417
 mv [Nombre Descarga] input.txt
 sudo gedit wordcount.pig...
http://research.incubio.com/
Cristian Vitales
Research Engineer
Gracias
Upcoming SlideShare
Loading in …5
×

Hadoop And Pig And MapReduce

616 views

Published on

hadoop - map reduce y pig , explicación teorica, instalación y pruebas en local con las herramientas.

Published in: Engineering
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
616
On SlideShare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Hadoop And Pig And MapReduce

  1. 1. Hadoop – Pig And Map- Reduce
  2. 2. 1 Comprender el problema actual y las soluciones big data 2 Conocer la tecnología de map/reduce y poder entender su funcionamiento 3 Capacidad de instalación de Hadoop en local y testeo sobre un WordCount 4 Capacidad de instalación de Pig en local y testeo. Objetivos
  3. 3. 1 Big Data – Un Problema 2 El Map Reduce como solución 3 Hadoop 4 Simplificación con Pig
  4. 4. Big Data – Un problema
  5. 5. 1. Internet es enorme: 2. 20+B de páginas * 20KB/datos  400TBytes 3. Un ordenador lee alrededor de 30/35MB/seg 1. 4 meses para leer la web 2. De 400 discos duros para almacenarla 4. Mucha más complicación para hacer algo con esos datos. “ 1.1 El problema
  6. 6. • Paralelizamos el problema • El mismo problema con 1000 maquinas  < 3 horas • pero… • Compleja programación • Comunicación entre maquinas • Fallo de alguna maquina • Optimización • etc “ 1.2 La ventaja?
  7. 7. 1.3 Solución
  8. 8. El Map Reduce como solución
  9. 9. 2.1 Map Reduce Objetivo : Cuantos Tweets tiene twitter por cada Usuario?
  10. 10. 2.1 Map Reduce Input : Clave Fila / Valor  Información de un tweet
  11. 11. 2.1 Map Reduce Map : Clave de salida : user_id, valor  1
  12. 12. 2.1 Map Reduce Ordenamos por user_id
  13. 13. 2.1 Map Reduce Reduce : Por cada user_id , sumamos el value del map (1)
  14. 14. 2.1 Map Reduce Output : user_id , tweet_count
  15. 15. 2.1 Map Reduce Contra mas maquinas añadamos al cluster, mas rápido el procesamiento de la información
  16. 16.  Análisis típicamente en Java  Los prototipos requieren de compilación  Código complejo  Alta probabilidad de error “ 2.2 Problemas
  17. 17.  Lenguaje de alto nivel  Más fácil que el SQL?  Procesa la información paso a paso 2.3 Pig entra en acción
  18. 18. 2.3 ¿Por qué Pig? Porqué somos capaces de entender el siguiente script :P
  19. 19. Hadoop
  20. 20. 1 Arquitectura 2 Word Count - Explicación 3 Instalación 4 Ejecución Word Count
  21. 21. 3.1 Arquitectura de Hadoop
  22. 22. 3.2 WordCount – Explicación
  23. 23. 3.3 Instalación – Pre - requisitos Requisitos : Java JDK : 1. sudo add-apt-repository ppa:webupd8team/java 2. sudo apt-get update 3. sudo apt-get install oracle-java7-installer 4. java –version Un usuario para hadoop 1. Sudo addgroup hadoop 2. Sudo adduser –ingroup hadoop hduser ( password ) Configuración del ssh 1. su – hduser 2. ssh-keygen –t rsa –P “” 3. (pulsar enter a todo hasta generar la imagen de la clave rsa) 4. cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys 5. ssh localhost  yes  exit Desactivando Ip V6 1. sudo gedit /etc/sysctl.conf 1. net.ipv6.conf.all.disable_ipv6 = 1 2. net.ipv6.conf.default.disable_ipv6 = 1 3. net.ipv6.conf.lo.disable_ipv6 = 1
  24. 24. 3.3 Instalación – Hadoop 1. “Restart Computer” 2. cat /proc/sys/net/ipv6/conf/all/disable_ipv6 3. exit Hadoop: • Download: http://ftp.cixug.es/apache/hadoop/core/stable1/hadoop- 1.2.1.tar.gz • cd PATH_DOWNLOADED sudo tar –zxvf hadoop-1.2.1.tar.gz • mv hadoop-1.2.1 hadoop • sudo cp –r hadoop /usr/local/ • cd /usr/local/hadoop && sudo chown -R hduser:hadoop hadoop Update Profile : • sudo gedit ~/.bashrc Añadir lo siguiente al final del fichero: • export HADOOP_HOME=/usr/local/hadoop • export JAVA_HOME=/usr/lib/jvm/java-7-oracle • unalias fs &> /dev/null alias fs="hadoop fs" unalias hls &> /dev/null alias hls="fs -ls"
  25. 25. 3.3 Instalación – Hadoop basics • lzohead () { hadoop fs -cat $1 | lzop -dc | head -1000 | less } • export PATH=$PATH:$HADOOP_HOME/bin Configuración: • sudo gedit /usr/local/hadoop/conf/hadoop-env.sh • Cambiar el export de java home por el siguiente: • export JAVA_HOME=/usr/lib/jvm/java-7-oracle • sudo mkdir -p /app/hadoop/tmp • sudo chown hduser:hadoop /app/hadoop/tmp • sudo chmod 750 /app/hadoop/tmp
  26. 26. 3.3 Instalación – Hadoop XML Files – core- site.xml  sudo gedit /usr/local/hadoop/conf/core-site.xml  Entre los tags de <configuration> </configuration> añadir <property> <name>hadoop.tmp.dir</name> <value>/app/hadoop/tmp</value> <description> A base for other temporary directories. </description> </property> <property> <name>fs.default.name</name> <value>hdfs://localhost:54310</value> <description> The name of the default file system. A URI whose scheme and authority determine the FileSystem implementation. The uri's scheme determines the config property (fs.SCHEME.impl) naming the FileSystem implementation class. The uri's authority is used to determine the host, port, etc. for a filesystem. </description> </property>
  27. 27. 3.3 Instalación – Hadoop XML Files – mapred- site.xml  sudo gedit /usr/local/hadoop/conf/mapred-site.xml  Entre los tags de <configuration> </configuration> añadir <property> <name>mapred.job.tracker</name> <value>localhost:54311</value> <description>The host and port that the MapReduce job tracker runs at. If "local", then jobs are run in-process as a single map and reduce task. </description> </property>
  28. 28. 3.3 Instalación – Hadoop XML Files – hdfs.site.xml  sudo gedit /usr/local/hadoop/conf/mapred-site.xml  Entre los tags de <configuration> </configuration> añadir <property> <name>dfs.replication</name> <value>1</value> <description> Default block replication. The actual number of replications can be specified when the file is created. The default is used if replication is not specified in create time. </description> </property>
  29. 29. 3.3 Iniciando Hadoop  su – hduser  cd /usr/local/hadoop/bin  ./hadoop namenode -format  ./start-all.sh  jps  ./stop-all.sh  para parar el cluster
  30. 30. 3.4 Ejecución de un Map/Reduce Descargar los siguientes e-books en formato texto-simple (UTF-8): http://www.gutenberg.org/ebooks/20417 http://www.gutenberg.org/ebooks/5000 http://www.gutenberg.org/ebooks/4300  Guardar los archivos en un directorio local por ejemplo /tmp/libros  mkdir /tmp/libros  sudo cp [Nombre_Libro_Descargado] /tmp/libros/  ls –al /tmp/libros/  Comprobamos que estan todos Ahora vamos a copiar los libros al sistema de ficheros de hadoop HDFS para procesarlos  sudo cd /usr/local/hadoop/bin  Si no estamos en hduser  su – hduser  ./hadoop dfs –copyFromLocal /tmp/libros/ /user/hduser/libros  ./hadoop dfs –ls /user/hduser/ Run The Map Reduce Job  ./hadoop jar ../hadoop*examples*.jar wordcount /user/hduser/libros /user/hduser/output-libros  ./hadoop dfs –ls /user/hduser/output-libros  ./hadoop dfs –cat /user/hduser/output-libros/part-r-00000
  31. 31. Pig
  32. 32. 1 Instalación 2 Word Count en Pig
  33. 33. 4.1 Instalación  wget http://apache.cs.utah.edu/pig/pig-0.11.1/pig- 0.11.1.tar.gz  tar -xvf pig-0.11.1.tar.gz  sudo mv pig-0.11.1 /usr/lib/pig  sudo gedit ~/.bashrc  Añadir :  export PIG_HOME=/usr/lib/pig  export PATH=$PATH:$PIG_HOME/bin  sudo –s  pig –version  pig –x local  quit
  34. 34. 4.1 WordCount Pig  wget http://www.gutenberg.org/ebooks/20417  mv [Nombre Descarga] input.txt  sudo gedit wordcount.pig  A = load './input.txt'; B = foreach A generate flatten(TOKENIZE((chararray)$0)) as word; C = group B by word; D = foreach C generate COUNT(B), group; store D into './wordcount';  pig –x local wordcount.pig  cat wordcount/part-r-00000
  35. 35. http://research.incubio.com/ Cristian Vitales Research Engineer Gracias

×