Subido por Ruben Padilla

Big Data1

Anuncio
HADOOP COMMON
HADOOP - HDFS
HADOOP DISTRIBUTED FILE SYSTEM
HADOOP MADREDUCE
HADOOP – YARN
YET ANOTHER RESOURCE NEGOTIATOR
MapReduce es un algoritmo de procesamiento y búsquedas, que permite hacer consultas a una base de datos inmensa y obtener respuestas rápidas. Es capaz de
enviar una orden a cada máquina para que busque en su disco duro, recolectar todas las contestaciones y ordenarlas para resolver la consulta. Cualidades

No es una solución buena para trabajos que requieren de respuesta en tiempo real, es más bien recomendable para procesamiento offline de información.
MapReduce es un framework de desarrollo que te permite aprovechar todas las ventajas de paralelismo que los ambientes que BigData te aportan, usando el concepto de dividir las
tareas grandes en varias pequeñas, ejecutándolas en paralelo y ensamblando esos resultados al final en uno solo.
HDFS, es el componente, que se encarga de manejar el pool o cluster de máquinas para almacenar todos nuestros archivos de BigData en ellas.
Sin embargo, esas máquinas no sirven solo de repositorio, sino que también se utilizan para ejecutar procesos sobre esos datos. La manera de hacerlo es partiendo
los datos en varios pedazos o Splits, y enviando cada pedazo a ser procesado independientemente de los otros y luego esos pedazos son integrados en un solo
resultado final.
Para hacer el procesamiento de dichos datos se usa el concepto de MapReduce, que consiste en tener tres procesos principales: Map, Shuffle y Reduce.
Los procesos Map y Reduce son programados por nosotros, pero el de Shuffle lo hace automáticamente Hadoop.
Primer Paso:
Tomar los datos de entrada y
particionarlos en pedazos
llamados Splits.
El Proceso de Map (en realidad
son varios procesos Map corriendo
exactamente el mismo código en
paralelo en varias máquinas en el
cluster) recibe una porción de la
data de entrada llamada Split.
En este proceso se produce como
salida una lista de pares (clave1,
valor1).
Se puede ver como la data de entrada es
particionada en tres Splits (Split1, Spli2 y Split 3),
cada uno de los cuales va a un
proceso Map independiente (Map1, Map2 y
Map3) y que corre en paralelo con los otros, y que
además cada proceso Map, produce su propia
salida que depende de la data de entrada.
Aquí vemos que el proceso Map1 produce dos
pares de clave-valor, el Map2 otros dos pares y
el Map3 solo un par.
Una vez que el proceso Map ha terminado,
comienza el proceso de Shuffle.
Segundo Paso:
El Proceso de Suffle encarga de tomar TODOS los pares (clave1, valor1)
resultantes de todos los procesos Map ejecutados en paralelo, y
agruparlos por clave, es decir, el formato seria (clave1, lista(valor1,
valor2,…))
, con lo cual todos los valores que han resultado en los
procesos Map que tienen la clave1, se agrupan en un solo y único par en
donde se tiene la clave1, pero en donde los valores ahora son una lista de
TODOS los valores de esa clave, ahora agrupados en una estructura
semejante a una lista.
Tercer Paso:
El Proceso Reduce (no es solo uno, sino varios corriendo
exactamente el mismo código en paralelo en varias máquinas
del clúster) reciben los pares (clave1, lista(valor1.1, valor1.2,
…) y producen una nueva salida de pares (clave2, valor2).
Es decir, para todos los valores asociados a la clave1, se aplica
alguna función que procesa esos valores y se produce una
nueva salida (clave2, valor2). Luego todas las salidas de
los Reduce son unificadas en una sola
Ejemplo
El de contar palabras. Se tomará un
texto, el cual será particionado en
varios Splits o “pedazos de texto” y en
la Proceso de Map se separará este
texto en palabras y se generará como
salida por cada palabra, un par en
donde la clave será la palabra
encontrada, y el valor será el número 1.
Primer Paso:
Aplicando el Proceso de Map, consistirá en
particionar la entrada en palabras, y por cada
palabra generar un par cuya clave será la
palabra encontrada y el número 1 como el
valor, como se muestra a continuación:
Se
asume
que
se
tendrá
4
procesos Map y 2 procesos Reduce, y
que el texto a procesar será el siguiente:
“Caminante, son tus huellas
el camino y nada más;
caminante, no hay camino,
se hace camino al andar.”
En este caso la entrada se partirá en
4 Splits, uno para cada proceso Map:
Segundo Paso:
Luego el proceso de Shuffle; que se ejecuta cuando
todos los procesos Map han finalizado; se encargara
de agrupar todas las salidas de todos los
procesos Map y los agrupara por clave, este devolverá
en el valor una lista de unos (1) correspondientes a
todas las apariciones de la clave en todos los textos, y
separara esta data en dos grupos de pares, pues en
este ejemplo tendremos dos procesos de Reduce:
Como podemos ver en la figura anterior la
palabra caminante, luego del Shuffle, está en un par
en donde ella es la clave, y cuyo valor es una lista que
contiene el numero 1 dos veces.
Tercer Paso:
Finalmente, en la fase de Reduce, simplemente dejara la misma clave, que en este caso es
la palabra a contar, y como valor producirá la suma de la lista de los números 1 que recibió
como entrada, y las salidas de todos los procesos Reduce serán unificados en una sola salida:
Conclusión:
Como se puede ver el resultado que se obtuvo es un archivo que tiene por cada línea todas las palabras que
aparecían en el texto de entrada, y cuyo valor es la cantidad de veces que la misma aparecía en el texto.
Nótese por ejemplo como la palabra camino aparece 3 veces en el texto de entrada en varias líneas diferentes, y
como en la salida aparecen correctamente contadas todas sus apariciones.
Sí se desea hacer un programa MapReduce debes recordar que la clave es pensar sí la data de entrada que se
dispone, puede ser particionada, para procesar los Splits en paralelo y seleccionar correctamente cual función se
realizará en el Proceso de Map y cual en el Proceso de Reduce para que se produzca al final el resultado que se
espera.
https://elentornodehadoop.wordpress.com/
http://smarterworkspaces.kyocera.es/blog/diferencia-datos-estructurados-no-estructurados/
https://hadoop.apache.org/docs/r3.1.1/hadoop-project-dist/hadoop-common/SingleCluster.html
https://www.sinnexus.com/business_intelligence/datamining.aspx
https://blog.edx.org/aprender-ciencia-de-datos-eleccion-competitiva-o-mandatoetico?fbclid=IwAR3EB9LmEjn2PuL6q1XgXnUWXEOJmPoXMpHEpz2oSpITdGFij3tzAcZ2c0Y&track=blog&utm_campaign=nov142018%2Cblog&utm_medium=social&
utm_source%3Desp=facebook
http://smartbasegroup.com/introduccion-mapreduce/
Descargar