TÉSIS DE MAESTRÍA -...

53

Transcript of TÉSIS DE MAESTRÍA -...

UNIVERSIDAD DE GUADALAJARA

TECNOLOGÍAS DE INFORMACIÓN

TÉSIS DE MAESTRÍA

Defendida por

Emmanuel Barajas González

Diseño de una arquitectura para procesamiento

paralelo y distribuido de conjuntos másivos de

datos no estructurados para el proyecto de

Smarter Tra�c de CUCEA e IBM

Director de Tésis: Laura Torres

Defendida en, 2013

0.1 Agradecimientos

Contenidos

0.1 Agradecimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i

1 Abstract 11.1 Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2 Introducción 32.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.1.1 Objetivos Particulares . . . . . . . . . . . . . . . . . . . . . . 32.2 Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.3 Justi�cación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.4 Enfoque Metodológico . . . . . . . . . . . . . . . . . . . . . . . . . . 3

3 Estado del Arte 53.1 Arquitectura para el procesamiento masivo . . . . . . . . . . . . . . 6

3.1.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63.1.2 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.2 Métodos de procesamiento . . . . . . . . . . . . . . . . . . . . . . . . 113.2.1 Procesamiento Paralelo . . . . . . . . . . . . . . . . . . . . . 113.2.2 Procesamiento distribuído . . . . . . . . . . . . . . . . . . . . 13

3.3 Diferencias entre sistemas paralelos y distribuídos . . . . . . . . . . . 143.4 Tecnologías de bases de datos . . . . . . . . . . . . . . . . . . . . . . 16

3.4.1 Datos estructurados . . . . . . . . . . . . . . . . . . . . . . . 163.4.2 Datos no estructurados . . . . . . . . . . . . . . . . . . . . . . 173.4.3 Big Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.5 Tecnologías para trabajar con Big Data . . . . . . . . . . . . . . . . 193.5.1 MapReduce . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.5.2 Proyectos Relacionados . . . . . . . . . . . . . . . . . . . . . 20

3.6 IBM c©Smarter Planet . . . . . . . . . . . . . . . . . . . . . . . . . . 253.6.1 Smarter Cities . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4 De�nición del problema 294.1 Contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.2 Descripción del problema . . . . . . . . . . . . . . . . . . . . . . . . 314.3 Hipótesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334.4 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.4.1 Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . 344.4.2 Objetivos particulares . . . . . . . . . . . . . . . . . . . . . . 34

4.5 Justi�cación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344.6 Límites y alcances . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.7 Preguntas de investigación . . . . . . . . . . . . . . . . . . . . . . . . 36

iv Contenidos

5 Materiales y Métodos 39

A Appendix Example 41A.1 Appendix Example section . . . . . . . . . . . . . . . . . . . . . . . . 41

Bibliografía 43

Capítulo 1

Abstract

1.1 Abstract

En la actualidad las fuentes de datos y el ritmo al que trabajan sobrepasan lacapacidad de procesamiento tradicional por lo que dicha información terminaalmacenada o pasa por u �ltro de los sistemas estadísticos y solo una pequenaparte se usa en la generación de conocimiento. Es por eso que la necesidad dela creación de herramientas las cuales permitan explotar de manera más e�cientelas fuentes de datos es importante sobre todo para proyectos que manejan dichosvolúmenes masivos de datos. Para ello se describe el estudio e implementaciónde una arquitectura la cual es capaz de responder a esta necesidad generada porel proyecto de Smart Tra�c al usar el modelo de programación Map Reduce quedesarrolló Google c©mediante el cual es posible paralelizar y distribuir tareas avarios nodos interconectados que forman un cluster y así incrementa el poder decómputo disponible. Dicho modelo es aplicable en ambientes en los cuales se tienendiversas y masivas fuentes de información heterogéneos como lo es el proyecto antesmencionado por lo que se describe la integración e implementación de la solucióncon el uso de un cluster destinado para dicho propósito.

Nowadays the traditional processing power is not able to keep up with the rateat which the data sources are generating information and that's why such dataends up being stored or it is passed through a �lter of an statistic system andjust a small portion is used to generate new knowledge. That's why the need forthe creation of tools that allow the e�cient processing of such data sources growsin importance specially for projects that deal with massive volumes of data. Inorder to achieve that, the study and implementation of an architecture that is ableto ful�ll this requirement is described in this document and it also describes itsintegration with the Smarter tra�c project by using the Map Reduce programmingmodel created by Google c©. This programming model allows the developer toparallelize and distribute tasks among several nodes connected to a cluster and thisin turn increases the available overall processing power. Such model can be appliedto environments with highly diversi�ed, massive and heterogeneous data sourceswhich we can �nd in the previously mentioned tra�c project and this makes itsuitable to be implemented this way.

Palabras clave: big data, parallel, distributed, computing, hadoop , cluster,smarter cities, smarter tra�c, unstructured data, smarter tra�c, giraph

Capítulo 2

Introducción

Contenidos

2.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.1.1 Objetivos Particulares . . . . . . . . . . . . . . . . . . . . . . 3

2.2 Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.3 Justi�cación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.4 Enfoque Metodológico . . . . . . . . . . . . . . . . . . . . . . 3

2.1 Objetivos

Realizar un estudio, integración y desarrollo para la puesta a punto de una arqui-tectura la cual dé respuesta a la necesidad de procesamiento paralelo y distribuidode conjuntos masivos de datos no estructurados para ser utilizado como base delmanejo de información del proyecto Smart Tra�c de CUCEA e IBM

2.1.1 Objetivos Particulares

2.2 Motivación

2.3 Justi�cación

2.4 Enfoque Metodológico

El método elegido para la realización de esta investigación es el llamado estudiode caso porque dada la naturaleza del proyecto mismo se requiere poner foco enlos detalles del diseño y de la implementación así como obtener un profundo en-tendimiento de cada uno de los componentes y de las etapas necesarias para lograruna instalación exitosa. De forma adicional se requiere que la especi�cación de re-querimientos sea realizada con detalle y que el entorno utilizado se describa de formaexhaustiva.

Al tomar en cuenta las necesidades antes mencionadas podemos ir a la de�ncióndada por [Stake, 1999] y observar que en efecto un estudio de caso se ajusta al tipode proyecto que se pretende realizar y se pueden usar los resultados obtenidos de laprofunda comprensión y análisis de los elementos que lo componen para proveer lasrespuestas a las preguntas que se plantean.

4 Capítulo 2. Introducción

Plataforma de prueba: Utilizando la plataforma Elastic Cloud de Amazon c©secreará un cluster compuesto de varios servidores virtuales los cuales se usarán paraformar un cluster de Hadoop utilizando el Hadoop Distributed Filesystem como sis-tema de archivos distribuido. Una vez realizada la con�guración inicial, se instalaráGanglia como sistema de monitoreo. KarmaSphere c©se usará como entorno de tra-bajo para ejecutar y depurar el código que se usará para veri�car la funcionalidaddel cluster y tomar mediciones. (ver �gura 6)

Figura 2.1: Diagrama de procedimiento de implementación de la solución

Capítulo 3

Estado del Arte

Contenidos

3.1 Arquitectura para el procesamiento masivo . . . . . . . . . . 6

3.1.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.1.2 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.2 Métodos de procesamiento . . . . . . . . . . . . . . . . . . . . 11

3.2.1 Procesamiento Paralelo . . . . . . . . . . . . . . . . . . . . . 11

3.2.2 Procesamiento distribuído . . . . . . . . . . . . . . . . . . . . 13

3.3 Diferencias entre sistemas paralelos y distribuídos . . . . . 14

3.4 Tecnologías de bases de datos . . . . . . . . . . . . . . . . . . 16

3.4.1 Datos estructurados . . . . . . . . . . . . . . . . . . . . . . . 16

3.4.2 Datos no estructurados . . . . . . . . . . . . . . . . . . . . . 17

3.4.3 Big Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.5 Tecnologías para trabajar con Big Data . . . . . . . . . . . . 19

3.5.1 MapReduce . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.5.2 Proyectos Relacionados . . . . . . . . . . . . . . . . . . . . . 20

3.6 IBM c©Smarter Planet . . . . . . . . . . . . . . . . . . . . . . 25

3.6.1 Smarter Cities . . . . . . . . . . . . . . . . . . . . . . . . . . 26

Figura 3.1: Mapa de la literatura

6 Capítulo 3. Estado del Arte

A continuación se ponen en contexto las tecnologías involucradas en el desarrolloe implementación de soluciones las cuales tienen como objetivo el poner a disposi-ción de los desarrolladores el poder combinado de muchas computadoras individualestrabajando juntas buscando un mismo resultado. Cada una de ellas juega un rol fun-damental tanto en los principios teóricos que sirven como base de este trabajo comoen las tendencias que se divisan en esta innovador enfoque en la implementación declusters para el procesamiento de conjuntos masivos de datos no estructurados.

3.1 Arquitectura para el procesamiento masivo

Uno de los enfoques que se le dá a las soluciones propuestas para el procesamientode conjuntos masivos de datos no estructurados es el uso de clusters de sistemas loscuales pueden trabajar en conjunto aprovechando el poder de cómputo combinado decada uno de los nodos miembros del cluster. Para comenzar a construir dichas solu-ciones se deben de tomar algunas medidas en cuanto a la con�guración de hardwarey software que será utilizado. A continuación se presentan dichas consideracionesenfocadas al problema que nos atañe.

3.1.1 Hardware

La integración de múltiples equipos independientes en una sola entidad conocidacomo cluster es uno de las aproximaciones que se dá a la hora de construir solu-ciones para el procesamiento de conjuntos masivos de datos no estructurados. Altenerse una arquitectura de tipo scale-out la cual puede crecer en poder de proce-samiento al momento de requerirse y en respuesta a las necesidades de la aplicacióny que puede hacerlo prácticamente de manera inde�nida ya que no está limitadaa un sistema individual[Bakshi, 2012] ciertas consideraciones y decisiones deben detomarse referentes al tipo de hardware que se utilizará tanto para los servidoresque tomarán el rol de nodo en el cluster así como del sistema operativo sobre elcual estará corriendo el software de Hadoop y los protocolos apropiados para lacomunicación en red entre los nodos.

3.1.1.1 Detalles de los componentes de Hardware

Al referirse especí�camente del marco de trabajo estudiado en éste trabajo y que seráabordado a detalle más adelante se debe mencionar que Hadoop es un marco de tra-bajo para ejecutar aplicaciones en clusters grandes (llegando a miles de nodos) con-formados por nodos con hardware que se puede conseguir fácilmente [Apache, 2012];en otras palabras, un cluster de Hadoop se puede formar con hardware sin carac-terísticas especiales y ésto es gracias a que Hadoop corre sobre Java c©y las máquinasvirtuales de Java c©han sido escritas y adaptadas para una gran variedad de sistemasoperativos y ambientes por lo que la capa de hardware sobre la cual están corriendolos programas se encuentra oculta para los desarrolladores a menos que éstos deci-dan acceder directamente a los servicios del sistema operativo (ésto por supuesto

3.1. Arquitectura para el procesamiento masivo 7

tiene como consecuencia que el programa se volverá dependiente de la plataformasobre la cual fué escrito).

De acuerdo con el equipo de soporte de Cloudera [Loddengaard, 2012] Hadoopy considerando los 4 posible tipos de nodos en un cluster de Hadoop (los cualesson descritos a detalle en la sección 3.4.2.1), se tiene que para mantener un clusterbalanceado las siguientes con�guraciones se pueden tomar en cuenta:Para los datanodes/tasktrackers

• 4 discos de 1 TB en con�guración JBOD [Rouse, 2005]

• 2 CPUs quad core de al menos 2-2.5 GHz

• 16-24 GB de RAM

• Ethernet gigabit

Para los nodos con el rol de (namenode/jobtracker) se el equipo de soporte deCloudera Hadoop recomienda utilizar hardware que puede ser considerado superioral del resto de los nodos ya que la carga de trabajo que éste tipo de nodos debesoportar es mayor.

• Discos en con�guración RAID de clase enterprise[Rouse, 2007]

• 1 GB de RAM son por cada millon de bloques en el �lesystem. 32 GB deRAM son su�cientes para sostener 100 nodos con el rol de datanode.

Es válido sin embargo construir un cluster de Hadoop utilizando hardware heterogé-neo siempre y cuando éste sea capaz de ejecutar la máquina virtual de Java OracleJDK 1.6 siendo mínima versión soportada la 1.6.0_8 [Cloudera, 2012a].

3.1.2 Software

3.1.2.1 Sistemas Operativos

Al ser Hadoop un proyecto Open Source, es posible descargar los archivos fuente ycompilarlos para se ejecutados prácticamente sobre cualquier plataforma basada enUnix sin embargo los paquetes pre-compilados y la documentación existente se hanenfocado en unas cuantas plataformas de Linux las cuales son las más popularesya sea por su facilidad de uso ó por la estabilidad que proveé. La siguiente es unalista de los sistemas operativos soportados por la version 3 de Cloudera Hadoop[Cloudera, 2012b]:

• Red Hat Enterprise Linux 5 y CentOS 5 en sus versiones de 32 y 64 bits

• SUSE Linux Enterprise Server 11

• Ubuntu 10.04 y 10.10 en sus versiones de 32 y 64 bits

8 Capítulo 3. Estado del Arte

Aunque las plataformas de producción soportadas son sólo las mencionadas anteri-ormente, es posible encontrar instaladores de Hadoop para Windows y Mac OS Xsin embargo cada distribución y versión de sistema operativo tiene su historial deestabilidad por lo que éste tambien es un factor a considerar cuando se está eligiendola plataforma sobre la cual se instalará el cluster de Hadoop.

3.1.2.2 Protocolos que intervienen

La interconección de los nodos que componen un cluster de Hadoop se dá mediantelas tecnologías de redes existentes de Ethernet. Típicamente un cluster se compone

Figura 3.2: Con�guración típica de un cluster de Hadoop en dos Racks

de nodos los cuales se encuentran relativamente cerca y en un datacenter dichosnodos se organizan en racks. Es una buena práctica que cada rack tenga un switchel cual sirve para interconectar todos los nodos contenidos en el y la comunicaciónentre un rack y otro se dá a través de un switch que sirve para centralizar todas lascomunicaciones inter-rack. A nivel de sistema operativo la comunicación entre unnodo y otro se dá mediante el protocolo SSH, mientras que la comunicación propiade Hadoop se lleva a cabo usando protocolos propios del marco de trabajo. Todoésto implementado sobre el protocolo de red TCP/IP.

3.1.2.3 Protocolo TCP/IP

El protocolo TCP/IP es en realidad un compendio de muchos protocolos los cualestienen como objetivo interconectar muchas redes en una red más grande y es poreso que se habla acerca de una red de redes. Dicho protocolo fue desarrollado por eldepartamento de la defensa de los Estados Unidos a �nales de los 1970 y principiosde 1980 y fue diseñado de tal manera que fuera robusto y capaz de auto-recuperarseante la falla de cualquiera de los nodos que componen la red [Gilbert, 1995]. De todoslos protocolos que forman parte la suite TCP/IP dos sobresalen por su importanciay son éstos los que le dan su nombre:

3.1. Arquitectura para el procesamiento masivo 9

• IP (Internet Protocol) : Es el que permite mover los datos de un nodo a otro.En su versión IPv4, una secuencia de 4 octetos son usados para determinar eldestino de los paquetes.

• TCP (Transfer Control Protocol) : Es responsable de asegurar que los paquetesse entreguen a su destino de manera correcta. Este protocolo implementamétodos de detección de error que permiten iniciar re-transmisiones en casode que se detecte que un paquete no llegó a su destino hasta que se cumpladicho objetivo.

En su version 4, el protocolo TCP/IP tiene un espacio de direccionamiento de 32bits; esto es que cada direccion asignada bajo éste protocolo es una cadena de 32bits separada en 4 octetos que van del 0 al 255. Por ejemplo

192.168.1.100

Al momento de su creación el protocolo en su version 4 fué más que su�cientepara proveer los servicios necesarios y considerando el tamaño de su cadena dedireccionamiento un total de 232 sistemas pueden estar conectados al mismo tiempoen la red, sin embargo al aumentar el numero de dispositivos con capacidades deconexión y al acercarse al límite de direccionamientos se comenzaron a desarrollaralternativas para resolver el problema y un primer acercamiento se dió con laimplementación de NAT (Network Address Translation) la cual permite ocultar unaserie de direcciones IP privadas detrás de una única dirección pública, sin embargomás problemas se derivaron como resultado de ésta técnica al hacerse di�cil poderacceder a un sistema en especí�co detrás de una NAT. Con la introducción de lasiguiente versión del protocolo IPv6 muchas de las limitaciones inherentes a suantecesor son superadas comenzando con el número teórico de sistemas conectados ala red el cual es 2128 gracias a que la cadena de direcciones tiene una longitud de 128bits y lo cual permite que no solo los sistemas tradicionales sean considerados paraocupar una conexión si no también equipos móviles cómo teléfonos inteligentes ytables ó teléfonos IP. Dichas direcciones son expresadas en grupos de 16 bits escritoscomo cuatro dígitos hexadecimales y separados por dos puntos [Feyrer, 2001].Por ejemplo

fe70::1b0:c3ff:fda5:b9f4

Al momento de la realización de éste trabajo, la implementación de IPv6 sigueestando fuera del contexto de proyectos y de redes locales en las cuales IPv4 continúasiendo su�ciente para proveer de una dirección que permite alcanzar a un sistemaen particular conectado a la red y que a su vez se ve bene�ciado por una de lascaracterísticas fundamentales de este protocolo de red : la capacidad de recuperarseen el caso de perder uno de los caminos para la transmisión de un paquete y labúsqueda de un nuevo camino para completar dicha transmisión [Gilbert, 1995] sin

10 Capítulo 3. Estado del Arte

embargo los sistemas operativos que soportan Hadoop ya cuentan con soporte paraIPv6 por lo que en un futuro será mas común observar direcciones IPv6 en losarchivos de con�guración de los mismos.

3.1.2.4 Protocolo Secure Shell (ssh)

En un cluster compuesto por muchos nodos los cuales son sistemas independientescorriendo sus propios sistemas operativos y con recursos locales se requiere de mecan-ismos los cuales permitan cierto nivel de monitoreo del estado actual de cluster.Dichos mecanismos pueden ir desde lo más simple como lo es hacer pings periódica-mente a cada una de las direcciones IP de los nodos para comprobar que los mismoscontinúan encendidos hasta sistemas más avanzados los cuales pueden ejecutar co-mandos directamente sobre cada uno de los nodos y colectar información relevantecon mucho nivel de detalle del estado del sistema. En ambientes grandes de cientoso miles de nodos ésta tarea se encuentra automatizada y supervisada por uno o másnodos centrales los cuales requiren tener un mecanismo de acceso a cada uno de losnodos el cual le permita sin mayor di�cultad la ejecución de comandos y la recolec-ción de información. Una de las técnicas utilizadas para alcanzar dicho propósitoes la utilización del protocolo SSH para la conexión inter-nodo. El protocolo SSHSecure Shell Protocol es un protocolo que permite el acceso remoto y otros serviciosde red a través de una red insegura. Consiste de 3 componentes principales :

• El protocolo de la capa de transporte (SSH-TRANS) es el encargado de proveerla autenticación del servidor, con�dencialidad e integridad. Usualmente corresobre el protocolo TCP/IP.

• El protocolo de autenticación de usuario (SSH-USERAUTH) se encarga de laautenticación de un sistema cliente con el servidor. Éste corre sobre la capade transporte.

• El protocolo de conexión (SSH-CONNECT) multiplexa el túnel encripado envarios canales lógicos. Éste a su vez corre sobre el protocolo de autenticación.

Para establecer una conexión segura entre un cliente y un servidor, éste últimodebe tener una llave de servidor o host key. Es posible que un servidor pueda tenermúltiples llaves generadas con diferentes algoritmos. La llave es usada durante laetapa de intercambio de llaves para veri�car que el cliente que está solicitando laconexión está hablando con el servidor correcto. Para poder lograr ésto, el clientedebe tener conocimiento previo de las llaves del servidor al cual desea conectarse[Ylonen, 2006]. La arquitectura basada en llaves permite la construcción de sistemascompuestos de muchos nodos individuales y habilita la intercomunicación seguraentre ellos siempre y cuando todos los miembros del cluster conozcan las llaves delos demás miembros y así de ésta manera muchos otros servicios como la ejecuciónremota de comandos, la transferencia segura de archivos y la redirección de lassalidas de servidores grá�cos como X11 son posibles.

3.2. Métodos de procesamiento 11

Servicio Demonio PuertoHDFS NameNode 50070HDFS DataNode 50075HDFS Secondary Namenode 50090HDFS Checkpoint node 50105MapReduce JobTracker 50030MapReduce TaskTrackers 50060

Tabla 3.1: Puertos default de Hadoop

3.1.2.5 Protocolos propios de Hadoop

En un cluster de Hadoop hay que tener en cuenta que la comunicación entre losnodos se lleva a cabo sobre las conexiones de red exclusivamente tanto para realizarlas operaciones de procesamiento de información como en las operaciones propiasdel sistema de archivos distribuidos HDFS. Los demonios de Hadoop abren puertosnecesarios para sostener dichas comunicaciones y todos trabajan sobre el protocoloTCP. Sobre éste protocolo se exponen servicios tanto de comunicación interna deHadoop (calendarización de trabajos de Hadoop, copia de bloques del sistema dearchivos HDFS, etc..) como servicios de monitoreo a través del protocolo HTTP.La comunicación interna de los servicios de Hadoop los cuales están implementadosen Java se lleva a cabo usando protocolos creados para dicho propósito. La mayorparte de la comunicación ocurre usando el protocolo Hadoop IPC InterProcess

Protocol el cual requiere que el programador de�na para cada clase que se deseaque se comunique con otro proceso su propia rutina de serialización lo cual facilitael trabajo de búsqueda y resolución de defectos [Apache.org, 2009]. El protocoloHTTP es usado en la comunicación entre el secondarynamenode y el namenodeasí como con los tasktrackers enviando tareas de mapeado hacia los reducers.Finalmente para la transferencia de datos en HDFS se utiliza protocolo de socketssimple[Zeyliger, 2009]. En la tabla 3.1 se muestran los puertos abiertos por losservicios principales de Hadoop. Todos los demonios de Hadoop exponen algo deinformación a través del protocolo HTTP.

Los puntos arriba descritos son la base para la construcción de clusters de múlti-ples nodos para el procesamiento de conjuntos masivos de datos. Sobre dichos clus-ters se pueden implementar diversas estrategias para llevar a cabo el procesamientocomo se describe a continuación.

3.2 Métodos de procesamiento

3.2.1 Procesamiento Paralelo

En los modelos de programación tradicionales un programa se compone de instruc-ciones de entrada/salida, modi�cadores de �ujo de ejecución y operadores los cuales

12 Capítulo 3. Estado del Arte

tienen diversos efectos sobre los tipos de datos que el lenguaje de programaciónque se seleccionó soporta. Los problemas que se pretenden resolver con un pro-grama secuencial deben separarse en una serie discreta de instrucciones. Un factorcomún de este tipo de programas es que se tiene un sólo camino o serie de pasoslos cuales se ejecutan uno después de otro y no se procede a la siguiente instruccióna menos que la anterior se complete por lo que se habla de computación secuen-cial.Por otro lado, la computación en paralelo se describe como "la capacidad deutilizar multiples recursos computacionales de manera simultánea para la resoluciónde un problema"[Barney, 2012]. En este modelo de programación se tiene la capaci-dad de ejecutar las instrucciones en múltiples CPU's. Dichas instrucciones resultande la separación del problema en partes discretas las cuales tienen la característicade ejecutarse de forma concurrente.

Figura 3.3: Flujos de ejecución

En el año de 1958 se sentaron las bases para todo el trabajo futuro alrededor de lacomputación en paralelo con una discusión que se llevó a cabo por los investigadoresde IBM c©John Cocke y Daniel Slotnick acerca del uso del paralelismo en cálculosnuméricos[Wilson, 1994] y las investigaciones al respecto continuaron así como lasimplementaciones de sistemas basadas en este principio, tal y como el Multics, elcual lo desarrollaron los laboratorios Honeywell[Wilson, 1994] en 1969 y el cual es unsistema multiprocesador simétrico capaz de correr 8 procesos en paralelo. De manerasimilar la teoría acerca de la computación concurrente continuó gracias al trabajode personas como Edsger Dijkstra cuyas contribuciones a la computación paralelasigue tomandose como la base necesaria para resolver la concurrencia y manejar laszonas críticas [Pacheco, 2011] de los programas diseñados para ser ejecutados enparalelo.

En la actualidad aún a pesar de que los programas no se hacen de maneraexplícita con un modelo de ejecución en paralelo, existen implementaciones de bajonivel agregadas a la construcción de los microprocesadores, las cuales le permitenreacomodar las instrucciones que van a ser ejecutadas de tal manera que se ordenanen grupos que se ejecutan en paralelo sin alterar el resultado �nal del programa.

3.2. Métodos de procesamiento 13

Sistemas en tiempo real los cuales requieren reaccionar ante eventos del mundofísico que ocurren sin previo aviso y a velocidades altas y al mismo tiempo que otravariable que esté siendo monitoreada como los sensores que controlan la activación delas bolsas de aire de los automoviles se implementan con modelos de programaciónlos cuales permiten procesar todas esas señales al mismo tiempo y reaccionar deforma adecuada cuando es necesario hacerlo.

Al alcanzar el límite de miniaturización de los componentes de los microproce-sadores debido a los efectos de la discipación de calor cuando se ronda la escala de15-20nm la solución que presentan los fabricantes de semiconductores es cada vezuna mayor cantidad de núcleos de procesamiento en un sólo chip. De esta maneraaunque un procesador por sí mismo no es más rápido que uno anterior, éste procesamás instrucciones al mismo tiempo por lo que el efecto aparente es una mayor ve-locidad. Ésta tecnología está presente con regularidad en los nuevos dispositivos, loque facilita el �orecimiento de técnicas y lenguajes de programación paralela talescomo CUDA de nvidia c©al poner a disposición dichas capacidades a cada vez máspersonas.

La técnica de ejecutar varias tareas al mismo tiempo permite acelerar la ejecuciónglobal de un programa, sin embargo el alcance de dicha técnica se ve limitado a lascapacidades del sistema en el cual se lleva a cabo la parelelización por lo que paraextender sus capacidades es necesario implementarlo en muchos sistemas individ-uales, cada uno con sus propios recursos pero de manera sincronizada y coordinada.La siguiente sección trata acerca de esta adición a la estrategia global presentadaen este trabajo.

3.2.2 Procesamiento distribuído

En un ambiente de computación distribuida, sistemas independientes se presentanal usuario como si fueran una sola computadora y se pone a su disposicion todoslos recursos que son compartidos desde dichos sistemas. Los sistemas distribuidossurgieron como una forma de optimizar el poder de procesamiento de las computa-doras individuales que comenzaron a ser más comunes y más poderosas a partir dela decada de los 80 cuando se volvió más barato tener dos computadoras que com-binadas tenian una mejor relación precio/desempeño que un procesador el doblede rápido. Dicho de otra manera, una computadora personal no es rival para unMainframe en terminos de poder de procesamiento, sin embargo en la actualidadse construyen clusters de decenas de miles de computadoras personales que com-binadas logran velocidades de procesamiento medidas en millones de instruccionespor segundo que son físicamente inalcanzables por cualquier Mainframe.

Existe una línea delgada entre la de�nición de un sistema distribuido y un sis-tema paralelo pero a grandes rasgos se dice que un sistema distribuido se formacuando múltiples actores independientes interconectados por una red trabajan enconjunto [Tanenbaum and van Steen, 2002], mientras que en un sistema en paralelose presentan procesos que se ejecutan de manera concurrente para la resolución deun problema[Schreiner, 2006]. El desarrollo e implementación de dicho tipo de sis-

14 Capítulo 3. Estado del Arte

temas está difundido en el ambiente tecnológico actual y se encuentran proyectoscorriendo en cientos de miles de computadoras alrededor del mundo como es el casode BOINC (The Berkeley Open Ingrastructure for Network Computing) el cual per-mite que usuarios alrededor del mundo donen de forma voluntaria tiempo y recursosde procesamiento de sus computadoras para realizar cálculos que se utilizan paradiversos tipos de proyectos construidos sobre ésta plataforma.

Dichos proyectos son variados en su área de aplicacion y van desde matemáti-cas, criptografía, salud, clima, astronomía y astrofísica pero todos con un factoren común: la necesidad de tiempo y poder de procesamiento es elevada y realizarlos cálculos que se necesitan para obtener información útil de los datos generadosen una sola computadora o incluso en un servidor grande no es una opción viableporque el tiempo necesario se eleva al orden de años; la solución que se presenta conel modelo de cómputo distribuido se basa en el principio de "divide y vencerás".

Algunos de estos proyectos tienen fuentes de datos que los generan a un ritmoalto sólo quedan almacenados en espera de su turno para ser procesados. Dichospaquetes de datos se separan en paquetes más pequeños que se transmiten por unared con facilidad cuyo destino son las computadoras personales que se registran paraformar parte de dicho proyecto. En las computadoras corre un pequeño programaque funciona como cliente y que tiene la con�guración necesaria para enviar y recibirpaquetes hacia y desde los servidores centrales del proyecto. Una vez que un clienterecibe un nuevo paquete, éste se encarga de procesarlo y de regresarlo al servidoruna vez que está listo. El servidor como paso �nal se encarga de juntar todos losresultados enviados desde todos sus clientes y es así como un paquete grande seprocesa en poco tiempo.

Todo lo anterior es posible gracias al desarrollo de redes y protocolos de comu-nicaciones cada vez más rápidas y con�ables así como a los avances en algoritmosque hacen posible compartir recursos que están �sica y geográ�camente separadospero que trabajan juntos en la búsqueda de un resultado.

3.3 Diferencias entre sistemas paralelos y distribuídos

De acuerdo con Riesen [Riesen et al., 1998] se pueden denotar las diferencias entresistemas paralelos y distribuidos si se clasi�can y caracterizan ciertos aspectos delos mismos:

• Recursos : En un sistema distribuido compuesto de estaciones de trabajoindependientes se puede dar el caso en que algunas de ellas se encuentren enestado inactivo y por lo tanto sus recursos no se están utilizando, mientrasque en un sistema paralelo todos los recursos del mismo son usados parala resolución de un problema. Mientras que en un sistema distribuido losrecursos pueden ser compartidos con otras aplicaciones, en un sistema paralelono existen los recursos sub-utilizados.

• Administración de recursos : En los sistemas distribuidos la asignación y ad-ministración de procesos se encuentra generalmente oculta al usuario �nal,

3.3. Diferencias entre sistemas paralelos y distribuídos 15

mientras que en un sistema paralelo la administración de recursos y la dis-tribución de la carga de trabajo es inherente al algoritmo que se está ejecu-tando.

• Funcionalidad : Los nodos dedicados a un sistema distribuido generalmenteexperimentan una sobrecarga al tener que asignar recursos tanto para el al-goritmo que se está ejecutando como para interactuar con el usuario al seréstos máquinas independientes ejecutando otra serie de tareas mientras quela funcionalidad de los nodos en un sistema paralelo se limita a solo aquellasnecesarias para la realización de la tarea del sistema paralelo.

• Usuarios por nodo : Dependiendo del tipo de sistema operativo instalado enun nodo que forma parte de un sistema distribuido, es posible que uno omás usuarios tengan que ser atendidos de forma interactiva a la par de larealización de las tareas del sistema distribuido mientras que en un sistemaparalelo muchos nodos están dedicados a un usuario único y la interacción conlos mismos se realiza a través de mensajes enviados desde un nodo cuya tareaes precisamente esa.

• Procesos por nodo : Un nodo en un sistema distribuido debe manejar múltiplesprocesos la mayoría de los cuales no tienen que ver con el proceso que se estáejecutando mientras que los nodos en un sistema paralelo pueden optimizarsepara sólo ejecutar los procesos necesarios para la ejecución de la tarea.

• Paralelismo : En un sistema distribuido varios programas pueden ser ejecuta-dos al mismo tiempo en diferentes nodos y todos formando parte de un mismoproceso más grande. Un sistema paralelo la granularidad de la distribuciónde tareas es mucho mayor y la frecuencia de comunicación entre los nodostambién se incrementa.

• Scheduler : Los procesos individuales de una aplicación paralela que corre enun sistema distribuido están condicionados a las porciones de tiempo asignadaspor los schedulers de los sistemas operativos locales por lo que experimentande latencia el los mensajes que se usan para la comunicacón entre los nodosmientras que en un sistema paralelo la comunicación entre los nodos ocurreen un intervalo regular por lo que se pueden ejecutar los procesos de formaconcurrente.

• Ubicación de los servicios : Los recursos en un sistema distribuido son mostra-dos como si estuvieran presentes localmente aunque solo algunos de los nodostengan acceso local a los recursos de almacenamiento, redes o algun otro mien-tras que todos los nodos en un sistema paralelo son uniformes y los recursosson siempre remotos

16 Capítulo 3. Estado del Arte

3.4 Tecnologías de bases de datos

El desarrollo de los sistemas de almacenamiento y administración de datos se puedeobservar en la línea de tiempo publicada por [Moore, 2012] la cual muestra cómodesde la aparición de los medios como las tarjetas perforadas y después las cintasmagnéticas a �nales de los años 60 se comenzaron a desarrollar modelos de datos loscuales proveían de una estructura con una base matemática y los cuales permitíandotar de capacidades administrativas y de consulta a aquellos primitivos mane-jadores de datos poniendo como ejemplo el modelo jerárquico surgido a principiosde la década de 1970 y que resultó ser muy exitoso y ampliamente utilizado. En esamisma década se desarrolló en los centros de investigación de IBM c©el modelo que ala larga resultaría la base de muchos de los gestores de bases de datos que se utilizanhoy en día llamado modelo relacional y los lenguajes de consulta y programaciónque lo acompañan como SQL. En la década de 1980 se continuó con el desarrollode sistemas de bases de datos implementándolos en el universo de las computadoraspersonales con productos como DBASE y PARADOX que también resultaron seraltamente exitosos. Sin embargo con la diseminación de las computadoras person-ales en cada vez más ámbitos de la industria y de los hogares en la década de los 90se comenzaron a generar las necesidades de tener sistemas gestores de bases de datoscon mayor poder y mayores capacidades. Visto en retrospectiva, dichas necesidadescrecientes no sólo fueron consecuencia del desarrollo de computadoras más veloces sino que se trataba del preámbulo de lo que después se conoció como la explosión delos datos durante la cual los sistemas tradicionales que manejan datos estructuradoscomenzaron a tener problemas manejando los volúmenes y los tipos de datos asícomo el ritmo al cual se generan los mismos.

Existen diversas formas de clasi�car los datos que se manejan en sistemas com-putacionales. Si se toma como punto de referencia la estructura propia del dato setiene entonces que surgen dos clasi�caciones generales de los datos : estructuradosy no estructurados.

3.4.1 Datos estructurados

De acuerdo con [Weglarz, 2004] los datos estructurados son todos aquellos quetienen una composición reforzada a tipos de datos atómicos y son manejadospor tecnologías que permiten realizar consultas y reportes contra dichos tipos dedatos y las relaciones que se crean a través de los valores de columnas llamadasclaves. Dicho de otra manera, los datos estructurados son todos aquellos loscuales son descritos e identi�cados [PCMAG.com, 2012] por descriptores tambiénllamados metadata y que residen en campos �jos dentro de un archivo o registro.[Maslakowski and Butcher, 2001] de�ne a una base de datos relacional como unabase de datos conformada por �las y columnas que se relacionan entre sí. Dichasrelaciones están basadas en valores clave contenidos en una de las columnas. Éstemodelo fue desarrollado por E. F. Codd en los años 70 y al momento de su prop-uesta representó un cambio radical al modelo de archivos jerárquicos utilizados para

3.4. Tecnologías de bases de datos 17

la implementación de las bases de datos en aquel entonces. A partir de ese momentoy hasta mediados de la década del 2000 las bases de datos relacionales dominaronel universo de las tecnologías de almacenamiento de datos estructurados.

3.4.2 Datos no estructurados

El hecho de clasi�car un tipo determinado de datos en alguna de las dos categoríasantes mencionadas se basa en determinar si la forma en que internamente se orga-niza y se reconoce un patrón o no. Depende del contexto en el que se hace dichaclasi�cación los ejemplos que se dan acerca de uno u otro tipo de datos son variadospor lo que a continuación se presentan dos que son reconocibles con facilidad aún enun entorno multidisciplinario. El ejemplo más representativo de los tipos de datosestructurados son las bases de datos de tipo SQL (Structured Query Language) enlas cuales los datos se guardan con un orden especí�co el cual facilita las operacionesque se realizan sobre ellos.

Cuando se desea agregar más datos, dicha captura debe cumplir ciertas reglas yse valida que todo dato que se introduce cumple con los requisitos de la estructuraa la cuales ingresa. Por otro lado, los datos no estructurados son aquellos en loscuales no se reconoce un patrón o una estructura aparente como un correo elec-trónico o una hoja de cálculo. Tales tipos de datos se consideran no estructuradosporque a pesar de que el formato de un correo electrónico tiene ciertas secciones,el contenido mismo del correo no tiene ningún orden establecido. Otros tipos dedatos considerados no estructurados incluyen las imágenes u objetos constituidospor mapas de bits y todo tipo de archivo de texto[Asanovic et al., 2006]. En unageneralización más grande, los datos no estructurados son generados por las per-sonas y para utilizarse por personas y que según un estudio publicado en 1998 porMerryl Lynch[Shilakes and Tylman, 1998] constituyen hasta el 80% del total de losdatos en las empresas.

El buscar algún sentido en conjuntos de datos no estructurados es un campo deestudio en el cual la inteligencia arti�cial y la minería de datos encuentran retosinteresantes y los avances hechos al respecto proveen de fuentes de informacion queantes no eran consideradas de valor.

3.4.3 Big Data

El término Big Data toma fuerza desde la mitad de la década del 2000 cuando losvolúmenes de datos que se generaron empezaron a exceder la capacidad de los sis-temas existentes para lograr procesarlos. Algunos presentan tiempos no aceptablesy otros no favorecen el proceso en lo absoluto.

Las fuentes de datos disponibles a su vez se incrementan, lo que reduce el costoy el esfuerzo para capturar toda clase de información en tiempo real. Desde in-formación de posicionamiento con las capacidades GPS hoy en día comunes en losdispositivos móviles como smart phones y cámaras digitales, sensores colocados entodos los ambientes del planeta los cuales de forma constante reportan informa-

18 Capítulo 3. Estado del Arte

ción como presión atmosférica, la temperatura, composicion, velocidad y otras car-acterísticas del agua en los oceanos[Drlaney and Barga, 2009] ó las inmensas can-tidades de datos generados por los nuevos instrumentos de observación espacialque utilizan tecnología digital como elLarge Synoptic Survey Telescope (LSST) elcual se estima que generará más datos durante su primer año de operaciones (locual se traduce en arededor de 1.28 petabytes) que cualquier otro telescopio en lahistoria[Goodman and Wong, 2009].

Los hoy abundantes sitios y portales de contenido multimedia (música, imágenes,videos) gracias a los cuales en la actualidad existen servicios de streaming que per-miten la reproducción de dicho contenido, se toma como ejemplo más cercano alas últimas tecnologías de interconexión en internet, la información generada porlas personas en las redes sociales muestra un crecimiento similar gracias a que eldesarrollo en los lenguajes y técnicas de programación para sitios Web facilita laactualización de contenido de manera dinámica. Al ser tan diversas las fuentes que

Figura 3.4: Explosión en la generación de datos - Grá�ca tomada del reporte grá�coThe 2011 IDC Digital Universe patrocinado por EMC c©

generan conjuntos de datos de tal magnitud, al término de big data se le asocia conlos datos no estructurados y aunado al fenómeno de la explosión en la generación dedatos se presenta la tendencia a extraer respuestas a preguntas al analizar conjun-tos de datos considerados big data mediante la aplicación de técnicas como businessanalytics y data mining y son las herramientas clásicas creadas para dichos propósi-tos las cuales no son capaces de entregar resultados a un costo razonable ademásdel hecho de que la transformación y manipulación de los datos para facilitar suprocesamiento por dichas herramientas involucra una perdida en el contenido delos mismos. Al trabajar de manera directa sobre el conjunto original se obtienenrespuestas más con�ables.

La tendencia actual consiste en tener un mayor número de fuentes de datos queson más accesibles y la reducción de costos en el almacenamiento masivo se vuelveuna necesidad primordial el desarrollo de las tecnologías que permitan trabajar deforma e�ciente con dichos conjuntos de datos y así obtener informacion útil que

3.5. Tecnologías para trabajar con Big Data 19

antes no era rentable hacerlo.

3.5 Tecnologías para trabajar con Big Data

Diversos enfoques se han tomado para poder abordar el desafío de procesar BigDatapara obtener información relevante que ayude en la toma de decisiones de negocios.A continuación se describe una de tales tecnologías desarrolladas con tal objetivopero es importante señalar que no se trata de la única existente aunque a lo largode los años desde su propuesta se ha popularizado su implementación al grado decontar con empresas especializadas en la realización de proyectos basados en dichatécnica así como empresas como IBM c©la cual ofrece incluso un producto comercialbasado en ella. De la similar manera no todos los problemas son resueltos con mayore�ciencia o menor tiempo al implementar soluciones basadas en ésta tecnología por loque se debe tener en mente que es una más de las posibles soluciones a los problemasde datos actuales.

3.5.1 MapReduce

Con el advenimiento de la era de la big data surgió la necesidad de encontrar méto-dos alternativos para procesar grandes volúmenes de datos en un tiempo y costorazonables y como resultado de tal búsqueda de soluciones surgio la idea de MapRe-

duce la cual se de�ne como una manera simpli�cada para procesar datos en clustersgrandes en el paper publicado[Dean and Ghemawat, 2004] por Google c©y en la cualse basa toda una familia de algoritmos y modelos de programación cuyo objetivo esaprovechar aspectos del computo paralelo y datos distribuidos y así dar respuestaal requerimiento mencionado.

Se basa en los conceptos de map y reduce presentes en lenguajes funcionalescomo Lisp en el cual un map toma como entrada una lista de valores a losque aplica una funci« para despues ser combinados mediante una operaciónbinaria por un reduce. El modelo de progamación trabaja con el uso de paresde llave/valor y dos funciones : map y reduce. Dichas funciones en esencia sede�nen por el usuario como requisito para respetar una forma establecida porel marco de trabajo. Map toma uno de esos pares de llave/valor y da comoresultado un conjunto de pares llave/valor llamados intermedios los cuales seagrupan por la misma llave para después pasar a la función Reduce que se encargade recibir un par llave/valor y un conjunto de valores asociados a él y da comoresultado otro conjunto de valores (normalmente dicho conjunto sólo contiene unelemento). En la implementación del modelo de programación descrito de formagrá�ca en la Figura 3 los datos son primero divididos en M piezas de 16MB a64MB y lanza multiples copias del programa en un cluster de maquinas. Unode dichos programas toma el rol de Master y cada uno de los nodos restantes sellama worker. La cantidad de tareas a realizar es divida en M tareas de Map y R

tareas de Reduce cada una de las cuales se realizará por uno de los nodos del cluster.

20 Capítulo 3. Estado del Arte

Figura 3.5: Secuencia de ejecución con MapReduce[Dean and Ghemawat, 2004]

Los nodos a los que se les asigna una tarea Map toman como entrada una de laspiezas en las que se divide el conjunto de datos inicial y se basa en dicha entradade pares llave/valor a la función Map de�nida por el usuario la cual genera paresintermedios también compuestos por llave/valor y los guarda en su memoria paraserializarlos en forma de archivos en su disco local. Es en esta etapa cuando segeneran las R particiones a ser utilizadas más adelante. La ubicación de dichosarchivos se conoce por el nodo Master y es este quien se encarga de enviarlos alos nodos con rol de Reduce quien a su vez considera los archivos intermedios y losordena con el uso de la llave de cada par llave/valor.Los reducers también se encargan de ejecutar la función Reduce de�nida por elusuario al iterar sobre su entrada y por cada llave diferente llama a la función conla lista de valores asociados. Cuando todas las tareas de map y todas las tareas dereduce terminan, el nodo master se encarga de noti�car al usuario.

Depende la naturaleza del problema a resolver es posible que la implementaciónsobre el modelo de programación de MapReduce resulta ser más o menos complejaque al utilizar otro modelo, sin embargo, dadas las ventajas que ofrece y la simplici-dad del mismo, cada vez más soluciones comerciales se construyen al demostrar suefectividad.

3.5.2 Proyectos Relacionados

3.5.2.1 Hadoop

La introducción del modelo de programación MapReduce que presenta Google c©enel 2004 despertó un enorme interés en la comunidad Open Source y no tomó mu-cho para que las implementaciones del mismo modelo disponibles para los usuarios

3.5. Tecnologías para trabajar con Big Data 21

comenzaran a surgir. En el 2005 Yahoo c©inició una de tales implementaciones ala cual llamó Hadoop (Hadoop era el nombre de un juguete de uno de los hijos deDough Cutting quien es el arquitecto que diseñó la solución) y el proyecto se lanzócomo Open Source en el 2007. A pesar de que se basa en la idea original del modelode programación de Google c©, Hadoop evolucionó hasta convertirse en toda unaplataforma para el desarrollo y administración de programas en paralelo y cuentacon su proprio sistema de archivos distribuidos llamado HDFS, una forma de mane-jar la distribución de tales programas en varios nodos de un cluster y una manerade aceptar la salida de todos los nodos para consolidarlos en una única respuestapara el usuario[Woods, 2011].

Hadoop sigue �el el paradigma de MapReduce tal como se presentó al principiopor Google c©[Dean and Ghemawat, 2004] y su arquitectura al momento de laimplementación se describe como sigue : Se tiene un nodo en el cluster que sedesignó comoMaster y se tienen varios Slaves se designa elMaster como JobTrackery cada uno de los Slaves se llama TaskTracker. El JobTracker es el punto deentrada y se encarga de recibir las tareas y de distribuirlas, mientras que los Task-Trackers se encargan de realizar el trabajo ya sea en la fase deMap ó en la de Reduce.

3.5.2.2 HDFS (Hadoop Distributed FileSystem)

En conjunto con Hadoop trabaja el sistema de archivos distribuido HDFS el cualestá diseñado para almacenar archivos grandes, con frecuencia vistos en el entornode Big Data, a lo largo de múltiples nodos en un cluster. En la actualidad no seespeci�ca el tamaño máximo de archivo para un sistema de HDFS como se puedeobservar en la tabla 3.2. Cada nodo miembro del cluster reserva cierta parte de su al-macenamiento local y lo hace disponible al cluster de Hadoop. Al accesar el sistemade archivos HDFS éste es mostrado como una estructura jerárquica de directoriosy archivos tradicional y no importa si los archivos se encuentran o no localmenteen el nodo, HDFS se encarga de realizar todas las operaciones de transferencia dedatos para garantizar que todos los archivos son accesibles siempre incluso si uno omás de los nodos del cluster no se encuentran disponibles en ese momento graciasa las políticas de replicación que pueden ser con�guradas y que permiten mantenermúltiples copias de los datos para tener alta disponibilidad de los mismos. HDFSexpone funciones básicas de sistema de archivos y está apegado al modelo de (writeonce, read many) presente en aplicaciones con necesidades de procesamiento altas enlas que los datos son escritos una sola vez pero se requiere de leerlos constantementepara realizar operaciones sobre ellos[Borthakur, 2007].Adicional a las operaciones básicas de manejo de archivos, HDFS provee de capaci-dades de replicación de información con las cuales se pueden tener múltiples copiasde un bloque en diferentes nodos con el objetivo de proveer un nivel más de disponi-bilidad de los datos anticipando una falla del Hardware (no olvidar que Hadoop estádiseñado con la premisa de que una falla de uno de los nodos del cluster es inminenteal estar trabajando con equipos que no son de nivel Enterprise. Otra característica

22 Capítulo 3. Estado del Arte

Nombre del Filesystem Sistema Operativo Tamaño máximo de archivoFAT16 MSDOS V2 4GBFAT32 Windows 95 4GBHPFS OS/2 4GBNTFS Windows NT 16EBHFS+ Mac OS 8EBUFS2 FreeBSD 512GB a 32PBext2 Linux 16GB a 2TBext3 Linux 16GB a 2TBReiserFS3 Linux 8TBReiserFS4 Linux ?XFS IRIX 9EBJFS AIX 8EBVxFS SVR4.0 16EBZFS Solaris 10 1YBHDFS Hadoop ?

Tabla 3.2: Comparación de sistemas de archivos y tamaños máximos de archivo[Wirzenius et al., 2004]

interesante de HDFS es la implementación de cuotas en los directorios con lo cualse puede controlar el número y el tamaño total de archivos que se almacenan enun directorio en particular y si se considera que un cluster de Hadoop es utilizadopara procesar datos provenientes de múltiples fuentes las cuales pueden bien serproyectos individuales entonces el nivel de control que tiene el administrador delcluster le permite saber exactamente cuanta información pertenece a cada uno deellos y si se requiere incrementar dicho tamaño o no basado en el consumo previo.Similar a Hadoop, HDFS tiene una arquitectura de Master/Slave. Se denomina elnodo Master como Namenode y los Slaves se llaman Datanodes. Todas las tareasreferentes al manejo de los archivos son controladas por el Namenode y se coordinacon el resto de los nodos al usar una interface de Remote Call Procedure la cual lepermite ejecutar funciones remotas en cada uno de los demás nodos.

La lista de empresas privadas e instituciones de todo tipo que implementansoluciones basadas en Hadoop para obtener bene�cios al procesar Big Data sigueen crecimiento se contabilizan hasta 167 en el registro que se lleva en el sitio deHadoop[Apache.org, 2012] (al 13 de octubre de 2012) y que incluye a las dos princi-pales y más grandes redes sociales como son Facebook c©y Twitter c©. Ésta lista esuna prueba más del éxito del modelo en el tratamiento de la naturaleza y volúmende los datos en la actualidad.

3.5.2.3 Cloudera

Cuando Hadoop surge bajo el esquema de Open Source éste también heredó lascaracterísticas inherentes a todo proyecto que se declara como tal, sin embargo dichos

3.5. Tecnologías para trabajar con Big Data 23

proyectos son desarrollados en ocasiones por equipos de voluntarios y aunque estánorganizados y tienen un modelo sistemático de desarrollo de software mediante elcual publican cambios y mejoras de forma constante, en general quien decide usar unproyecto Open Source debe estar consciente del nivel de soporte que se encuentra, elcual se limita en ocasiones a un blog en línea ó a lo que se obtiene al escribir correos demanera directa a los desarrolladores. Ésto por supuesto no es aceptable en ambientesde grandes empresas que no necesariamente tienen un departamento de Investigacióny Desarrollo que se dedica a construir soluciones basadas en proyectos Open Source.Es aquí donde se genera un nicho de oportunidad para empresas como Cloudera c©lascuales se dedican a implementar soluciones basadas en Hadoop para empresas y nosólo se entregan programas o sistemas que aprovechan la paralelización si no tambiénse diseña toda una estructura de soporte que se construye alrededor de dicha soluciónpara estar a la altura de las necesidades de categoría Enterprise.

Cloudera Hadoop está casi totalmente apegado a la versión original de Hadooppublicada por Apache c©y a diferencia de BigInsights de IBM c©ésta si utiliza HDFScomo sistema de archivos distribuido. Adicional a las características ofrecidas porHadoop, Cloudera proveé de seguridad, alta disponibilidad e integración con solu-ciones tanto de hardware como de software ya existentes. Las versiones ofrecidaspor Cloudera incluyen tanto versiones gratuitas como versiones con característicasEnterprise las cuales tienen un costo y generalmente incluyen un paquete de ser-vicios. Cloudera c©publica de manera periódica paquetes de Hadoop los cuales soninstalables y capaces de proveer todas las capacidades del mismo, además proveende documentación, educación, videos y en general un nivel de soporte incluso parausuarios no Enterprise lo cual la convierte en una de las distribuciones Hadoop conmayor popularidad.

3.5.2.4 IBM Big Insights

IBM ha entrado también en el área de analitycs for big data al reconocer el potencialque tiene el poder proveer de la capacidad para procesar dichos datos que en otrascircunstancias son considerados inútiles. Es cierto, sin embargo, que el nivel actualde adopción de Hadoop queda muy lejos del nivel que tienen soluciones enfocadas adatos estructurados y ésto responde al hecho de que Hadoop sigue siendo consideradouna tecnología nueva por lo que no hay aún muchos programadores que hayanempezado a migrar sus algoritmos para adaptarlos al estilo deMapReduce. De formasimilar, las grandes empresas no se pueden dar el lujo de implementar sistemas loscuales no son capaces de garantizar que estarán operacionales todo el tiempo yque son capaces de tolerar fallas y sobre todo que se identi�can puntos simples defallo como lo es el hecho de que la metadata en un sistema de archivos HDFS seencuentra en un solo punto y la recuperación en caso de fallo de este nodo es larga ydifícil. IBM c©tomó en cuenta todos esos puntos débiles de Hadoop y desarrolló unasolucion basada en Hadoop que al mismo tiempo proveé características de calidadde nivel Enterprise: IBM InfoSphere BigInsights. Los dos objetivos principales dedicha solución son [Zikopoulos et al., 2012]:

24 Capítulo 3. Estado del Arte

• Entregar una plataforma de Hadoop la cual está mejorada para un ambi-ente Enterprise con características de alta disponibilidad, escalabilidad, per-formance y facilidad de uso.

• Reducir el tiempo en el que se espera obtener valor de la solución al proveer deambientes y herramientas de desarrollo para construir aplicaciones analíticasavanzadas que sean útiles para trabajar con BigData

Además de proveer de un instalador automatizado que también facilita la tarea decon�guración de todo el ambiente de Hadoop, BigInsights mejora las característicasde calidad de Hadoop al utilizar GPFS c©General Parallel FileSystem como sistemade archivos en lugar de usar HDFS. GPFS c©tiene un largo historial en el mundo dela computación de alto rendimiento y está presente en supercomputadoras instal-adas tanto en instituciones de investigación como agencias del gobierno gracias a suestabilidad y con�abilidad. Dicho sistema de archivos fué originalmente desarrolladopara trabajar en ambientes SAN en el que todos los nodos del cluster compartenun mismo sistema de almacenamiento, sin embargo un cluster de Hadoop trabajade manera diferente al tener cada nodo su propio almacenamiento por lo que setuvo que adaptar GPFS c©para trabajar de esta manera y como resultado se creóGPFS-SNC (Shared Nothing Cluster) y de ésta manera se puede proveer la con�a-bilidad necesaria para crear aplicaciones basadas en Hadoop que son críticas paralas empresas.

Figura 3.6: Ejemplo de un cluster GPFS-SNC[Zikopoulos et al., 2012]

3.5.2.5 Giraph

Conforme pasa el tiempo hay áreas del conocimiento que se siguen especializandoaprovechando los desarrollos en la tecnología que suceden constantemente y queproveen de alternativas a las técnicas tradicionales de resolución de problemas. Tales el caso de las operaciones con grafos y los recientes desarrollos en Hadoop quepermiten trabajar con ellos.

3.6. IBM c©Smarter Planet 25

Un grafo es la representación de un conjunto de objetos a los cuales se les llamavértices y en donde algunos de esos vértices están conectados entre sí por aristaslas cuales pueden ser unidireccionales ó direccionales. Muchos problemas del mundopueden ser expresados a través de ésta representación pero como resultado dichosgrafos pueden llegar a tener millones de componentes y éstos tener millones de conex-iones entre ellos. Schelter mencionó en [Schelter, 2012] que el grafo que representalas relaciones sociales presentes en Facebook en el 2011 llegaba a 700 millones deusuarios con 68 mil millones de conexiones entre ellos.Desde su aparición en el 2006 Hadoop ha sido considerado como una alternativa paragenerar algoritmos que puedan aprovechar el potencial de poder de computación quese puede alcanzar con el mismo, sin embargo ciertos algoritmos son muy complica-dos de expresar en el modelo MapReduce y los resultados fueron programas pocomantenibles y poco e�cientes aún para los estándares de un programa MapReduce.El siguiente paso lo dió Google c©al desarrollar un sistema para el procesamiento degrafos a gran escala el cual llamó Pregel y el cual proveé de una API la cual permiteprogramar utilizando conceptos de grafos tales como vértices y aristas y está basadoen el modelo de ejecución BSP Bulk Synchronous Parallel.En este modelo de ejecución cada vértice es es invocado en un paso de ejecución lla-mado superstep y puede recalcular sus valores internos así como mandar mensajesa sus vértices adyacentes. Giraph es la implementación open source de Pregel quecorre sobre una infraestructura de Hadoop y cuya principal característica es que lasoperaciones ocurren en memoria por lo que son mucho más rápida que un algoritmoequivalente implementado en MapReduce tradicional. En Giraph, los vértices sonseparados en grupos y asignados a nodos en un cluster cada uno de los cuales es lla-mado worker. Un nodo maestro llamado master se encarga de coordinar el trabajode los trabajadores y los trabajadores se encargan de invocar cada vértice asignadoy de comunicarse con los demás. Se tiene un tercer rol llamado Zookeeper el cual asu vez es un módulo de Hadoop y permite sincronizar todos los trabajos lanzadosy manejar un sistema de puntos de chequeo mediante los cuales se puede continuarun cálculo interrumpido sin tener que comenzar desde el principio. Los programasescritos usando la API de Giraph no implementan una función de reduce por lo queel tiempo invertido en leer los archivos intermedios que son usados como entrada delos reducers no existe y es grácias a ésto que los tiempos de ejecución son menores.Como se puede observar, ésta especialización de Hadoop es útil siempre que un prob-lema pueda ser expresado en términos de vértices y los problemas relacionados congrafos (e indirectamente problemas relacionados con mapas y trayectorias) puedenser implementados más fácilmente de ésta manera.

3.6 IBM c©Smarter Planet

IBM c©se ha caracterizado por aceptar retos y proyectos los cuales tengan el po-tencial de generar el conocimiento, los inventos y las experiencias necesarias paracambiar paradigmas y servir de parteaguas del estado actual de la tecnología. Lo

26 Capítulo 3. Estado del Arte

hizo en el pasado con DeepBlue y más recientemente con Watson siendo éstos dosejemplos que lograron mucha difusión en los medios debido a que ambos enfocaronsus esfuerzos en competir contra humanos y al �nal ambos lograron superar a susrivales por amplio margen.En noviembre del 2008 durante una conferencia ante el consejo de relaciones exteri-ores en la ciudad de Nueva York el en aquel entonces CEO de IBM Sam Palmisanoexpuso lo que sería la estrategia de IBM durante la segunda década de este siglo ymediante la cual literalmente se espera cambiar la manera en que el mundo funciona.Éstas son las 3 razones que estan impulsando dicho cambio [IBM, 2008] :

• Primera, el mundo se esta volviendo instrumentalizado. Se esperaba que parael año 2010 hubiera un billón de transistores por humano costando cada unouna decima de millón de centavo. Todos los sistemas del planeta estaríansiendo monitoreados con sensores.

• Segunda, el mundo se esta volviendo interconectado. En un mundo instru-mentalizado, todos los sistemas y objetos tienen la capacidad de hablar entreellos y de generar información.

• Tercera, todas las cosas se estan volviendo más inteligentes. El poder de proce-samiento existente permite convertir montañas de información en inteligenciaque puede ser puesta en acción.

En el 2010 se desa�ó a los expertos de IBM a desarrollar soluciones basadas en la�losofía de implementar un planeta inteligente mediante sistemas inteligentes. Seiscaracterísticas rigen a dichas soluciones:

• Convertir información en información valiosa.

• Llevar a cabo las operaciones de las empresas de manera e�ciente y efectiva.

• Incrementar la agilidad.

• Conectar y capacitar a las personas

• Facilitar el servicio a los negocios y la innovación de los productos.

• Administrar riesgos, seguridad y competencia.

Todo lo anterior buscando cambiar el paradigma de reaccionar hacia anticipar[IBM, 2012d].

3.6.1 Smarter Cities

Como parte de la iniciativa de Smarter Planet uno de los principales focos deproblemas que se está atacando es el de las ciudades y todos sus sistemas y lasinteracciones entre ellos. De hecho una ciudad es considerada un sistema de

3.6. IBM c©Smarter Planet 27

sistemas compuestos por tres factores fundamentales : Infraestructura, Operacionesy Gente. De acuerdo a la de�nición de IBM [IBM, 2012b] una ciudad inteligenteprovee de desarrollo económico sustentable y prosperidad a sus ciudadanos y susgobernantes tienen las herramientas para analizar la información y tomar mejoresdecisiones y de ésta manera anticipar problemas y resolverlos de una manera masproactiva y e�ciente.Como parte de ésta iniciativa en el 2011 la ciudad de Guadalajara fué elegidajunto con otras 24 ciudades alrededor del mundo para formar parte del desafíoSmarter Cities mediante el cual IBM c©donó servicios de consultoría a lo largode tres semanas por parte de seis expertos para trabajar en las estrategias quepermitan convertir a Guadalajara en una ciudad más inteligente implementandolos principios antes mencionados.

3.6.1.1 Smarter Tra�c

Smarter Tra�c es sólo uno de los proyectos que busca tal objetivo al optimizar unode los elementos vitales en el desarrollo de las actividades cotidianas en la ciudad :la movilidad. Al mejorar la interconexión y el intercambio de información de todoslos actores que intervienen en el sistema se toman mejores decisiones e incluso hacerpredicciones basadas en los datos obtenidos en tiempo real y así obtener el mejorbene�cio de los recursos con los que cuenta la ciudad de Guadalajara.

En la actualidad los problemas de trá�co presentes en las grandes ciudades tienenefectos tales como incremento en el estres de las personas así como el enojo, un mayorconsumo de combustible y el consecuente incremento en la contaminación atmos-férica así como reducción en el tiempo productivo de las personas. En un estudiopublicado por IBM titulado "2011 commuter pain report" [Gyimesi et al., 2011] laCiudad de México se muestra como la ciudad con los niveles más altos de inco-modidad para los conductores a nivel mundial y la percepción global acerca de lasituación del trá�co es que se trata de una calamidad. Éste es uno de los principalesimpulsores de la iniciativa de Smarter Tra�c : mejorar la experiencia de trá�co delos habitantes de las ciudades.

Para lograr el objetivo anterior se requiere del desarrollo de multiples sistemas loscuales trabajarán en conjunto recolectando, almacenando, procesando y sintetizandolos datos que se generan desde diversas fuentes como redes sociales, dispositivosmoviles, GPS, etc.. todo se realizará en tiempos razonables y a su vez permitirágenerar simulaciones y predicciones que exploten la base de datos almacenados. Deacuerdo con Schaefer [Schaefer et al., 2011] una ciudad que implementa SmarterTra�c gana un mejor entendimiento de la situación actual con la infraestructura detransporte y los problemas de trá�co. Para poder lograr ésto se necesita capturardatos relevantes, analizar dichos datos y obtener información útil de dichos análisis.Con el uso de captura de datos en tiempo real y las herramientas apropiadas talescomo automatización, sistemas de control y optimización de herramientas analíticaslas ciudades pueden mejorar su �ujo de trá�co y hacer una realidad el tener un

28 Capítulo 3. Estado del Arte

trá�co más inteligente.

Capítulo 4

De�nición del problema

Contenidos

4.1 Contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.2 Descripción del problema . . . . . . . . . . . . . . . . . . . . . 31

4.3 Hipótesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.4 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.4.1 Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.4.2 Objetivos particulares . . . . . . . . . . . . . . . . . . . . . . 34

4.5 Justi�cación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.6 Límites y alcances . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.7 Preguntas de investigación . . . . . . . . . . . . . . . . . . . . 36

4.1 Contexto

La ciudad de Guadalajara, México fué designada para ser convertida en una SmarterCity en el año 2011 [IBM, 2012c] y a partir de ese momento múltiples proyectos sehan puesto en funcionamiento para cubrir con los requerimientos y objetivos que di-cho nombramiento conlleva. Con 4.2 millones de habitantes que residen en un áreade 151 kilómetros cuadrados, en Guadalajara se tiene una relación de habitantespor automóvil que al año 2009 alcanzó tres lo cual representa el mayor promedio dehabitantes por automóvil del país que es incluso mayor a la relación de habitantespor automóvil que se tiene en la Ciudad de México y se espera que para el año 2013se cuente con más de tres millones de automóviles en Jalisco [Mil, 2011]. Tan sólo enla zona metropolitana se cuenta con 1.7 millones de automóviles y a pesar de poseeruna de las infraestructuras viales más avanzadas del país los congestionamientosviales ocurren a diario y las quejas de los conductores van en aumento. Alrededordel mundo otras ciudades también inscritas en el programa han empezado a imple-mentar soluciones basadas en la recolección y análisis de los datos relacionados conlos problemas propios de dicha ciudad con resultados muy alentadores. Al inda-gar acerca de otras ciudades que forman parte de la iniciativa de Smarter Cities ycuáles fueron las soluciones que se implementaron para atacar los problemas propiosde cada una de ellas vale la pena mencionar los siguientes por contener elementosrelevantes para el caso de la ciudad de Guadalajara [IBM, 2012a]:

30 Capítulo 4. De�nición del problema

La ciudad de Memphis, Tennessee implementó un sistema de analítica con car-acterísticas de predicción el cual permite colocar a la policía y a los servicios deemergencias donde son más necesitados.El estado de Nueva York utiliza un sistema un sistema de modelado predictivo parael cobro de impuestos lo cual permite incrementar la recaudación y la igualdad entrelos ciudadanos.En China, la ciudad de Zhenjiang usa un centro de operaciones inteligente paramonitorear y ayudar a transformar su sistema de transporte público.El caso de una ciudad surcoreana en particular sobresalió por las similitudes queguarda con Guadalajara. Ésta ciudad es catalogada como una ciudad de tamañomediano y los problemas de tránsito que experimentaba asemejan a los que se pre-sentan actualmente en Guadalajara. Es por eso que la solución que implementarones interesante de mencionar ya que abarca múltiples aspectos coincidentes con losque se desean atender con éste trabajo. La ciudad de Bucheon en Corea contabacon un sistema de monitoreo de trá�co basado en cámaras de video y los reportes deincidentes de trá�co eran comunicados a los conductores con impresición y retrasoya que el análisis de las imágenes de video era realizado manualmente con lo cuallas congestiones de trá�co eran frecuentes y el �ujo de información ine�ciente.Para solucionar éste problema la ciudad de Bucheon implementó una solución quepermite obtener información de trá�co en tiempo real y alertas a los conductorespara evitar congestionamientos de trá�co. Así mismo ésta solución permite a laciudad el análisis de los datos para tener un mejor entendimiento del �ujo de trá�covehicular y así mejorar los caminos para satisfacer las necesidades de los conduc-tores. La solución actualmente analiza la informacón automáticamente y realizamediciones de volúmen de trá�co y de velocidad promedio para proporcionar infor-mación útil a los conductores. La capacidad de recolección de datos se incrementóen un 1200% y se aprovechó el sistema existente de circuito cerrado de video paraanalizar el comportamiento del trá�co. Éste es sólo un ejemplo del tipo de solu-ciones que se implementan y que forman parte de la iniciativa de Smarter Cities. Lascapacidades de almacenamiento, procesamiento y aprovisionamiento de informaciónnecesarias para la realización de los mismos son grandes pero también deben serdiseñadas de tal manera que respondan a la necesidad especí�ca de la ciudad.

Al tomar como ejemplo el caso presentado anteriormente se observa que el princi-pal tipo de dato que es analizado en la solución que la cuidad de Bucheon implementóson videos. La capacidad de procesamiento requerida para analizar éste y otros tiposde datos considerados Big Data convierte a dichas soluciones en no-triviales al noestar acondicionados los sistemas analíticos tradicionales para trabajar con datos noestructurados. Visto desde la perspectiva de las empresas los datos no estructuradosestán proveyendo cada vez más valor por lo que las soluciones capaces para trabajarcon Big Data y datos no estructurados conforman un área en crecimiento a la cualse le presta mucha atención y el número de soluciones diseñadas para atacar el prob-lema va en aumento de manera constante. Como se puede observar en la �gura 4.1la cantidad de datos no estructurados que son almacenados por las empresas crececada año y no se puede simplemente dejar de lado la necesidad de tener sistemas

4.2. Descripción del problema 31

Figura 4.1: Changing Enterprise Data Pro�le. Grá�ca presentada por Rick Villarsdel IDC en el APAC Storage Summit en la ciudad de Ho Chi Minh. 2007

capaces de proveer información útil a partir de ellos. Otras fuentes de datos noestructurados identi�cados en un estudio publicado por IBM [Shroeck et al., 2012]tras haber realizado una encuesta con 1114 profesionales de 95 países y que consid-eró 26 diferentes ramos de la industria son (el porcentaje denota cuántas personasconsideraron la fuente como Big Data y a su vez es considerado un tipo de datos noestructurado):

• 43% los datos generados por las redes sociales

• 42% los datos obtenidos a través de sensores

• 41% los datos provenientes de texto sin formato

• 40% los datos geoespaciales

• 38% los archivos de audio

• 34% las imágenes y los videos

Uno de los elementos claves de las soluciones para las Smarter Cities es la in-fraestructura que cuente con la capacidad para procesar grandes volúmenes de datosque con frecuencia son catalogados como no estructurados y es precisamente aquídonde se identi�ca la necesidad a ser cubierta mediante la realización de éste trabajoen el cual se aborda la propuesta de una arquitectura la cual estaría preparada pararesponder a dicha demanda y entregar resultados de una manera rápida y e�ciente.

4.2 Descripción del problema

Como se mencionó en la sección anterior en Guadalajara se cuenta con una poblaciónde 4.2 millones de habitantes y un parque vehicular de 1.7 millones de vehículos lo

32 Capítulo 4. De�nición del problema

cual genera un problema de movilidad que rebasa las capacidades de los sistemas detrá�co y la infraestructura actuales. Mientras que los esfuerzos del pasado para daruna solución al problema de movilidad se han centrado principalmente en la con-strucción de más caminos y puentes en enfoque que se pretende dar con la iniciativade Smarter Cities va en el sentido de optimizar los recursos con los que ya se cuentay hacerlos trabajar en conjunto para proveer informacón útil. Regresando tambiéna los objetivos de la iniciativa de Smarter Planet se requiere que los sistemas esténinstrumentalizados lo cual implica que se deben de tener sensores con los cuales sepuedan medir variables físicas las cuales sean relevantes para monitorear y recolectartoda la información necesaria para la toma de decisiones. De acuerdo al reporte téc-nico de tecnología para la inteligencia urbana [Larios, 2012] en la zona metropolitanade Guadalajara se cuenta con cerca de un millon de Smart Phones con capacidadde conexión a internet y como parte de los fenómenos emergentes relacionados conlas redes sociales se tienen más de cincuenta mil usuarios reportando incidentes detrá�co mediante el uso de redes como Twitter y aplicaciones móviles como Waze.El proyecto de Smarter Tra�c para la ciudad de Guadalajara tiene como �nalidadla creación de un sistema de información y modelo de simulación para predecir elcomportamiento del trá�co vehicular en la zona metropolitana con el objetivo deahorrar 15% [Larios, 2012] en tiempo invertido en los traslados desde y hacia loslugares de trabajo al utilizar la técnica de Crowd Sourcing mediante la cual se asig-nan y distribuyen tareas a un grupo de personas que en este caso serán los usuariosde las redes sociales para recolectar información utilizando Smart Phones y redessociales como los sensores de la ciudad. La informacón recolectada será procesaday validada para darle un grado de certeza y con�abilidad y dado que las fuentesserán tan abiertas como una red social será necesaria la implementación de análisissemánticos de la información recolectada para determinar qué tan válido es el inci-dente reportado tanto en dimensiones espaciales como temporales y una vez hechoesto se deberá contar con herramientas de visualización con técnicas de realidadaumentada para facilitar la ubicación de incidentes y evaluación del estado actualdel trá�co vehicular en la zona metropolitana.La descripción presentada de las etapas y módulos del proyecto de Smarter Tra�cimplica que la cantidad de información que se espera recolectar así como las carac-terísticas de la misma caen en la categoría de Big Data de datos no estructuradospor lo que es aquí donde surge la necesidad de tener una infraestructura que seacapaz de proveer el poder de procesamiento en paralelo necesario para reducir lospaquetes de datos y que sea capaz de soportar la implementación de algoritmos parala detección de patrones y la construcción de modelos de simulación necesarios paracumplir con el objetivo de tener un sistema de predicción de trá�co en la ciudad.El sistema de predicción de trá�co se espera sirva como fuente de información parala determinación de rutas que consideren dinámicamente las condiciones de trá�coy generen el camino más óptimo hacia el destino deseado.

El problema que se aborda con éste trabajo radica en el módulo de procesamientode alto desempeño denotado con el recuadro amarillo de la �gura 4.2 sobre elcual se ejecutarán los algoritmos que soportan los servicios ofrecidos por la solución

4.3. Hipótesis 33

Figura 4.2: Diagrama general del proyecto. El recuadro amarillo indica el móduloa ser resuelto mediante la realización de éste trabajo.

completa y que a su vez implementa sistemas de archivos y procesamiento distribuidopara procesar los conjuntos de datos no estructurados generados por los sensores delsistema.

4.3 Hipótesis

Al considerar el tipo y el volumen de datos que se espera se generarán desde lasfuentes de información de�nidas en la propuesta inicial del proyecto conjunto deCUCEA e IBM de Smarter Tra�c se aplican dos categorías para los mismos. Sise utiliza el tipo de dato entonces son categorizados como datos no estructuradosal carecer en su mayoría de una metadata que describe el contenido recibido tal ycomo se observa en los datos recabado desde las redes sociales consideradas de textosin formato y como ya se mencionó en el capítulo 2 se requiere de la aplicacion dealgoritmos que requieren de poder de cómputo considerable para obtener informa-ción relevante de los mismos tales como análisis semántico avanzado y validaciónde los datos. Por otro lado si se considera el voúmen de datos que proyecta seránrecibidos y el grado en el que serán almacenados para su posterior análisis con �nesde obtener modelos de predicción de trá�co e identi�cación de patrones entonces sehabla de BigData. Tanto las necesidades de poder de cómputo mediante técnicasde paralelismo y procesos distribuidos como las necesidades de almacenamiento dearchivos grandes y grandes volúmenes de datos en un ambiente de sistema de archivoque pueda ser explotado por el cluster de cómputo de alto desempeño, pueden sercubiertos mediante la implementación de un cluster basado en el framework de cóm-puto paralelo Hadoop el cual a su vez provee de un sistema de archivos para clustersde nodos independientes que es escalable a decenas de miles de nodos según se vayanincrementando tanto las necesidades de cómput con Hadoop como las necesidades

34 Capítulo 4. De�nición del problema

de almacenamiento con HDFS (Hadoop Distributed File System).La de�nición de una arquitectura basada en las tecnologías antes mencionadas

puede ser aprovechada para la implementación de soluciones para problemas quecomparten características similares a los que se encuentran en el proyecto de SmarterTra�c y a su vez el estudio de los tipos y fuentes de datos del mismo proyectoservirán para la creación de mejores prácticas y técnicas las cuales pueden seraprovechadas en un universo mayor de problemas.

Al estudiar los tipos de algoritmos que serán destinados para el análisis de losdatos almacenados en el cluster de cómputo de alto desempeño basado en Hadoopse puede complementar la funcionalidad básica con desarrollos que buscan la espe-cialización del cluster al optimizar el modelo de programación de MapReduce paraproblemas especí�cos.

4.4 Objetivos

4.4.1 Objetivo General

Diseñar la arquitectura que provea de la infraestructura necesaria para la ejecu-ción de algoritmos para el procesamiento paralelo y distribuido así como el análisisde conjuntos masivos de datos no estructurados como los que se espera recibir deentrada en el proyecto de Smarter Tra�c.

4.4.2 Objetivos particulares

• Generar mejores prácticas y recomendaciones al analizar el modelo de pro-gramación de MapReduce para la interacción entre los demás módulos delproyecto con el cluster de alto desempeño

• Estudiar y contrastar tecnologías relacionadas con el modelo de programaciónde MapReduce y proyectos y soluciones comerciales desarrolladas en base aéste

• Crear la guía para el proceso de instalación, integración y con�guración de uncluster para el procesamiento paralelo y distribuido de datos no estructuradosbasado en Hadoop.

• Investigar opciones de complementación del modelo original con módulos ex-ternos para proveer a la arquitectura de mayores capacidades y ampliar elcampo de acción del tipo de problema que puede ayudar a solucionar.

4.5 Justi�cación

La importancia de la realización de esta investigación radica en el grado de inno-vación que presenta al utilizar tecnologías diseñadas como respuesta a las necesi-dades surgidas al evolucionar las tecnologías de la información y al presentarse una

4.5. Justi�cación 35

explosión en la generación de la misma y también el foco que se le comenzó a poner altipo de datos clasi�cados como no estructurados. El uso de MapReduce como basepara la realización de la arquitectura descrita en este trabajo posiciona al proyectode Smarter Tra�c de CUCEA e IBM en la misma categoría de proyectos cuya in-fraestructura de cómputo está basado totalmente o implementado en parte usandoMapReduce como lo son las mencionadas en el capítulo 2 y que incluyen al gigantede las redes sociales Facebook c©.

Especi�camente hablando del proyecto para el cual servirá los servicios de cóm-puto para los conjuntos de datos masivos no estructurados es relevante la descrip-ción y realización de ésta arquitectura ya que las fuentes de información que formanparte del diseño original de la etapa de captura de datos tienen características ypatrones las cuales son descritas por los modelos que predicen que conforme paseel tiempo el volumen de información generada crecerá a un ritmo acelerado y quepor sus características son considerados datos no estructurados por lo que se debevolver la mirada a las tecnologías emergentes que tienen como objetivo proveer delas herramientas necesarias para la implementación de algoritmos optimizados parala resolución de problemas mediante el modelo de programación MapReduce.

Si bien es cierto que el modelo de programación de MapReduce facilita la resolu-ción de cierto tipo de problemas que se pueden encontrar en proyectos tales como elde Smarter Tra�c, existe un conjunto incluso mayor de problemas para los cualesla implementación en el modelo de MapReduce signi�caría una inversión en tiempoy esfuerzo que no justi�ca la adaptación misma del algoritmo como lo son los casosde los problemas en los cuales se requiere un modelo transaccional de acceso a lainformación en contraste con el modelo original de MapReduce el cual puede serconsiderado como procesamiento en lotes. Sin embargo de nuevo se observa queésta es una tecnología en desarrollo y tan reciente como Octubre de 2012 se anun-cian desarrollos para la implementación de consultas en tiempo real para Hadoopcon lo cual se amplía aún más el campo de acción para las arquitecturas basadas enHadoop. Finalmente se tienen implementaciones y especializaciones para problemasespecí�cos tales como el explicado en el capítulo 2 llamado Giraph el cual es unframework de programación que corre sobre Hadoop pero que está diseñado para elmanejo de grafos y que hace todo su trabajo durante la etapa de Map del modelode MapReduce.

Es relevante entonces la realización de éste trabajo al exponer e implementartecnologías que son consideradas pioneras en su campo y el aplicarlas en la con-strucción de la infraestructura de cómputo de alto desempeño para el proyecto deSmarter Tra�c hace que todos y cada uno de los módulos que lo componen ten-gan una aportación innovadora a sus respectivos campos con un alcance regional ynacional.

En la página de registro de proyectos basados en Hadoop [Apache.org, 2012] nose encuentra ningún proyecto Mexicano por lo que es importante el desarrollo desistemas con dichas características para aparecer en el mapa internacional al ladode universidades e instituciones de investigación y de gobierno las cuales ya hanadoptado ésta tecnología y gracias a las cuales se fomenta su uso y el desarrollo

36 Capítulo 4. De�nición del problema

de nuevos métodos no considerados en un principio como parte de Hadoop y quesin embargo con�rman que la metodología de MapReduce y la implementación deHadoop pueden ser considerados de uso general.

4.6 Límites y alcances

• Se planea analizar las características de las fuentes y tipos de datos que formanparte de la propuesta inicial del proyecto de Smarter Tra�c de CUCEA e IBMpara comprobar que las necesidades generadas de poder de procesamiento yalmacenamiento pueden ser cubiertas con un framework como lo es Hadoop ysu sistema de archivos distribuido HDFS.

• Se pretende diseñar una propuesta de arquitectura basada en un cluster con-struido con Hadoop y que utilice como sistema de archivos distribuido HDFS.

• Se busca complementar el ofrecimiento de funcionalidades y capacidades ini-ciales de HDFS con una serie de recomendaciones y mejores prácticas obtenidasmediante el análisis de los patrones y tipos de datos que se planea serán envia-dos al cluster de cómputo de alto desempeño tanto para su análisis inmediatocomo para su almacenamiento y posterior explotación con �nes de generarmodelos de predicción y patrones de comportamiento del trá�co vehicular enla ciudad de Guadalajara, México.

• No está en el alcance de ésta investigación el desarrollo de los algoritmosnecesarios para el procesamiento y anánlisis de conjuntos masivos de datosno estructurados, sin embargo mediante el estudio y revisión de los planesiniciales de análisis se complementará la funcionalidad básica del frameworkde Hadoop con herramientas y marcos de trabajo que aumenten el campo deacción y el tipo de problemas que se pueden resolver con un cluster de éstascaracterísticas.

• No se pretende que la arquitectura desarrollada sea incorporada de inmediatoal proyecto de Smarter Tra�c de CUCEA e IBM, sin embargo se espera quedurante la fase de pruebas se realicen corridas con tipos de datos que ten-gan similaridad con los que se espera obtener de las fuentes de�nidas en lapropuesta inicial del proyecto y que se desprendan de ahi las recomendacionesy los procedimientos necesarios para acomplar la etapa de cómputo de altodesempeño a un proyecto de Smarter Tra�c más maduro.

4.7 Preguntas de investigación

La siguiente serie de preguntas mantienen la dirección de la investigación en labúsqueda de alcanzar la realización de los objetivos planteados:

4.7. Preguntas de investigación 37

• ¾ Puede un cluster basado en Hadoop responder a las necesidades inherentes depoder de cómputo y almacenamiento distribuído como las que se encuentranen el proyecto de Smarter Tra�c de CUCEA e IBM?

• ¾ Qué tipo de recomendaciones y mejores prácticas se pueden obtener comoresultado del análisis de los tipos de datos esperados en el proyecto de SmarterTra�c y sus comportamientos que puedan ser aprovechadas por otros proyec-tos de similares características y requerimientos?

• ¾ Puede una arquitectura de�nida para un proyecto como el de Smarter Tra�cde CUCEA e IBM ser aprovechada para la implementación de clusters para re-solver las necesidades de cómputo y almacenamiento en otro tipo de proyectosque tengan similaridades con el antes mencionado?

• ¾ Cómo se agregan funcionalidades adicionales al ofrecimiento inicial del mod-elo de programación de MapReduce para aumentar el campo de acción y eltipo de algoritmos que se pueden ejecutar en un cluster basado en Hadoop?

Capítulo 5

Materiales y Métodos

Appendix A

Appendix Example

A.1 Appendix Example section

And I cite myself to show by bibtex style �le (two authors) [?].This for other bibtex stye �le : only one author [?] and many authors [?].

Bibliografía

[Mil, 2011] (2011). 9 millones de autos en jalisco, expectativa a 2030. 29

[Abbott, 2009] Abbott, M. R. (2009). A new path for science? page 6.

[Apache, 2009] Apache (2009). Hardware benchmarks (sep 30 2012).http://wiki.apache.org/hadoop/HardwareBenchmarks.

[Apache, 2012] Apache (2012). Hadoop wiki (sep 30 2012).http://wiki.apache.org/hadoop/. 6

[Apache.org, 2009] Apache.org (2009). ipc - hadoop wiki (oct 6 2012).http://wiki.apache.org/hadoop/ipc. 11

[Apache.org, 2012] Apache.org (2012). Powered by hadoop (sep 30 2012).http://wiki.apache.org/hadoop/PoweredBy. 22, 35

[Asanovic et al., 2006] Asanovic, K., Bodik, R., Catanzaro, B. C., Gebis, J. J., Hus-bands, P., Keutzer, K., Patterson, D. A., Plishker, W. L., Shalf, J., Williams,S. W., and Yelick, K. A. (2006). The landscape of parallel computing research:A view from berkeley. Technical report, Electrical Engineering and ComputerSciences University of California at Berkeley. 17

[Bakshi, 2012] Bakshi, K. (2012). Considerations for big data: Architecture andapproach. 6

[Barney, 2012] Barney, B. (2012). Introduction to parallel computing. 12

[Borthakur, 2007] Borthakur, D. (2007). The hadoop distributed �le system: Ar-chitecture and design. 21

[Cloudera, 2012a] Cloudera (2012a). Java development kit installation (sep 302012). https://ccp.cloudera.com/display/CDHDOC/Java+Development+Kit+Installation.7

[Cloudera, 2012b] Cloudera (2012b). Supported operating systems in cdh3 (sep 302012). http://www.cloudera.com/blog/2011/02/supported-operating-systems-in-cdh3-2/. 7

[Corp., 2011] Corp., I. (2011). Ibm infosphere biginsights enterprise edition forturning complex, internet-scale information into insight, coste�ectively. page 3.

[Dean and Ghemawat, 2004] Dean, J. and Ghemawat, S. (2004). Mapreduce: Sim-pli�ed data processing on large clusters. page 13. 19, 20, 21

[Drlaney and Barga, 2009] Drlaney, J. R. and Barga, R. S. (2009). A 2020 visionfor ocean science. page 11. 18

44 Bibliografía

[Dumbill, 2012] Dumbill, E. (2012). What is big data?http://radar.oreilly.com/2012/01/what-is-big-data.html.

[Feyrer, 2001] Feyrer, H. (2001). Introduction to ipv6. page 2. 9

[Gannon and Reed, 2009] Gannon, D. and Reed, D. (2009). Parallelism and thecloud. page 6.

[Gantz and Reinsel, 2011] Gantz, J. and Reinsel, D. (2011). Extracting value fromchaos.

[Gilbert, 1995] Gilbert, H. (1995). Introduction to tcp/ip (oct 1 2012).http://www.yale.edu/pclt/COMM/TCPIP.HTM. 8, 9

[Glover, 2011] Glover, A. (2011). Java development 2.0: Big data analysiswith hadoop mapreduce. http://www.ibm.com/developerworks/java/library/j-javadev2-15/.

[Goodman and Wong, 2009] Goodman, A. A. and Wong, C. G. (2009). Bringingthe night sky closer: Discoveries in the data deluge. page 5. 18

[Google, 2012] Google (2012). Introduction to parallel programming and mapreduce(sep 30 2012). http://code.google.com/edu/parallel/mapreduce-tutorial.html.

[Gyimesi et al., 2011] Gyimesi, K., Vincent, C., and Lamba, N. (2011). Ibm 2011global commuter pain survey. Technical report, IBM. 27

[Hey et al., 2009] Hey, T., Tansley, S., and in Tolle, K., editors (2009). The FourthParadigm Data-Intensive Scienti�c Discovery. Microsoft Research.

[IBM, 2008] IBM (2008). A smarter planet : The next leadershipagenda. http://www.ibm.com/ibm/ideasfromibm/us/smartplanet/20081106/sjp_speech.shtml. 26

[IBM, 2012a] IBM (2012a). Ibm - smarter cities case studies (november 2 2012).http://www.ibm.com/smarterplanet/us/en/smarter _cities/article/smarter_cities _case _studies.html. 29

[IBM, 2012b] IBM (2012b). Ibm smarter cities - overview (16 oct 2012).http://www.ibm.com/smarterplanet/us/en/smarter _cities/overview/. 27

[IBM, 2012c] IBM (2012c). Ibm smarter cities challenge: About the challengeguadalajara, mexico (november 2 2012). http://smartercitieschallenge.org/city_guadalajara _mexico.html. 29

[IBM, 2012d] IBM (2012d). Smarter planet overview (sep 30 2012).http://www.ibm.com/smarterplanet/us/en/overview/ideas/index.html?lnk=ussph1.16.26

Bibliografía 45

[Jenkin, 2009] Jenkin, N. (2009). Distributed machine learning with hadoop.page 41.

[Kelly, 2011] Kelly, J. (2011). Oracle: Big data partner or big data boat anchor?http://wikibon.org/blog/oracle-big-data-partner-or-big-data-boat-anchor/.

[Kozierok, 2005] Kozierok, C. M. (2005). The tcp/ipguide - tcp/ip overview and history (oct 2 2012).http://www.tcpipguide.com/free/t_TCPIPOverviewandHistory.htm.

[Larios, 2012] Larios, V. M. (2012). Technology for urban intelligence (tui) -guadalajara project summary. Internal report, Universidad de Guadalajara, Per-iferico Nte. 799 Mod. L305 Los Belenes Zapopan, Jalisco Mexico. 32

[Larus and Gannon, 2010] Larus, J. and Gannon, D. (2010). Multicore computingand scienti�c discovery. page 4.

[Loddengaard, 2012] Loddengaard, A. (2012). Cloudera supportteam shares some basic hardware recommendations (sep 30 2012).http://www.cloudera.com/blog/2010/03/clouderas-support-team-shares-some-basic-hardware-recommendations/. 7

[Mackey et al., 2008] Mackey, G., Sehrish, S., Bent, J., Lopez, J., Habib, S., andWang, J. (2008). Introducing map-reduce to high end computing.

[Manyika et al., 2011] Manyika, J., Chui, M., Brown, B., Bughin, J.,Dobbs, R., Roxburgh, C., and Byers, A. H. (2011). Big data:The next frontier for innovation, competition, and productivity.http://www.mckinsey.com/Insights/MGI/Research/Technology_and_Innovation/Big_data_The_next_frontier_for_innovation.

[Maslakowski and Butcher, 2001] Maslakowski, M. and Butcher, T. (2001). Apren-diendo MySQL en 21 dias. Prentice Hall. 16

[McCubbin et al., 2011] McCubbin, C., Perozzi, B., Levine, A., and Rahman, A.(2011). Finding the 'needle': Locating interesting nodes using the k-shortestpaths algorithm in mapreduce.

[Moore, 2012] Moore, F. L. (2012). Database systems: A brief timeline. 16

[Murthy, 2011] Murthy, A. C. (2011). The next generation of apache hadoop mapre-duce. http://developer.yahoo.com/blogs/hadoop/posts/2011/02/mapreduce-nextgen/.

[Pacheco, 2011] Pacheco, P. (2011). An Introduction to Parallel Programming. El-sevier. 12

[Parastatidis, 2009] Parastatidis, S. (2009). A platform for all that we know: Cre-ating a knowledge- driven research infrastructure. page 8.

46 Bibliografía

[PCMAG.com, 2012] PCMAG.com (2012). Structured datade�nition from pc magazine encyclopedia (oct 7 2012).http://www.pcmag.com/encyclopedia_term/0,2542,t=structured+data&i=52162,00.asp.16

[Riesen et al., 1998] Riesen, R., Brightwell, R., and Maccabe, A. B. (1998). Di�er-ences between distributed and parallel systems. 14

[Rouse, 2005] Rouse, M. (2005). What is jbod (just a bunch of disks) (sep 30 2012).http://searchstorage.techtarget.com/de�nition/JBOD. 7

[Rouse, 2007] Rouse, M. (2007). What is raid (redundant array of independentdisks) (sep 30 2012). http://searchstorage.techtarget.com/de�nition/RAID. 7

[Saracco, 2012] Saracco, C. M. (2012). Understanding infosphere biginsights(oct 2012). http://www.ibm.com/developerworks/data/library/techarticle/dm-1110biginsightsintro/.

[Schaefer et al., 2011] Schaefer, S., Harrison, C., Lamba, N., and Srikanth, V.(2011). Smarter cities series: Understanding the ibm approach to tra�c man-agement. 27

[Schelter, 2012] Schelter, S. (2012). Introducing apache giraph for large scale graphprocessing (14 oct 2012). http://www.slideshare.net/sscdotopen/introducing-apache-giraph-for-large-scale-graph-processing. 25

[Schreiner, 2006] Schreiner, W. (2006). Parallel and distributed computing.http://www.risc.jku.at/research/parallel/description/. 13

[Shankar and Narendra, 2008] Shankar, R. and Narendra, G. (2008). Mapreduceprogramming with apache hadoop process massive data sets in parallel on largeclusters. http://www.javaworld.com/javaworld/jw-09-2008/jw-09-hadoop.html.

[Shilakes and Tylman, 1998] Shilakes, C. C. and Tylman, J. (1998). Enterprise in-formation portals. Technical report, Merril Lynch. 17

[Shroeck et al., 2012] Shroeck, M., Shocley, R., Smart, D. J., Romero, P. D., andTufano, P. P. (2012). Analytics: The real-world use of big data. 31

[Stake, 1999] Stake, R. E. (1999). Investigación con estudio de casos. Morata. 3

[Taft, 2012] Taft, D. K. (2012). Apache launches hadoop 1.0.http://www.eweek.com/c/a/Linux-and-Open-Source/Apache-Launches-Hadoop-10-415446/.

[Tanenbaum and van Steen, 2002] Tanenbaum, A. S. and van Steen, M. (2002).Distributed Systems: Principles and Paradigms. 13

[Vora, 2011] Vora, M. N. (2011). Hadoop-hbase for large-scale data.

Bibliografía 47

[Weglarz, 2004] Weglarz, G. (2004). Two worlds of data: Un-structured and structured (oct 7 2012). http://www.information-management.com/issues/20040901/1009161-1.html. 16

[Wilson, 1994] Wilson, G. V. (1994). The history of the development of parallelcomputing. http://ei.cs.vt.edu/ history/Parallel.html. 12

[Wirzenius et al., 2004] Wirzenius, L., Oja, J., Sta�ord, S., and Weeks,A. (2004). The linux system administrator's guide : Chapter 5.http://www.tldp.org/LDP/sag/html/�lesystems.html. 22

[Woods, 2011] Woods, D. (2011). Explaining hadoop to your ceo.http://www.forbes.com/sites/danwoods/2011/11/03/explaining-hadoop-to-your-ceo/. 21

[Wu et al., 2011] Wu, B., Dong, Y., and nYanan Cai, Q. K. (2011). A parallelcomputing model for large-graph mining with mapreduce.

[Yang, 2011] Yang, G. (2011). The application of mapreduce in the cloud comput-ing.

[Ylonen, 2006] Ylonen, T. (2006). The secure shell (ssh) protocol architecture.http://tools.ietf.org/html/rfc4251. 10

[Zeyliger, 2009] Zeyliger, P. (2009). Hadoop default ports quick reference (oct6 2012). http://www.cloudera.com/blog/2009/08/hadoop-default-ports-quick-reference/. 11

[Zicari, 2011] Zicari, R. V. (2011). Hadoop for business: Interview with mike olson,chief executive o�cer at cloudera. http://www.odbms.org/blog/2011/04/hadoop-for-business-interview-with-mike-olson-chief-executive-o�cer-at-cloudera/.

[Zikopoulos et al., 2012] Zikopoulos, P. C., Eaton, C., deRoos, D., Deutsch, T., andLapis, G. (2012). Understanding Big Data Analytics for Enterprise Class Hadoopand Streaming Data. Mc Graw Hill. 23, 24