hadoop mapreduce tutorial with examples what is mapreduce
En este tutorial, comprenderemos qué es MapReduce, sus ventajas y cómo funciona Hadoop Map Reduce con ejemplos:
software de conversión de video gratuito para windows
En el tutorial anterior, aprendimos sobre Hadoop HDFS y los mecanismos de lectura y escritura. Ahora exploremos otro componente de Hadoop, es decir, MapReduce.
Veamos lo siguiente en detalle:
- ¿Qué es MapReduce?
- Sus beneficios
- ¿Cuál es el enfoque exacto de MapReduce?
=> Visite aquí para ver la serie exclusiva de tutoriales de capacitación de BigData.
Lo que vas a aprender:
¿Qué es MapReduce?
Sigamos adelante y comencemos con los componentes de Hadoop. Como se explicó anteriormente, hay dos componentes principales de Hadoop, es decir, Hadoop HDFS y Hadoop Map Reduce.
Hadoop HDFS es un sistema de distribución de archivos que se utiliza para almacenar una gran cantidad de datos en varios racks.
Aquí discutiremos la unidad de procesamiento de Hadoop, es decir, MapReduce.
La siguiente pregunta que surge es '¿qué es Map Reduce y por qué es necesario?'
Hadoop MapReduce es el 'Unidad de procesamiento' y utilizando este componente, podemos procesar los Big Data almacenados en Hadoop HDFS.
Pero, ¿cuál es el requisito exacto? ¿Por qué necesitamos este componente de Hadoop?
Los Big Data almacenados en Hadoop HDFS no se almacenan tradicionalmente. Los datos se dividen en fragmentos de datos almacenados en los respectivos DataNodes. De modo que todos los datos no se almacenan en una ubicación centralizada.
Por lo tanto, una aplicación cliente nativa como Java o cualquier aplicación de este tipo no puede procesar los datos en el formato actual y necesitamos un marco especial que pueda procesar los bloques de datos fragmentados almacenados en los respectivos DataNodes.
El procesamiento se realiza mediante el procesamiento de Hadoop MapReduce.
Mapa Reducir en pocas palabras
El diagrama anterior ofrece una descripción general de Map Reduce, sus características y usos.
Comencemos con las aplicaciones de MapReduce y dónde se usa. Por ejemplo, se utiliza para Clasificadores, indexación y búsqueda y Creación de Motores de recomendación en sitios de comercio electrónico (Flipkart, Amazon, etc.) También se utiliza como Analítica por varias empresas.
Cuando vemos desde la perspectiva de las características, es un Modelo de programación y se puede utilizar para Distribuido a gran escala Modelo como Hadoop HDFS y tiene la capacidad de programación paralela que lo hace muy útil.
Cuando vemos las funciones en Map Reduce, se ejecutan dos funciones, es decir, la función Map y la función Reduce.
Esta tecnología ha sido implementada por organizaciones importantes como Google, Yahoo, Facebook y también adoptada por Apache Hadoop como HDFS, PIG, HIVE y para almacenar datos o ejecutar y procesar Big Data usando HBase, que también se conoce como No-SQL.
Ventajas de Map-Reduce
Esta tecnología tiene dos ventajas.
# 1) Procesamiento paralelo
La primera ventaja es el procesamiento paralelo. Usando Map Reduce siempre podemos procesar los datos en paralelo.
Según el diagrama anterior, hay cinco máquinas esclavas y algunos datos residen en estas máquinas. Aquí, los datos se procesan en paralelo con Hadoop Map Reduce y, por lo tanto, el procesamiento se vuelve rápido.
En realidad, lo que sucede aquí es que Hadoop HDFS divide la parte completa de datos en HDFS Block y Map-Reduce procesa estos fragmentos de datos y, por lo tanto, el procesamiento se vuelve rápido.
# 2) Localidad de datos
Esta es una cosa versátil que ofrece Hadoop MapReduce, es decir, podemos procesar los datos donde están.
Qué significa eso?
En el tutorial de HDFS anterior, entendimos que los datos que movimos a Hadoop Cluster se dividen en bloques HDFS y estos bloques se guardan en SlaveMachines o DataNodes. Map-Reduce detecta el procesamiento y la lógica de los respectivos nodos esclavos o nodos de datos donde los datos residen como bloques HDFS.
El procesamiento se ejecuta en una porción más pequeña de datos en múltiples ubicaciones en paralelo. Esto ahorra mucho tiempo y el ancho de banda de red que se requiere para mover Big Data de una ubicación a otra.
Solo recuerde que los datos que estamos procesando son Big Data divididos en fragmentos, y si comenzamos a mover los Big Data directamente a través de los canales de red asignados a una máquina centralizada y los procesamos, entonces no nos dará ninguna ventaja ya que vamos a consumir todo el ancho de banda al mover los datos a un servidor centralizado.
Beneficios:
Entonces, usando Hadoop MapReduce no solo estamos haciendo 'Procesamiento en paralelo' , también estamos procesando los datos en los respectivos nodos esclavos o nodos de datos donde están presentes los fragmentos de datos y, por lo tanto, también estamos 'Ahorrando mucho ancho de banda de red' lo cual es muy beneficioso.
Finalmente, las SlaveMachines terminan con el procesamiento de los datos almacenados en SlaveMachines y envían los resultados a la Master Machine ya que los resultados no son tan grandes como los bloques que se almacenaron en SlaveMachines. Por lo tanto, no utilizará mucho ancho de banda.
Las máquinas esclavas envían el resultado a la máquina maestra, estos resultados se agregan y el resultado final se envía de vuelta a la máquina cliente que envió el trabajo.
Aquí surge una pregunta: ¿quién decide qué datos deben procesarse en qué DataNode?
El Cliente envía el trabajo al Administrador de recursos y el Administrador de recursos es quien proporciona la dirección para ejecutar el trabajo en los respectivos DataNodes donde residen los datos, decide en función del DataNode más cercano que esté disponible para que una gran cantidad de Network No se utiliza ancho de banda.
Tradicional vs. MapReduce Way
Para explicar esto, tomaremos una analogía de la vida real del recuento de solicitudes de los titulares de pólizas de la compañía de seguros, todos estarían al tanto de las pólizas de las compañías de seguros, ya que la mayoría de las grandes compañías de seguros tienen sus sucursales en varias ciudades.
En esas sucursales, hay “n” números de personas que han solicitado pólizas de seguro de vida.
Tomemos un escenario en el que tenemos cinco sucursales de compañías de seguros donde las personas vienen y solicitan pólizas de seguro de vida. Ahora también tenemos una sede de esa compañía de seguros que tiene toda la información sobre las sucursales que están disponibles y ubicadas.
Sin embargo, cuando las personas vienen y solicitan la Póliza de Seguro de Vida en las respectivas sucursales A, B, C, D, E, las solicitudes de la póliza se guardan en las respectivas sucursales y esa información no se comparte con la Sede de la Compañía de Seguros.
Camino tradicional:
Veamos cómo la gente solicita la política tradicionalmente. Para solucionar este problema tradicionalmente, todas las solicitudes se trasladarán a la Sede de la Compañía de Seguros y luego se iniciará el proceso de solicitud.
En este caso, debemos trasladar todas las solicitudes a la Sede de la Compañía de Seguros, lo cual es un asunto costoso, es decir, tenemos que recopilar todas las solicitudes de las Sucursales de la Compañía de Seguros y llevarlas a la Sede de la Compañía de Seguros.
Así es como se involucra el costo junto con los enormes esfuerzos en realizar esta actividad.
Otro aspecto de esto es la Sede de la Aseguradora sobrecargada, ya que tiene que procesar todas las solicitudes que fueron aplicadas por las personas para las pólizas en las respectivas sucursales.
Como la Compañía de Seguros está procesando las solicitudes que se aplicaron en todas las sucursales, va a llevar mucho tiempo. Al final, este proceso no funciona muy bien.
MapReduce Way
Veamos cómo Map-Reduce resuelve este problema.
MapReduce sigue a Data Locality, es decir, no traerá todas las solicitudes a la Sede de la Compañía de Seguros, sino que hará el procesamiento de las solicitudes en las respectivas sucursales en paralelo.
Una vez procesadas las solicitudes que se aplicaron a cada sucursal, envían los detalles procesados a la Sede de la Compañía de Seguros.
Ahora, la Sede de la Compañía de Seguros solo tiene que agregar el número de solicitudes procesadas que se enviaron desde las respectivas sucursales y mantener los detalles en su respectiva Base de Datos o Centro de Almacenamiento.
Implementación de árbol binario en código fuente c ++
De esta forma, el trámite será muy fácil y rápido y los Asegurados obtendrán los beneficios en poco tiempo.
Mapa Reducir en detalle
En nuestro ejemplo anterior, teníamos una entrada (aplicaciones) que se distribuyeron entre varias ramas y cada entrada fue procesada por la función de mapa respectiva.
Sabemos que MapReduce tiene dos funciones, es decir, función de mapa y función de reducción.
La parte de procesamiento que se realizó en las respectivas ramas fue realizada por la Función de Mapa. Entonces, cada entrada (solicitud) en cada sucursal se procesó utilizando la Función de Mapa, luego los detalles procesados se enviaron a la Sede de la Compañía de Seguros y la parte de agregación se realiza mediante la Función Reducir.
Los detalles agregados de la aplicación procesada se dan como Salida.
Esto es lo que sucedió en nuestro ejemplo anterior. Todo el proceso se dividió en Tarea de mapa y Tarea de reducción.
La Tarea de Mapa obtiene una Entrada y la Salida de la Tarea de Mapa se le da a la Tarea de Reducir como una Entrada y esta Tarea de Reducir le da la Salida finalmente al Cliente.
Para entenderlo de una mejor manera, veamos la anatomía de MapReduce.
Una tarea MapReduce funciona en un par clave-valor, por lo que cuando hablamos de un mapa, el mapa toma la entrada como clave-valor y da la salida como una lista de clave-valor. Esta lista de Key-Value pasa por una fase aleatoria y la Entrada de Key y una lista de Valores fueron al Reductor.
Finalmente, el Reductor nos da una lista de los pares clave-valor.
Ejemplo de MapReduce: proceso de recuento de palabras
Tomemos otro ejemplo, es decir, proceso de conteo de palabras de la manera MapReduce. Este ejemplo es el mismo que el ejemplo introductorio de la programación Java, es decir, 'Hola mundo'.
Según el diagrama, teníamos una entrada y esta entrada se divide o se divide en varias entradas. Por lo tanto, este proceso se denomina División de entrada y toda la entrada se divide en divisiones de datos según el carácter de la nueva línea.
La primera línea es la primera entrada, es decir, Bigdata Hadoop MapReduce , la segunda línea es la segunda entrada, es decir MapReduce Hive Bigdata , de manera similar, para la tercera entrada, es Hive Hadoop Hive MapReduce .
Pasemos a la siguiente fase, es decir, la fase de mapeo. Ahora, en la fase de mapeo, creamos una lista de pares clave-valor. Entonces, la entrada es clave y valor, aquí la clave no es más que el desplazamiento del número de línea. El número de línea es la clave y la línea completa es el valor.
Entonces, para la línea 1, el desplazamiento es la clave y el valor es Bigdata Hadoop MapReduce . En la vida real, el número de línea o el desplazamiento es un número hexadecimal, sin embargo, para que sea más fácil, solo lo consideraremos como el número 1 o 2.
Entonces, la línea 1 será la clave y la línea completa será el valor. Cuando pasa por la función de mapeo, lo que hará el mapeo es crear la lista de pares clave-valor. Por ejemplo, Bigdata , entonces lo que hará la función es leer cada palabra de la línea y marcará uno (1) después de la coma.
Marcará uno (1) como Valor; me gusta Bigdata, 1 Hadoop, 1 y MapReduce, 1 . Aquí la pregunta es ¿por qué ponemos uno (1) después de cada palabra?
Es porque Bigdata es una cuenta así que Bigdata, 1 . Similitud, Hadoop, 1 y MapReduce, 1 en sí mismos tienen un recuento, por eso marcamos uno (1) como Valor. De la misma manera para la segunda línea o digamos la línea 2 tenemos, MapReduce Hive Bigdata .
Entonces, de la misma manera, la función de mapeo crea nuevamente la lista de pares clave-valor para ella y, por lo tanto, según el recuento, la lista de pares clave-valor será MapReduce, 1 colmena, 1 y Bigdata, 1 .
Obtendremos lo mismo como resultado de la función de mapeo para la línea 3, es decir, Colmena, 2 Hadoop, 1 y MapReduce, 1 .
Pasemos a la fase de barajado, en esta fase para cada clave hay una lista preparada. La fase de barajar encontrará la apariencia de Key Bigdata y agregará los valores a la lista. Así que veamos qué está pasando aquí.
Como podemos ver dos flechas entrantes, la primera flecha proviene de la lista 1 y otra flecha proviene de la lista 2, por lo que el resultado será Bigdata, (1,1) .
Del mismo modo, cuando vemos la palabra Hadoop , de nuevo para Hadoop se preparará otra lista para los valores. Como podemos ver, dos flechas entrantes apuntan a Shuffling, lo que significa que la palabra Hadoop se tomarán de la lista 2 y la lista 3 respectivamente, es decir, el resultado final después de Shuffling será Hadoop, (1, 1) .
De la misma manera, obtendremos el resto de palabras como Colmena, (1, 1, 1) y MapReduce, (1, 1, 1) junto con su lista de Valores o decir la lista de Contar según la disponibilidad de palabras en las listas respectivas.
Ahora pase a la fase de reducción, en esta fase, comenzamos la agregación de los valores que estaban presentes en la lista con cada clave. Así que para Bigdata, había dos valores presentes en la lista, es decir (1, 1) por lo tanto, la presentación de estos valores se hará de manera Bigdata, 2 .
Del mismo modo, para Hadoop el valor será la suma, es decir (1, 1) la sumisión será Hadoop, 2 .
De la misma manera para Colmena y Mapa reducido, la sumisión para la función de reducción será Colmena, 3 y MapReduce, 3 respectivamente.
Por último, el resultado final se enviará de vuelta al cliente como se muestra en el siguiente diagrama del 'Proceso general de recuento de palabras de MapReduce'
El proceso general de recuento de palabras de MapReduce
para que se usa java hoy
Así es como funciona todo el proceso de conteo de palabras cuando usa MapReduce Way.
Conclusión
En este tutorial, aprendimos lo siguiente:
- Hadoop Map Reduce es el 'Unidad de procesamiento' de Hadoop.
- Para procesar los Big Data almacenados por Hadoop HDFS utilizamos Hadoop Map Reduce.
- Se utiliza en búsqueda e indexación, clasificación, recomendación y análisis.
- Tiene características como Modelo de programación, Programación paralela y Modelo distribuido a gran escala.
- Los patrones de diseño de MapReduce son: Resumen, clasificación de registros principales, ordenación y análisis como unión y selección.
- Tiene solo dos funciones es decir, función Mapper y función reductora.
- El procesamiento paralelo y la localización de datos son las buenas ventajas de Hadoop MapReduce.
- El proceso de MapReduce se divide en seis fases, es decir, ENTRADA, DIVISIÓN, MAPEO, DESPLAZAMIENTO, REDUCCIÓN y RESULTADO FINAL.
Eso es todo por este tutorial, en nuestros próximos tutoriales cubriremos:
- ¿Cómo funciona MapReduce con YARN y sus componentes?
- Flujo de trabajo de la aplicación de YARN.
- ¿Qué es Spark y cuál es la diferencia entre Hadoop y Spark?
=> Consulte TODOS los tutoriales de BigData aquí.
Lectura recomendada
- ¿Qué es Hadoop? Tutorial de Apache Hadoop para principiantes
- Tutorial de Python DateTime con ejemplos
- Tutorial de Data Mart: tipos, ejemplos e implementación de Data Mart
- Modelo de datos dimensionales en el almacén de datos: tutorial con ejemplos
- Tutorial de longitud de matriz de Java con ejemplos de código
- Tutorial de Big Data para principiantes | ¿Qué es Big Data?
- Tutorial de scripting de shell de Unix con ejemplos
- Tutorial de búsqueda de elementos por texto de selenio con ejemplos