SPARK PARA DUMMIES
Spark, al igual que Hadoop, es bsicamente un marco
de desarrollo que proporciona una serie de plataformas interconectadas, sistemas
y estndares para llevar a cabo proyectos de Big Data.
Spark tambin es de cdigo abierto y pertenece a la Apache Software Foundation.
De cdigo abierto quiere decir que el cdigo puede ser utilizado libremente por
cualquier persona; aun ms: puede ser modificado por cualquier persona para
crear otras versiones dirigidas a resolver nuevas problemticas. Los
desarrolladores y las empresas que las producen, estn constantemente refinando
y actualizando los programas, aadiendo nuevas funcionalidades o mayor
eficiencia. Spark fue el proyecto de Apache ms participativo el ao pasado, y no
slo de Apache, sino de todas las aplicaciones de cdigo abierto de Big Data, con
ms de 500 colaboradores en ms de 200 organizaciones.
Segn los expertos, Spark es ms avanzado y ms reciente que Hadoop, y est
diseado para trabajar mediante el procesamiento de fragmentos de datos en
memoria. Esto significa que transfiere los datos de los discos duros fsicos a la
memoria del sistema, donde el procesamiento es mucho ms rpido (hasta 100
veces ms rpido en algunas operaciones).
La plataforma Spark est muy de moda, y lo utilizan muchas grandes empresas
para el almacenamiento y anlisis de enormes cantidades de datos multi-
petabytes, debido a su velocidad: el ao pasado, Spark alcanz un rcord mundial
al completar una prueba de clasificacin de 100 terabytes de datos en 23 minutos,
cuando el rcord anterior era de 71 minutos con Hadoop. Adems, es idneo para
aplicaciones de Machine Learning (Aprendizaje Automtico), una de las prcticas
de mayor crecimiento y ms emocionante dentro de las ciencias de la computacin
(ver post anterior).
Apache Spark est diseado desde sus inicios para ser fcil de instalar y usar
siempre que se tengan ciertos conocimientos de informtica- y para ser utilizado
en mltiples aplicaciones de negocio. Muchos proveedores ofrecen sus propias
versiones (al igual que Hadoop), orientados a industrias concretas,
configuraciones customizadas para proyectos y usos concretos, y servicios de
consultora para su implantacin y funcionamiento .
Spark utiliza la computacin en clster (grupos de mquinas unidas por una red
de alta capacidad, que funcionan como una gran mquina) para obtener una
mayor potencia de clculo y almacenamiento, lo cual se traduce en que puede
utilizar los recursos de muchos procesadores unidos entre s. Es una solucin
escalable, es decir, que si se necesita ms capacidad, slo se tienen que aadir
ms procesadores en el sistema. Con el almacenamiento distribuido, los grandes
ficheros de datos recogidos para el anlisis se almacenan en muchos discos duros
fsicos individuales ms pequeos, lo cual acelera las operaciones de
lectura/escritura, porque la cabeza que lee la informacin de los discos tiene
menos distancia fsica para desplazarse sobre la superficie del disco. Al igual que
con la potencia de procesamiento, se puede aadir ms capacidad de
almacenamiento cuando sea necesario y, adems, utiliza hardware comercial
(discos duros estndar) que mantiene bajos los costes de infraestructura.
A diferencia de Hadoop, Spark no viene con su propio sistema de archivos: en vez
de eso, se puede integrar con muchos sistemas de archivos incluyendo el de
Hadoop HDFS, MongoDB y el sistema S3 de Amazon. Otro elemento diferencial es
Spark Streaming, que permite que las aplicaciones que se desarrollen
realicen anlisis en streaming, datos en tiempo real, redes sociales, ficheros de log,
etc. En las industrias como el marketing, el anlisis en tiempo real proporciona
grandes ventajas; por ejemplo, personalizar los anuncios en base al
comportamiento real del usuario, en lugar de en el comportamiento histrico,
aumentando la posibilidad de obtener una compra.
Una breve introduccin de Apache Spark, el futuro del Big Data, que espero que
resulte til.
Estndar | Publicado en Analytics, Big Data, buisiness intelligence, Data
Science+, Hadoop, http://www.madridschoolofmarketing.es/formacion/area-
master/master-business-intelligence-y-big-data/, Machine Learning, Sin
categora, Spark | Etiquetado Analytics, Big Data, Business
Intelligence, Hadoop, Machine Learning, Spark | 0 Comentarios
07.21.15
por msmksocialmedia
HADOOP FOR DUMMIES
Hadoop es, hoy por hoy, el marco de desarrollo
establecido para implantaciones de Big Data. Se compone de un conjunto de
capacidades reales, escalables y automticas para gestionar el flujo de datos, y
convertir raw data (datos en bruto) en insight (valor).
Su creador fue Doug Cutting y lo don a Apache Software Foundation (organizacin
sin nimo de lucro creada para dar soporte a los desarrollos de Software). Su
nombre y el logo, se lo debe a la mascota de su hijo, un elefante de peluche
llamado Hadoop.
Surge en 2004 a partir de un White Paper de Google que describa su sistema de
ficheros. Doug no tuvo problema en implantarlo y mejorarlo.
Como ya hemos dicho en post anteriores, Hadoop cubre las necesidades bsicas
que tiene el Big Data: almacenamiento y procesado de datos. De ah, que est
basado en dos conceptos:
HDFS (Hadoop Distributed File System): es un sistema de
archivos distribuido, escalable y porttil.
MapReduce: es el modelo de programacin sencillo para dar
soporte a la computacin paralela.
El sistema distribuido de ficheros trabaja sobre grupos de computadoras,
organizadas en lo que se llama un cluster, puede incluir desde una mquina
(nodo), hasta 30.000 segn la web de Apache. Cada mquina puede tener varios
discos.
Hadoop funciona en modo cliente-servidor. Existe un nodo mster que se encarga
de la gestin del almacenamiento y procesado, es decir, de dnde est cada
fichero de datos, de enviar las rdenes de procesado de los datos (Jobs) y de
asegurar que todo queda procesado del modo ms eficiente posible.
Los grandes ficheros de datos de entrada se trocean en tamaos menores (64GB
128GB) y cada trozo se replica al menos tres veces en nodos distintos. As se
comienza el procesamiento en paralelo, y si alguno de los nodos falla, el mster
detecta el fallo y asigna el trabajo a otro nodo disponible.
MapReduce trabaja mediante algoritmos simples de clavevalor . La parte de
Map, asigna la clave a la informacin que estamos buscando. El ejemplo estrella de
los cursos de Hadoop es el algoritmo de contar palabras en un texto. La clave sera
cada palabra, y el valor las veces que aparece. Primero contaramos cada palabra,
siendo el resultado (palabra, 1), despus ordenaramos las palabras y finalmente,
en la fase Reduce, sumaramos las palabras que aparecen repetidas. Vemoslo con
un grfico:
Con este mtodo se ahorra tiempo de transferencia de ficheros, ya que el
almacenamiento y el procesado se realiza en el mismo sitio.
Hadoop trabaja en modo batch, es decir, ejecutando unos procesos tras otros.
Est optimizado para leer cada fichero entero, desde el principio hasta el final, por
ello est destinado a trabajar con pocos ficheros grandes en vez de con muchos
pequeos, porque lo carga en memoria y lo lee de una sola vez.
Por suerte, existe todo un ecosistema para trabajar con Hadoop, y no tener que
escribir todo el cdigo necesario para realizar la asignacin de ficheros, el
procesamiento, etc.
Veamos algunos de los componentes del zoo de Hadoop:
Eclipse: es un entorno de desarrollo integrado, donado por IBM a la comunidad
Apache. Agiliza enormemente el desarrollo de los programas Java.
Sqoop: nos permite conectarnos a cualquier base de datos relacional (que el
acceso mediante una conexin ODBC) e intercambiar datos con nuestro sistema de
ficheros HDFS. Es muy importante poder incorporar fcilmente datos de nuestras
bbdd (datawarehouse, ERPs, etc.) igualmente poder llevar fcilmente el resultado
de un clculo (scoring, segmentacin) a nuestras bases de datos.
Flume: nos permite recuperar informacin de sitios remotos. Mediante un agente
que se ejecuta en el lugar que se producen los datos (fichero de log, Tweeter)
recoge los datos y los importa en HDFS. Es solo de una direccin, no permite
exportar datos de HDFS a otras ubicaciones. Muy til para recuperar informacin
en tiempo real.
Hive: acta como la base de datos de Hadoop. Es un intrprete SQL MapReduce.
Traduce la query a programas Java que realicen los MapReduce. Esto permite
utilizar herramientas de Business Intelligence convencionales (que admitan
conexin ODBC) con los datos de HDFS.
Pig: para trabajar con MapReduce, es necesario programar, tener slidos
conocimientos de Java, saber cmo funciona MapReduce, conocer el problema a
resolver, escribir, probar y mantener el cdigo Para ello es muy beneficioso
disponer de un sistema ms sencillo, que nos abstraiga de la complejidad del
MapReduce. Para ello existe Pig, que facilita el flujo de datos de una manera ms
sencilla. Dispone de su propio lenguaje de programacin llamado Pig Latin.
Hbase: es una base de datos columnar que se ejecuta sobre HDFS. Puede
almacenar grandes cantidades de datos, y acceder a ellos muy rpidamente y
lleva bien el procesamiento incluso cuando hay datos dispersos. Un ejemplo de
base de datos columnar, es como si almacenramos los resultados de ftbol en
una tabla as:
Oozie: Acta como un planificador. Es un motor de workflows, que puede incluir
procesos MapReduce (varios, ya que los procesos MapReduce son simples y por lo
general, hay que encadenar varios para realizar los clculos), scripts de Pig, de
Hive, etc.
Zookeeper: alguien tena que cuidar de tanta fauna Zookeeper acta como
coordinador. Guarda toda la configuracin de los metadatos, realiza los bloqueos
pertinentes si dos procesos deben acceder al mismo fichero, guarda usuarios y
passwords para el acceso a los distintos sitos, etc.
Mahout: es una librera de algortimos de Machine Learning, escritos en Java. Qu
es Machine Learning? Un programa al que no hay que decirle qu debe hacer.
Dedicaremos un post posterior a habla de Machine Learning.
Despus de este ecosistema, ya podemos ponernos a utilizar Hadoop, sin
necesidad de ser expertos en Java os animis?
Estndar | Publicado en Big Data, Data
Science+, Hadoop, http://www.madridschoolofmarketing.es/formacion/area-
master/master-business-intelligence-y-big-data/ | Etiquetado algorithms, Big
Data, Business Intelligence, data mining, Data Scientist, Hadoop | 0 Comentarios