¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Fundamentos de Hadoop

Aquí está la lección completa para leer. Crea una cuenta gratuita para practicarla en un laboratorio en vivo.

Laboratorio de contenedores7 min de lectura6 comandos

Qué vas a hacer

Hadoop guarda un archivo muy grande cortándolo en bloques y repartiéndolos entre muchas máquinas, y lo procesa allí donde están los bloques. HDFS es el sistema de archivos: un NameNode que sabe qué bloques forman cada archivo y varios DataNodes que los guardan. MapReduce es la forma de procesar: cada máquina cuenta su propia parte y después se suman los resultados. Tu laboratorio es un clúster pequeño con uno de cada. Vas a subir un archivo, a leerlo de vuelta y a mirar un recuento de palabras.

Antes de empezar

Nota

Pulsa Iniciar el laboratorio en la barra de la parte superior de esta lección y espera a que diga que está en marcha. Los servicios son namenode, datanode, resourcemanager, nodemanager y client, y se encuentran unos a otros por esos nombres. Cada botón Ejecutar de abajo escribe su comando en el terminal de tu laboratorio, uno detrás de otro y en la misma sesión. Para verlos, o para escribir los tuyos, pulsa Abrir el terminal (pestaña nueva) en la barra.

1. Sube un archivo a HDFS

El primer comando escribe una frase en un archivo de tu propio terminal. El segundo lo envía a HDFS: se lo pide al NameNode, que responde con la dirección de un DataNode, y curl la sigue gracias a la opción -L y envía allí los bytes. No imprime nada si todo va bien. La carpeta /user/lab/mine no existía, así que HDFS la creó.

Comando
echo 'one fish two fish red fish blue fish' > /tmp/fish.txt

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comando
curl -s -L -X PUT -T /tmp/fish.txt 'http://namenode:9870/webhdfs/v1/user/lab/mine/fish.txt?op=CREATE&user.name=lab'

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

2. Enuméralo y léelo de vuelta

El primer comando enumera la carpeta: la respuesta es JSON, y para fish.txt dice "length":37 (la frase y el final de línea) y "replication":1, una copia de cada bloque, porque este clúster tiene un solo DataNode. El segundo lee el archivo y imprime la frase. El mismo archivo aparece en la página del NameNode, en tu navegador, en Utilities y después Browse the file system (explorar el sistema de archivos).

Comando
curl -s 'http://namenode:9870/webhdfs/v1/user/lab/mine?op=LISTSTATUS'

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comando
curl -s -L 'http://namenode:9870/webhdfs/v1/user/lab/mine/fish.txt?op=OPEN'

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

3. Lee el recuento de palabras

Cuando arrancó el laboratorio, el clúster ejecutó el recuento de palabras de Hadoop sobre una frase de ejemplo y dejó el resultado en HDFS. El primer comando lo imprime, una línea por cada palabra con su recuento: the es 4, dog y fox son 2. El segundo le pregunta al ResourceManager cómo fue el trabajo e imprime "finalStatus":"SUCCEEDED". Tu terminal no tiene el comando hadoop, así que no puede empezar un recuento de tu propio archivo: esta lección lee el recuento que el laboratorio ya hizo.

Comando
curl -s -L 'http://namenode:9870/webhdfs/v1/user/lab/wordcount-out/part-r-00000?op=OPEN'

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comando
curl -s http://resourcemanager:8088/ws/v1/cluster/apps | grep -o '"finalStatus":"[A-Z]*"'

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Para el profesorado

Consejo

Esta lección es un pequeño ejemplo de una lección practicada en un laboratorio: los pasos y los botones Ejecutar son la lección, y el laboratorio es la copia propia de cada alumno. El laboratorio son cinco servicios y ningún volumen, y nada de lo que hay aquí se corrige solo: el alumno entrega la ruta de un archivo que ha subido a HDFS, las líneas del recuento de palabras hecho con él y una frase sobre lo que hace cada uno, el NameNode y el DataNode. Cada alumno elige su propio texto, así que las respuestas son distintas. Cópiela en su propio módulo y modifíquela, o cree una desde cero con el menú Laboratorio del constructor de lecciones.

Sobre este laboratorio y su código: Laboratorio de Hadoop: HDFS y MapReduce, con un archivo que subir y un conteo de palabras que leer

¿Enseñas a una clase? Asigna estas lecciones a tus estudiantes con calificación y un laboratorio para cada uno.