Banear

domingo, 18 de agosto de 2013

Big Data y Hadoop (HDFS + MapReduce)

Aunque el Big Data ya lleva unos años purulando, últimamente parece que empieza a expandirse cada vez más. Así que empezaremos a adentrarnos en él.

Big Data

Se trata de la acumulación/acceso, procesado y análisis de bestiales (del orden de petabytes) volúmenes de datos para obtener conclusiones. Podríamos decir, que nos sirve por ejemplo, para hacer análisis estadísticos donde el subconjunto de datos con el que trabajamos se acerca mucho al universo de datos existentes.

Conceptualmente, es algo muy poderoso ya que por un lado puede permitir:

- Anticiparse a catástrofes creando modelos de mayor fiabilidad
- Mejorar la calidad de vida (ciudades inteligentes -alumbrado inteligente-)

Pero por otra:

- Pérdida de privacidad
- Dar el 100% de confianza a los datos y dar por sentado que determinados hábitos siempre desembocan en el mismo comportamiento (me viene a la cabeza la película "Minority Report")
- Problemas de seguridad

Aunque no nos engañemos, si el BigData se está extendiendo, es por la tajada que le están sacando grandes empresas y gobiernos. Que por un lado benefician a los consumidores (por ejemplo en los seguros de automóvil que cada vez son más personalizados y por tanto más baratos para los buenos conductores), pero por otro tenemos cada vez menos privacidad y se presupondrán cada vez más aspectos de nuestro comportamiento.

También hay que tener en cuenta que esos enormes volúmenes de datos, deberían estar estructurados mínimamente (como seguramente los tengan ya Google, Facebook, Amazon, ...). Nosotros nos podemos crear crawlers para ir sacando información de las páginas (que hay unas cuantas, cada una hija de su padre y de su madre), pero está claro que va a ser claramente preferible que un usuario se registre en nuestro portal y que le vayamos pidiendo datos o simplemente vayamos registrando su actividad (qué tipo de productos compra, cuánto suele gastar, en qué épocas, que tipo de eventos le gusta, ....).

Hadoop

Consta de:

- Un sistema de ficheros distribuido (HDFS)
- Análisis de datos mediante MapReduce

Con lo cual tenemos un único sistema de ficheros que puede estar apuntando a ficheros de otras máquinas y un ánalisis que se puede paralelizar, minimizando los tiempos.

De momento, no hay distribución para windows (salvo que uses VMWare, Cygwin, lo típico) y como tampoco tengo nada en contra de Linux, pues en la próxima entrada explicaré como configurar y ejecutar Hadoop usando un ejemplo bastante gallego bajo Ubuntu (no porque vaya a intentar decir algo y no diga nada, sino porque realmente en el ejemplo nos centraremos en sacar unos datos que tienen que ver con Galicia).

Lo que no hay que perder de vista es que esto sólo es realmente útil si estamos trabajando con grandes volúmenes de datos (Big Data) ya que en otro caso, probablemente no valga la pena distribuirla. Aunque para hacer una prueba de Hadoop nos vale igual (abusando un poco de la notación) un fichero de 5Mb que mil de 5Pb.

jueves, 15 de agosto de 2013

Redes sociales y trabajo

Desde hace unos cuantos años, se viene hablando de que cada vez más los departamentos de RRHH se sirven de redes sociales y de otra información pública en la red para encontrar o descartar "perfiles".

Bastante frecuente es, que te alarmen sobre tus perfiles públicos en la red (como si no los tuvieses privados por no saberlo. Tranquilos, somos conscientes de qué los tenemos configurados como públicos). Como si con eso salvases la privacidad. Podéis echarle un ojo a estos enlaces:

y luego para sonreír un poco a estos otros:

http://obamaischeckingyouremail.tumblr.com/
http://prism.andrevv.com/

Aunque suele ser una buena forma de recabar rápidamente datos sobre el perfil del candidato (para completar o confirmar referencias, por ejemplo) hay que tener en cuenta algunos detalles de sentido común que a veces se obvian:

- En el mundo existen varias personas con el mismo nombre e incluso con otras coincidencias adicionales (como por ejemplo edad o ciudad). Alguno de esos perfiles "clones" podría dañar (o favorecer injustamente) el nuestro si quien está recabando información no es capaz de distinguirlos.

- Algunos de los perfiles encontrados pueden estar desactualizados (culpa mía).

- Intentar distinguir entre perfil personal y profesional. Puede que no compartamos puntos de vista respecto al candidato en sus opiniones vertidas por la red, pero no por ello debería descartarse, si su perfil profesional es válido. Una cosa es lo que comentas en la red libremente y otra distinta es como sabes que debes comportarte en un entorno laboral.

Personalmente, prefiero a un candidato transparente con el que no comparta un punto de vista personal (que probablemente sea irrelevante en un ambiente laboral) del que tenga interesante información profesional, que un candidato más opaco sin perfiles públicos que puede (o no) que tenga algo que ocultar, o que simplemente no quiera arriesgarse y prefiera mantenerse lo más hermético posible.

Tarde o temprano, por el estrés/presiones u otras circunstancias, el candidato tendrá un reacción y deberías conocerlo lo suficiente para saber si dicha reacción será:

- Positiva. Ejemplo: Compañero que sonríe y se lo toma de la mejor forma posible para mitigarlo
- Contenida. Ejemplo: Compañero que sopla, suspira, ...

- Agresiva (contra mobiliario de oficina). Ejemplo: Compañero que da golpes contra ratón, mesa, ...
- Derrotista. Ejemplo: Compañero que se cierra en banda ("es imposible", "no se puede", ...)
- Ególatra. Ejemplo: Típica de compañeros que reparten sus errores sobre el equipo pero que absorben individualmente los méritos del equipo

Particularmente, prefiero las actitudes PC que ADE.