Hadoop Apache (IV) – HBase

_hadoopelephant_rgb1
Y hoy:
hbase
Tipografía muy chunga

 

Hoy vamos a ver un componente Apache bastante interesante. Con este, podremos mantener distribuido un dataset en tablas columnares a través de múltiples Regiones (veremos que es) y múltiples Nodos de Hadoop.

 

¿Qué es HBase?

Cuando queremos almacenar cantidades ingentes de datos (Cientos de millones de tuplas), podemos optar por utilizar sistemas de bases de datos antiguos y esperar días u horas para obtener información de nuestros datos (si es que eso es posible) o por otra parte podemos optar por utilizar BigData y sus herramientas.

HBase nos permitirá manejar todos esos datos y tenerlos distribuidos a través de lo que denominan Regiones. Una región no es más que una partición tipo Nodo de Hadoop que se guarda en un servidor. La región aleatoria en la que se guardan los datos de una tabla se decide por nosotros, dándole un tamaño fijo a partir del cual la tabla debe distribuirse a través de las regiones.

HBase a su vez estará montando sobre HDFS de Hadoop, y podremos cargar programas en Java para realizar MapReduces personalizados.

El principal problema que tiene HBase es que no tiene un lenguaje de consulta intuitivo. Utiliza un lenguaje pseudo-javascript para crear tablas y realizar consultas.

Tiene muchas más peculiaridades, pero es redundar en lo redundado. Os dejo documentación sobre HBase en la que podemos encontrar instalación y configuración del mismo (ya sea standalone o distribuido).

 

Links

Up&Running de libro: http://hbase.apache.org/book/quickstart.html

Libro muy recomendado, donde encontraremos instalación, configuración y Tunning (esto es muy importante y viene bastante información): http://www.amazon.com/HBase-Administration-Cookbook-Yifeng-Jiang/dp/1849517142

No necesitaréis mucho más para trastear con esta tecnología.

 

dataisthenewoil

 

Hasta el siguiente post amig@s 🙂

Hadoop Apache (II) – MapReduce

Mapreduce
El efecto de “saltito” del elefante es demoledor

Hoy vamos a dar un repaso a la tecnología MapReduce, uno de sus dos componentes principales (HDFS y MapReduce). Lets Go!

1. ¿Qué es MapReduce?

Nos permite automatizar la paralelización y distribución, así como una tolerancia a fallos muy baja, herramientas para monitorizar y obtener el estado. Además es una clara abstracción para los programadores, y está escrito en Java.

MapReduce abstrae y libera todas las tareas de “limpieza” a los programadores, y pueden concentrarse simplemente en escribir las funciones Map y Reduce.

2. Fases Map y Reduce

2.1 Fase Map

Hadoop intenta asegurarse que los Mappers se ejecutan en nodos que mantienen una porción de los datos locales, para evitar tráfico en la red. Se ejecutan de manera paralela los Mappers, donde cada uno procesa una porción de los datos de entrada.

El Mapper lee los Datos en forma de pares clave/valor y muestra cero o más pares clave/valor:
map(clave_entrada,valor_entrada)->lista (clave, valor)

Mapper puede usar o ignorar completamente la clave de entrada, por ejemplo, un parón estándar es leer una línea de un archivo a la vez:

• La clave es el byte offset dentro del archivo del cual comienza la línea.
• El valor es el contenido de la línea en sí misma.
• Normalmente la clave se considera irrelevante.

Si no escribe nada en absoluto fuera, el output debe ser de la forma par clave/valor.

Ejemplo – Contar el número de Palabras:

Contar el número de veces que se encuentra una palabra en un documento con una gran
cantidad de palabras como Datos de entrada:

Map(input_key, input_value)
Foreach Word w in input_value:
Emit(w,1)

1
Datos de Entrada del Mapper

 

2
Datos de Salida del Mapper

 

2.2 Fase Reduce

Después de que acabe la fase de Map, todos los valores intermedios para una clave intermedia dada, son combinados juntos en una lista.

Esta lista es dada a un Reductor:
• Puede que que haya un solo Reductor o múltiples reductores.
• Todos los valores asociados con un clave intermedia en particular son garantizados de que irán al mismo Reductor.
• Las claves intermedias, y su lista de valores, son pasados al reductor ordenados por Clave
• Este paso se conoce como Shuffle and Sort.

Finalmente, el reductor devuelve cero o más como pares Clave/valor, donde serán escrito al HDFS. En la práctica, el Reductor normalmente devolverá un solo par clave/valor para cada clave introducida.

 

3
La Fase Map quedaría así 🙂

 

Ejemplo – Reductor Suma:

1. Función de reducción que nos contará el número de veces que aparece cada palabra
Reduce(output_key,intermediate_vals)
Set count = 0
Foreach v in intermediate_vals:
Count +=v
emit(output_key, count)

4
Datos de salida del reductor

 

Quedaría tal que así:

5
Vista del proceso Reductor

 

Una vista completa de toda la fase de MapReduce:

5
El proceso completo de Map Reduce

 

Hasta aquí la lección de hoy.

hadoop_coin

 

Os espero en el siguiente post amigos 🙂

Hadoop Apache (I) – Introducción y Esquema de la Configuración

_hadoopelephant_rgb1

Su logo es ese elefante amarillo, el juguete favorito del hijo de su creador original, Doug Cutting.

Este post pertenece a la serie de Hadoop Apache.

A continuación teneís el esquema que iré siguiendo de publicación de los Post:

HADOOP APACHE (I): Introducción y Esquema de la Configuración

HADOOP APACHE (II): MapReduce

HADOOP APACHE (III): Zookeeper

HADOOP APACHE (IV): HBase

HADOOP APACHE (V): Hive

Hoy vamos a dar un repaso a la tecnología Hadoop, donde veremos como funciona HDFS, uno de sus dos componentes principales(HDFS y MapReduce), y daremos los conceptos claves de todos los puntos de unión entre ambos componentes.

1. ¿Qué es Hadoop?

1.1 Definición

Es una tecnología que se emplea para el tratamiento de grandes volúmenes de información,a través de una configuración distribuída en muchas máquinas.Esto nos permite tener acceso a los datos mucho más rapido que con otros sistemas de gestión de datos.Utiliza HDFS para guardar los archivos en las máquinas,que veremos explicado a continuación.

1.2 Hadoop Distributed File System

Es el software encargado de almacenar datos en un Clúster. Los Datos son dividos en diferentes Bloques (como si fueran trozos que contienen un conjunto de datos) y distribuidos a través de los Nodos del Cluster.

Cada Bloque se puede replicar(clonar) muchas veces:
· Por defecto cada Bloque se replica tres veces.
· Las réplicas se almacenan en diferentes nodos.
· Esto nos asegura tanto la confiabilidad como la disponibilidad.

2. Conceptos básicos de HDFS

El sistema de archivos HDFS está escrito en Java, basado en Google GFS. Permite tener como sistemas de archivos nativos a Ext3, xfs…

Permite usar almacenamiento para cantidades de datos masivos, usando computadoras baratas y de baja gama.

HDFS trabaja mejor con archivos de poco tamaño, ya que a menudo vamos a tener millones o miles de millones de archivos. Cada archivo pesa sobre los 100Mb o más.

Los archivos en HDFS están escritos solo una vez, y no se permiten la escritura aleatoria en archivos.

Por otra parte HDFS está optimizado para grandes lecturas de archivos Streaming, a menudo son lecturas aleatorias.

3. ¿Cómo son almacenados los archivos?

Los archivos se dividen en Bloques. Los Datos son distribuidos a través de muchas máquinas cuando son cargados. Un mismo archivo puede tener Bloques diferentes  almacenados en distintas computadoras y esto se debe a que nos proporciona un procesamiento más eficiente para la operación MapReduce.

Los Bloques son replicados a través del mayor número de computadoras, conocidas como DataNodes. Por defecto, se hace una réplica con factor igual a 3. Por ejemplo un mismo Bloque puede estar en tres máquinas distintas.

El Nodo maestro se llamará NameNode y mantendrá la información de qué Bloques hacen un archivo, además de donde están localizados. A esto se le conoce como Metadata.

3.1 Cómo son almacenados los archivos: Ejemplo

NameNode: almacena solamente los Metadatos de los archivos

DataNode: almacena los Bloques actuales. Cada bloque se replica 3 veces en el cluster.

imagen1
El dataname
imagen2
Los Datanodes

Cliente lee un archivo: se comunica con el NameNode para determinar cuales son los bloques hacen un archive, y en cuales de los DataNodes se almacenan.Entonces se comunica directamente con el DataNode para leer los Datos.

4. Obteniendo datos Dentro y Fuera de HDFS

El API de Hadoop:
· Hadoop fs opera con datos en HDFS:
hadoop fs –copyFromLocal local_dir /hfs_dir

hadoop fs –copyToLocal /hdfs_dir local_dir

Proyectos del Ecosistema:
· Flume: recolecta datos de la generación de logs( WebSites, syslogs, STDOUT)
· Sqoop: extrae y/o inserta datos entre HDFS y Sistemas de Bases de Datos Relacionales
Herramientas de Business Intelligence.

5. Anatomía de un Clúster Hadoop

5.1 Los cinco demonios de Hadoop

NameNode: guarda los metadatos para el HDFS

NameNode secundario:
· Realiza las funciones de limpieza para el NameNode
· No es un backup del NameNodo principal

DataNode: Almacena los Bloques de Datos HDFS actuales

JobTracker: gestiona los Jobs de MapReduce y distribuye las tareas individuales.

TaskTracker: es responsable de instanciar y monitorizar los Map individuales y las tareas Reduce.

5.2 Configuración básica de un Clúster

 

imagen3
Esquema de la Configuración

 

Hasta aquí la lección de hoy. Nos vemos en el siguiente post amigos 🙂

Aplicaciones de Big Data que ayudan a crecer a las pymes

1438973016_444975_1438973188_noticia_normal

El Big Data es una de las tecnologías que están ayudando a crecer a muchas empresas. Vivimos en un momento donde tenemos un exceso de información, de infoxicación, en el que muchos de los datos que somos capaces de recoger no podemos aprovecharlos a posteriori al no saber o no tener capacidad para tratarlos. Vamos a ver siete aplicaciones de Big Data que ayudan a crecer a las pymes.

Las aplicaciones de Big Data nos ayudan a extraer información útil de diferentes fuentes que proporcionan a las empresas datos desestructurados. De esta forma la pyme puede definir mejor la estrategia de empresa, predecir las necesidades de nuestros clientes, etc. Pero para muchas empresas el primer paso antes de implantar este tipo de políticas sería hacerlo con otras que todavía no han puesto en marcha, como el CRM o el ERP que les proporcionarían un nivel de conocimiento de su negocio que para muchas sería suficiente.

Aplicaciones Big Data que ayudan a crecer a las pymes

La aplicación del Big Data está muy presente en muchas empresas, incluso sin que ellas sean conscientes de ello.

¿Pymes que aprovechan el Big Data para tomar decisiones? Siete ejemplos al alcance de todos

  • Un ejemplo de ello es Public Data, una aplicación de Google que ofrece de forma gráfica diferentes datos públicos a nivel mundial, europeo o de cada país. De esta forma se pueden incluir datos como el nivel de desempleo, salario mínimo, la penetración de la banda ancha y otros muchos. en la toma de decisiones de las empresas.
  • Otro ejemplo de la compañía del buscador es Consume Barometrer. Ésta ofrece datos de tendencias en el mercado de consumo, que pueden ser muy interesantes para que la política de ventas de nuestra empresa se adapte a dichas tendencias. Si lo combinamos con el uso del CRM las conclusiones que se pueden sacar son realmente interesantes.
  • Para finalizar con Google podríamos hablar de Google Analytics, la herramienta de análisis de tráfico web. Se dedica a analizar campañas de publicidad en el buscador y ayudar a las empresas analizando datos de varias fuentes, redes sociales…Supone una herramienta básica para explorar el comportamiento de los clientes potenciales de una empresa.
  • IBM Watson Analytics pensada para la pyme puesto que no precisa de un gran conocimiento en el tratamiento de datos. Su tecnología de lenguaje natural ayuda a las empresas a identificar problemas, reconocer patrones y obtener una perspectiva interesante para responder a preguntas clave y lograr con ello impulsar las ventas, cómo hacer que los empleados trabajen más felices o hacer sus ofertas más atractivas.
  • Tranzlogic es un servicio que trata de aprovechar los datos que se obtienen de las transacciones con tarjetas de crédito. Trabaja con comerciantes y sistemas de pago para extraer y analizar los datos de compras realizadas con tarjeta de crédito. Luego, esta información puede utilizarse para medir el rendimiento de las ventas, evaluar clientes y segmentos de clientes, mejorar promociones y programas de fidelización, lanzar campañas de marketing más eficaces, escribir mejores planes de negocio y realizar otras tareas que conducen a decisiones empresariales más inteligentes. Además no requiere de ninguna instalación por lo que su puesta en marcha es realmente rápida.
  • Mucha de la información que alimenta el Big Data lo proporcionan aplicaciones que ya utilizan las empresas. Un ejemplo es InsightSquared que conecta con soluciones como CRM, QuickBooks, Google Analytics, Zendesk, a recopilar datos y extraer información que se procesa automáticamente.
  • Pero para muchas empresas el problema precisamente está en obtener estos datos de sus clientes que les pueden ser de interés para poner en marcha soluciones de Big Data. Qualtrics es una solución online que permite a las pymes realizar encuestas o estudios para obtener información de calidad. Se enfoca sobre todo en obtener información del comportamiento del mercado, de los clientes y también de los empleados de una compañía.

Todos los datos se deben combinar con diferentes fuentes, tanto internas de la empresa como externas, para poder sacar conclusiones más generales. De nada sirve analizar nuestras ventas si no las comparamos con las de otras compañías similares a la nuestra. El comportamiento de nuestros clientes, las tendencias del mercado, cómo llegan los clientes hasta nosotros, etc. Y todo ello lo podemos combinar con datos de nuestro CRM, de nuestro software de gestión, etc. para tratar de tener un dibujo lo más completo posible del mercado y nuestra empresa.

De esta forma la toma de decisiones se facilita mucho, ya que en lugar de hacerlo en función de una intuición, se realiza sobre datos reales, lo que facilita el aprovechamiento de las oportunidades de negocio que pueden surgir en un momento concreto.

Big Data para Pymes

pymes

Se entiende por Big Data el almacenamiento, tratamiento y análisis de ingentes cantidades de datos gracias a infraestructuras o herramientas técnicas sumamente potentes y rápidas. De ahí que este término suela definirse o relacionarse con las llamadas tres V: volumen, velocidad y variedad. Incluso, hay quien habla de una cuarta V, la del valor que los datos pueden llegar a alcanzar en plena era de la información; y de una quinta, la de variabilidad por las múltiples interpretaciones que cabe hacer de la información disponible.

Para los gigantes de los negocios, aprender a sacar partido de toda la información que manejan, e incluso de la que manejaban inconscientemente, ha supuesto toda una revolución en la forma de entender el mercado y sus estrategias. Han aprendido, que analizando la información de que disponen pueden no sólo adoptar decisiones inteligentes para sus negocios que minimicen los riesgos implícitos, sino predecir el comportamiento de los mercados y consumidores, mejorar la imagen de su empresa, diseñar o rediseñar sus productos, saber cuál es el momento idóneo para lanzarlos al mercado o mejorar sus inversiones, entre otras ventajas.

Tanto es así, que no dudan de la rentabilidad de invertir en la infraestructura necesaria para el proceso de explotación de la información, en la creación de departamentos dedicados única y exclusivamente a analizar el potencial de esta información y en la contratación de los que ya llaman los profesionales del futuro, los “data scientist”.

Sin embargo, si bien es cierto que las técnicas de Big Data pueden llegar a ser altamente complejas y elaboradas, este concepto no es exclusivo de grandes empresas con fuerte capacidad de inversión. Quitémosle al concepto que acabamos de definir la primera de sus V características, la de volumen. Nos daremos cuenta de que es perfectamente trasladable y operativo en el ámbito de una pyme.

La mayoría de empresas, independientemente de su tamaño, tiene a su disposición más información de la que cree y, si no es así, podría obtenerla.

Información procedente de la navegación on line de sus clientes, de su comportamiento en los perfiles de red social de la empresa, de la interacción con ellos a través de los canales que se hayan implementado o, simplemente, de las propias transacciones realizadas. Estas son sólo algunas de las fuentes de donde poder extraerla.

Lógicamente, una pyme no maneja el mismo volumen de información que las grandes corporaciones pero eso no significa que la que maneja carezca de valor. Del mismo modo, este tipo de empresa no va a realizar este análisis a la misma velocidad, pero tampoco lo necesita: no avanzan al mismo ritmo.

¿Por qué no puede entonces una pyme poner en marcha sus estrategias de Big Data?

Es más, no sólo puede, casi puede decirse que debe ir aprendiendo a ponerlas en marcha, a manejarlas, pues son las nuevas reglas del juego. Más tarde o más temprano, tendrá que conocerlas y sacar partido de ellas para no ser excluida de la partida.

Dos son los grandes inconvenientes que hasta ahora se le han presentado a las pequeñas y medianas empresas para poder poner en marcha su pequeño Big Data. El primero de ellos, es la falta de recursos técnicos con los que llevar a cabo el almacenamiento y tratamiento de la información. Sin embargo, los proveedores están reaccionando y ya se encuentran en el mercado varias soluciones de almacenamiento de la información e inteligencia empresarial o Big Data a presupuesto pyme. Incluso, hay cierta información, como la relativa a la navegación web, que no requiere de una herramienta o infraestructura específica para ser analizada.

El segundo inconveniente es de carácter legal. ¿Cómo tratar esta información?, ¿Es legal este análisis de perfiles y comportamientos?, ¿Dañará mi reputación corporativa? Cualquier pyme adecuada a la normativa de protección de datos que trate la información de forma respetuosa con los principios que impone la normativa que protege este derecho podrá llevar a cabo estos tratamientos sin demasiada dificultad pero, por si acaso, puede que convenga llamar la atención sobre algunos aspectos de este tratamiento de datos:

– Si nuestro análisis se va a centrar en los comportamientos y preferencias personales, es decir, si vamos a elaborar perfiles, debemos ser transparentes con nuestros clientes informando de nuestro propósito de utilizar la información con dicha finalidad y con la intención última de mejorar nuestros servicios, y por supuesto, no podemos utilizarla para finalidades diferentes. No sólo es legalmente obligatorio informar del tratamiento que se va a llevar a cabo de la información personal sino que mejorará nuestra relación con el cliente, reforzando su confianza.

– Cuando contratemos servicios relacionados con el almacenamiento o tratamiento de la información, seamos diligentes a la hora de elegir de proveedor comprobando que cumple todos los requisitos necesarios para prevenir, en la medida de lo posible, cualquier pérdida o robo de la información de nuestra empresa que podría llegar a dañar nuestra reputación corporativa o poner en riesgo la continuidad de nuestros negocios.
Asimismo, comprobemos la ubicación geográfica del servidor donde se almacenarán los datos. Así podremos evitar la transferencia internacional de datos hacia países que no cuentan con un nivel de protección de la información adecuado y los correspondientes trámites ante la Agencia Española de Protección de Datos, o bien, adaptarnos y cumplir con ellos.

– Utilicemos toda la información de que disponemos y planteémonos si necesitamos más, pero no perdamos el norte. Demasiada información obstaculizará el tratamiento de la misma y vulnerará el principio de calidad de los datos, según el cual, sólo debemos recoger los datos pertinentes, adecuados y no excesivos en atención a la finalidad para la que son recogidos.

– Asimismo, es muy diferente analizar la información para mejorar nuestros negocios, la calidad de nuestros servicios o adaptar nuestra estrategia de mercado a cualquier fluctuación del mismo, que invadir la intimidad de nuestros clientes. No debemos olvidar que hay un aspecto ético en el tratamiento de la información de nuestros clientes que debemos respetar si no queremos perder su confianza.

– Por último, es sumamente importante distinguir que los datos personales no son lo realmente valioso de la información recogida, sino los gustos, preferencias, hábitos y patrones que ésta nos muestra.
La disociación o anonimización irreversible de la información es una alternativa muy recomendable, práctica y jurídicamente segura que nos permitirá manejar la información con mayor facilidad y conservarla de forma indefinida. Una correcta disociación de la información la excluirá del ámbito de aplicación de la normativa en materia de protección de datos.

Y tan importante como todo lo anterior, es pararse, pensar, hacerse las preguntas adecuadas, ir poco a poco mejorando los aspectos de nuestra empresa que consideremos deficientes y reevaluar la información obtenida en función de cada objetivo que nos propongamos. Una única interpretación no ofrece respuestas válidas a todas las preguntas de nuestra empresa.

Vía Microsoft

La batalla que libran los Gigantes son los Datos

“Lucha de Gigantes, convierte el aire en gas natural” cantaba el ya desaparecido Antonio Vega


Leyendo una entrada en SmartDataCollective de M. Cameron me doy cuenta de cómo se va consolidando en el mercado la idea que se proponía no hace mucho de que los datos son un activo más para las empresas de hoy en día. Más que un activo cualquiera, en el caso de los gigantes (Apple, Google, eBay/PayPal, Facebook, y unos poco unicornios más) ha resultado ser el Activo principal, el capital que define el valor de las compañías, un verdadero botín por el que pelear. Si no, véase lo que ocurrió con la adquisición de WhatsApp por parte de la compañía de Zuckerberg.

cortana-ios-android-siri-google-now-iphone-300x166

Nos cuenta Mark Cameron que Microsoft, Facebook, Apple y Google buscan, a través de la inteligencia artificial, hacer útiles nuestros datos en sus plataformas, alimentando a su vez sus inmensos data lakes y creando un auténtico cerebro virtual con el que entender ese universo que conforman los clientes, los productos y el mercado. El siguiente paso en esta batalla es conocer no ya lo que hemos hecho, dónde hemos estado o qué compramos en el pasado, sino qué vamos a hacer en el futuro. Y en esta tarea, que a simple vista parece ciencia ficción pero que ya casi está entre nosotros, asistentes personales virtuales como “M”, Google Now, Siri o Cortana son los agentes que van a hacerlo posible.

Así pues, la batalla que libran los grandes son los Datos. En cierto sentido también somos todos nosotros.

vía bigdata4success

Sigue leyendo