Cómo utilizar Hadoop de Apache para análisis predictivo
Hadoop es una plataforma de software libre de código abierto para la redacción y ejecución de aplicaciones que procesan una gran cantidad de datos para el análisis predictivo. Se permite un procesamiento paralelo distribuido de grandes conjuntos de datos generados a partir de diferentes fuentes. Esencialmente, es una poderosa herramienta para almacenar y procesar grandes volúmenes de datos.
Tiendas Hadoop cualquier tipo de datos, estructurados o no estructurados, de diferentes fuentes - y luego agregados que los datos en casi cualquier forma que desee. Hadoop maneja datos heterogéneos utilizando procesamiento paralelo distribuido - que hace que sea un marco muy eficiente para utilizar en software analítico se trata de datos grandes. No es extraño que algunas grandes empresas están adoptando Hadoop, incluyendo Facebook, Yahoo !, Google, IBM, Twitter y LinkedIn.
Antes de Hadoop, las empresas fueron incapaces de aprovechar los datos grandes, que no se analizó y casi inutilizables. El costo de almacenar los datos en una base de datos relacional de propiedad y crear un formato estructurado alrededor de ella no justifican los beneficios de analizar esos datos y hacer uso de ella.
Hadoop, por el contrario, está haciendo que la tarea sin problemas - a una fracción del costo - permitiendo a las empresas a encontrar información valiosa en los datos abundantes que han adquirido y están acumulando.
El poder de Hadoop radica en el manejo de diferentes tipos - de hecho, cualquier tipo - de los datos: texto, de voz, correos electrónicos, fotos, mensajes, tweets, lo que sea. Hadoop se encarga de la agregación de estos datos, en toda su variedad, y le ofrece la posibilidad de consultar todos los datos a su conveniencia.
Usted no tiene que construir un esquema antes de que pueda dar sentido a su de datos Hadoop permite consultar los datos en su formato original.
Además de manejar grandes cantidades de datos variados, Hadoop es tolerante a fallos, utilizando programas sencillos que manejan la programación del procesamiento distribuido en varios equipos. Estos programas pueden detectar fallos de hardware y desviar una tarea a otra máquina en funcionamiento. Esta disposición permite Hadoop para ofrecer alta disponibilidad, independientemente del fallo de hardware.
Hadoop utiliza dos componentes principales (subproyectos) para hacer su trabajo: MapReduce y del sistema de archivos distribuidos Hadoop. Los dos componentes trabajan cooperativamente:
Mapa reducido: Aplicación de Hadoop MapReduce de se basa en la investigación de Google en modelos de programación para procesar grandes conjuntos de datos dividiéndolos en pequeños bloques de tareas. MapReduce utiliza algoritmos distribuidos, en un grupo de equipos en un clúster, para procesar grandes conjuntos de datos. Se compone de dos funciones:
los Mapa () función que reside en el maestro nodo (equipo de la red). Se divide la consulta de entrada o tarea en subtareas más pequeñas, que luego distribuye a nodos de trabajo Ese proceso las tareas más pequeñas y pasan las respuestas de vuelta al nodo principal. Las subtareas se ejecutan en paralelo en varios equipos.
los Reducir () función recoge los resultados de todas las subtareas y los combina para producir un resultado final agregada - que regresa como la respuesta a la consulta grande originales.
Sistema de archivos distribuido Hadoop (HDFS): HDFS replica los bloques de datos que residen en otros equipos de su centro de datos (para asegurar la fiabilidad) y gestiona la transferencia de datos a las distintas partes de su sistema distribuido.
Considere la posibilidad de una base de datos de dos mil millones de personas, y suponga que desea calcular el número de amigos sociales de Mr. X y ordenarlas de acuerdo a su ubicación geográfica. Esa es una tarea difícil.
Los datos de dos mil millones de personas podrían ser originarios de muy diferentes fuentes tales como las redes sociales, correo electrónico las listas de direcciones de contactos, mensajes, tweets, historiales de navegación - y eso es sólo para los abridores. Hadoop puede agregar esta masa enorme, diversa de datos para que pueda investigar con una simple consulta.
Se podría utilizar las capacidades de programación MapReduce para resolver esta consulta. Definir Mapa y reducir los procedimientos hace que incluso este gran conjunto de datos manejable. El uso de las herramientas que ofrece el marco Hadoop, se crearía una aplicación MapReduce que haría el cálculo como dos subtareas:
Calcular el número medio de amigos sociales de Mr. X.
Organizar los amigos del Sr. X por ubicación geográfica.
Su programa de aplicación MapReduce correría estas subtareas en paralelo, gestionar la comunicación entre las subtareas, y reunir los resultados. Fuera de dos mil millones de personas, usted sabe que los amigos en línea del Sr. X son.
Hadoop ofrece una gama de Mapa Procesadores- cuál (s) que seleccione dependerá de su infraestructura.
Cada uno de sus procesadores se encargará de un cierto número de registros. Supongamos que cada procesador se encarga de un millón de registros de datos. Cada procesador ejecuta un procedimiento Mapa que produce varios registros de pares clave-valor dónde G (llave) es la ubicación geográfica de una persona (el país) y N (valor) es el número de contactos que la persona tiene.
Supongamos que cada procesador Mapa produce muchos pares de la forma , tales como los siguientes:
Procesador Mapa # 1: Procesador Mapa # 2: Procesador Mapa # 3: Procesador Mapa # 4: Procesador Mapa # 5:
Procesador Mapa # 6:
En la fase de Reducir, Hadoop asigna una tarea a un cierto número de procesadores: Ejecutar el procedimiento Reducir indicando los valores de las mismas claves para producir un resultado final. Para este ejemplo la implementación Reducir resume la cuenta de valores para cada tecla - ubicación geográfica. Así, después de la fase de Mapa, la Reducir fase produce lo siguiente:
------ ----
Claramente, el Sr. X es un chico popular - pero esto fue un ejemplo muy simple de cómo se puede utilizar MapReduce. Imagínese que usted está tratando con un gran conjunto de datos en la que desee realizar operaciones complejas, como la agrupación de miles de millones de documentos en los que la operación y los datos es demasiado grande para una sola máquina de manejar. Hadoop es la herramienta a considerar.