Protocolo de Tesis: Estudio, integración y desarrollo de una arquitectura para procesamiento paralelo y distribuido de conjuntos másivos de datos no estructurados para el proyecto de Trac Smart de CUCEA e IBM Tesista: Emmanuel Bara jas González Director: Mtra. Laura Torres y Dr. Victor M. Larios Maestría en Tecnologías de Información CUCEA UdeG 2012 Resumen En la actualidad las fuentes de datos y el ritmo al que trabajan sobrepasan la capacidad de procesamiento tradicional por lo que dicha información termina almacenada ó pasa por u ltro de los sistemas estadísticos y sólo una pequeña parte se usa en la generación de conocimiento. Es por eso que la necesidad de la creación de herramientas las cuales permitan explotar de manera más eciente las fuentes de datos es importante sobre todo para proyectos que manejan dichos volumenes masivos de datos. Para ello se describe el estudio e implementación de una arquitectura la cual es capaz de responder a esta necesidad generada por el proyecto de Smart Trac al usar el modc mediante el elo de programación Map Reduce que desarrolló Google cual es posible paralelizar y distribuir tareas a varios nodos interconectados que forman un cluster y así incrementa el poder de cómputo disponible. Dicho modelo es aplicable en ambientes en los cuales se tienen diversas y masivas fuentes de información heterogéneos como lo es el proyecto antes mencionado por lo que se describe la integración e implementacion de la solución con el uso de un cluster que se desc en la ciudad de tina para cuestiones académicas que patrocina Intel Guadalajara. Palabras clave: big data, parallel, distributed, computing 2 Índice 1. Antecedentes 1.1. 1.2. 1.3. 1.4. 1.5. Procesamiento Paralelo . . Procesamiento Distribuido Big Data . . . . . . . . . . Datos no estructurados . . MapReduce . . . . . . . . 1.5.1. Hadoop . . . . . . c . . . . 1.5.2. Cloudera 1.6. Smart Trac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . 2 . 3 . 5 . 6 . 7 . 9 . 10 . 11 2. Planteamiento y delimitación del problema 11 3. Hipótesis 14 4. Objetivo 15 5. Método 15 6. 15 Cronograma de Actividades 7. Índice de tesis 17 1 1. Antecedentes 1.1. Procesamiento Paralelo En los modelos de programación tradicionales un programa se compone de instrucciones de entrada/salida, modicadores de ujo de ejecución y operadores los cuales tienen diversos efectos sobre los tipos de datos que el lenguaje de programación que se seleccionó soporta. Los problemas que se pretenden resolver con un programa secuencial deben separarse en una serie discreta de instrucciones. Un factor común de este tipo de programas es que se tiene un sólo camino ó serie de pasos los cuales se ejecutan uno después de otro y no se procede a la siguiente instrucción a menos que la anterior se complete por lo que se habla de computación secuencial.Por otro lado, la computación en paralelo se describe como "la capacidad de utilizar multiples recursos computacionales de manera simultánea para la resolución de un problema"[5]. En este modelo de programación se tiene la capacidad de ejecutar las instrucciones en múltiples CPU's. Dichas instrucciones resultan de la separación del problema en partes discretas las cuales tienen la característica de ejecutarse de forma concurrente. Figura 1: Flujos de ejecución En el año de 1958 se sentaron las bases para todo el trabajo futuro alrededor de la computación en paralelo con una discusion que se llevó a cabo por c John Cocke y Daniel Slotnick acerca del uso del los investigadores de IBM paralelismo en cálculos numéricos[29] y las investigaciones al respecto continuaron así como las implementaciones de sistemas basadas en este principio, 2 tal y como el Multics, el cual lo desarrollaron los laboratorios Honeywell[29] en 1969 y el cual es un sistema multiprocesador simétrico capaz de correr 8 procesos en paralelo. De manera similar la teoría acerca de la computación concurrente continuó gracias al trabajo de personas como Edsger Dijkstra cuyas contribuciones a la computación paralela sigue tomandose como la base necesaria para resolver la concurrencia y manejar las zonas críticas[17] de los programas diseñados para ser ejecutados en paralelo. En la actualidad aún a pesar de que los programas no se hacen de manera explícita con un modelo de ejecución en paralelo, existen implementaciones de bajo nivel agregadas a la construcción de los microprocesadores, las cuales le permiten reacomodar las instrucciones que van a ser ejecutadas de tal manera que se ordenan en grupos que se ejecutan en paralelo sin alterar el resultado nal del programa. Sistemas en tiempo real los cuales requieren reaccionar ante eventos del mundo físico que ocurren sin previo aviso y a velocidades altas y al mismo tiempo que otra variable que esté siendo monitoreada como los sensores que controlan la activación de las bolsas de aire de los automoviles se implementan con modelos de programación los cuales permiten procesar todas esas señales al mismo tiempo y reaccionar de forma adecuada cuando es necesario hacerlo. Al alcanzar el límite de miniaturización de los componentes de los microprocesadores debido a los efectos de la discipación de calor cuando se ronda la escala de 15-20nm la solución que presentan los fabricantes de semiconductores es cada vez una mayor cantidad de núcleos de procesamiento en un sólo chip. De esta manera aunque un procesador por sí mismo no es más rápido que uno anterior, éste procesa más instrucciones al mismo tiempo por lo que el efecto aparente es una mayor velocidad. Ésta tecnología está presente con regularidad en los nuevos dispositivos, lo que facilita el orecimiento de técc al nicas y lenguajes de programación paralela tales como CUDA de nvidia poner a disposicion dichas capacidades a cada vez más personas. 1.2. Procesamiento Distribuido En un ambiente de computación distribuida, sistemas independientes se presentan al usuario como si fueran una sola computadora se pone a su disposicion todos los recursos que son compartidos desde dichos sistemas. Los sistemas distribuidos surgieron como una forma de optimizar el poder de procesamiento de las computadoras individuales que comenzaron a ser más comunes y más poderosas a partir de la decada de los 80 cuando se volvió más 3 barato tener dos computadoras que combinadas tenian una mejor relación precio/desempeño que un procesador el doble de rápido. Dicho de otra manera, una computadora personal no es rival para un Mainframe en terminos de poder de procesamiento, sin embargo en la actualidad se construyen clusters de decenas de miles de computadoras personales que combinadas logran velocidades de procesamiento medidas en millones de instrucciones por segundo que son físicamente inalcanzables por cualquier Mainframe. Existe una línea delgada entre la denición de un sistema distribuido y un sistema paralelo pero a grandes rasgos dice que un sistema distribuido se forma cuando múltiples actores independientes interconectados por una red trabajan en conjunto, mientras que en un sistema en paralelo se presentan procesos que se ejecutan de manera concurrente para la resolución de un problema[20]. El desarrollo e implementación de dicho tipo de sistemas está difundido en el ambiente tecnológico actual y se encuentran proyectos corriendo en cientos de miles de computadoras alrededor del mundo como es el caso de BOINC (The Berkeley Open Ingrastructure for Network Computing ) el cual permite que usuarios alrededor del mundo donen de forma voluntaria tiempo y recursos de procesamiento de sus computadoras para realizar cálculos que se utilizan para diversos tipos de proyectos construidos sobre ésta plataforma. Dichos proyectos son variados en su área de aplicacion y van desde matemáticas, criptografía, salud, clima, astronomía y astrofísica pero todos con un factor en común : la necesidad de tiempo y poder de procesamiento es elevada y realizar los cálculos que se necesitan para obtener información útil de los datos generados en una sola computadora o incluso en un servidor grande no es una opción viable porque el tiempo necesario se eleva al orden de años; la solución que se presenta con el 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 ritmo alto sólo quedan almacenados en espera de su turno para ser procesados. Dichos paquetes de datos se separan en paquetes más pequeños que se transmiten por una red con facilidad cuyo destino son las computadoras personales que se registran para formar parte de dicho proyecto. En las computadoras corre un pequeño programa que funciona como cliente y que tiene la conguración necesaria para enviar y recibir paquetes hacia y desde los servidores centrales del proyecto. Una vez que un cliente recibe un nuevo paquete, éste se encarga de procesarlo y de regresarlo al servidor una vez que está listo. El servidor como paso nal se encarga de juntar todos los resul4 tados enviados desde todos sus clientes y es así como un paquete grande se procesa en poco tiempo. Todo lo anterior es posible gracias al desarrollo de redes y protocolos de comunicaciones cada vez más rápidas y conables así como a los avances en algoritmos que hacen posible compartir recursos que están sica y geográcamente separados pero que trabajan juntos en la búsqueda de un resultado. 1.3. Big Data El término Big Data toma fuerza desde la mitad de la década pasada cuando los volúmenes de datos que se generaron empezaron a exceder la capacidad de los sistemas existentes para lograr procesarlos. Algunos presentan tiempos no aceptables y otros no favorecen el proceso en lo absoluto. Las fuentes de datos disponibles a su vez se incrementan, lo que reduce el costo y el esfuerzo para capturar toda clase de información en tiempo real. Desde información de posicionamiento con las capacidades GPS hoy en día comunes en los dispositivos móviles como smart phones y cámaras digitales, sensores colocados en todos los ambientes del planeta los cuales de forma constante reportan información como presión atmosférica, la temperatura, composicion, velocidad y otras características del agua en los oceanos[4] ó las inmensas cantidades de datos generados por los nuevos instrumentos de observación espacial que utilizan tecnología digital como elLarge Synoptic Survey Telescope (LSST) el cual se estima que generará más datos durante su primer año de operaciones (lo cual se traduce en arededor de 1.28 petabytes) que cualquier otro telescopio en la historia[30]. 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 permiten la reproducción de dicho contenido, se toma como ejemplo más cercano a las últimas tecnologías de interconexión en internet, la información generada por las personas en las redes sociales muestra un crecimiento similar gracias a que el desarrollo en los lenguajes y técnicas de programación para sitios Web facilita la actualización de contenido de manera dinámica. Al ser tan diversas las fuentes que generan conjuntos de datos de tal magnitud, al término de big data se le asocia con los datos no estructurados y aunado al fenómeno de la explosión en la generación de datos se presenta la tendencia a extraer respuestas a preguntas al analizar conjuntos de datos considerados big data mediante la aplicación de técnicas como business analytics y data mining y son las herramientas clásicas creadas 5 Figura 2: Explosión en la generación de datos - Gráca tomada del reporte c gráco The 2011 IDC Digital Universe patrocinado por EMC para dichos propósitos las cuales no son capaces de entregar resultados a un costo razonable además del hecho de que la transformación y manipulación de los datos para facilitar su procesamiento por dichas herramientas involucra una perdida en el contenido de los mismos. Al trabajar de manera directa sobre el conjunto original se obtienen respuestas más conables. La tendencia actual consiste en tener un mayor número de fuentes de datos que son más accesibles y la reducción de costos en el almacenamiento masivo se vuelve una necesidad primordial el desarrollo de las tecnologías que permitan trabajar de forma eciente con dichos conjuntos de datos y así obtener informacion útil que antes no era rentable hacerlo. 1.4. Datos no estructurados Existen diversas formas de clasicar los datos que se manejan en sistemas computacionales. Si se toma como punto de referencia la estructura propia del dato se tiene entonces que surgen dos clasicaciones generales de los datos : estructurados y no estructurados. El hecho de clasicar un tipo determinado de datos en alguna de las dos categorias antes mencionadas se basa en determinar si la forma en que internamente se organiza y se reconoce un patrón o no. Depende del contexto en el que se hace dicha clasicación los ejemplos que se dan acerca de uno u otro tipo de datos son variados por lo que a continuación se presentan dos 6 que son reconocibles con facilidad aún en un entorno multidisciplinario. El ejemplo más representativo de los tipos de datos estructurados son las bases de datos de tipo SQL (Structured Query Language ) en las cuales los datos se guardan con un orden especíco el cual facilita las operaciones que se realizan sobre ellos. Cuando se desea agregar más datos, dicha captura debe cumplir ciertas reglas y se valida que todo dato que se introduce cumple con los requisitos de la estructura a la cualse ingresa. Por otro lado, los datos no estructurados son aquellos en los cuales no se reconoce un patron o una estructura aparente como un correo electrónico o una hoja de cálculo. Tales tipos de datos se consideran no estructurados porque a pesar de que el formato de un correo electrónico tiene ciertas secciones, el contenido mismo del correo no tiene ningun orden establecido. Otros tipos de datos considerados no estructurados incluyen las imagenes u objetos constituidos por mapas de bits y todo tipo de archivo de texto[32]. En una generalización más grande, los datos no estructurados son generados por las personas y para utilizarse por personas y que según un estudio publicado en 1998 por Merryl Lynch[25] constituyen hasta el 80 % del total de los datos en las empresas. El buscar algún sentido en conjuntos de datos no estructurados es un campo de estudio en el cual la inteligencia articial y la minería de datos encuentran retos interesantes y los avances hechos al respecto proveen de fuentes de informacion que antes no eran consideradas de valor. 1.5. MapReduce Con el advenimiento de la era de la big data surgió la necesidad de encontrar métodos alternativos para procesar grandes volúmenes de datos en un tiempo y costo razonables y como resultado de tal busqueda de soluciones surgio la idea de MapReduce el cual se dene como una manera simplicada para procesar datos en clusters grandes en el paper publicado[8] por c y en el cual se basa toda una familia de algoritmos y modelos de Google programación cuyo objetivo es aprovechar aspectos del computo paralelo y datos distribuidos y así dar respuesta al requerimiento mencionado. Se basa en los conceptos de map y reduce presentes en lenguajes funcionales como Lisp en el cual un map toma como entrada una lista de valores a los que aplica una funci« para despues ser combinados mediante una operacion binaria por un reduce. El modelo de progamacion trabaja con el uso de pares de llave/valor y dos funciones : map y reduce. Dichas funciones en 7 Figura 3: Secuencia de ejecucion con MapReduce[8] escencia se denen por el usuario como requisito para respetar una forma establecida. Map toma uno de esos pares de llave/valor y da como resultado un conjunto de pares llave/valor llamados intermedios los cuales se agrupan por la misma llave para después pasar a la función Reduce que se encarga de recibir un par llave/valor y un conjunto de valores asociados a él y da como resultado otro conjunto de valores (normalmente dicho conjunto sólo contiene un elemento). En la implementacion del modelo de programación descrito de forma gráca en la Figura 3 los datos son primero divididos en M piezas de 16MB a 64MB y lanza multiples copias del programa en un cluster de maquinas. Uno de dichos programas toma el rol de Master y cada uno de los nodos restantes se llama 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. Los nodos a los que se les asigna una tarea Map toman como entrada una de las piezas en las que se divide el conjunto de datos inicial y se basa en dicha entrada de pares llave/valor a la función Map denida por el usuario la cual genera pares intermedios también compuestos por llave/valor y los guarda en su memoria para serializarlos en forma de archivos en su disco 8 local. Es en esta etapa cuando se generan las R particiones a ser utilizadas más adelante. La ubicacion de dichos archivos se conoce por el nodo Master y es este quien se encarga de enviarlos a los nodos con rol de Reduce quien a su vez considera los archivos intermedios y los ordena con el uso de la llave de cada par llave/valor. Los reducers también se encargan de ejecutar la función Reduce denida por el usuario al iterar sobre su entrada y por cada llave diferente llama a la función con la lista de valores asociados. Cuando todas las tareas de map y todas las tareas de reduce terminan, el nodo master se encarga de noticar al usuario. Depende la naturaleza del problema a resolver es posible que la implementación sobre el modelo de programación de MapReduce resulta ser más o menos compleja que al utilizar otro modelo, sin embargo, dadas las ventajas que ofrece y la simplicidad del mismo, cada vez más soluciones comerciales se construyen al demostrar su efectividad. 1.5.1. Hadoop La introducción del modelo de programación MapReduce que presenc en el 2004 despertó un enorme interés en la comunidad Open ta Google Source y no tomó mucho para que las implementaciones del mismo modelo c inició disponibles para los usuarios comenzaran a surgir. En el 2005 Yahoo una de tales implementaciones a la cual llamó Hadoop (Hadoop era el nombre de un juguete de uno de los hijos de Dough 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 modelo de programación de c , Hadoop evolucionó hasta convertirse en toda una plataforma para Google el desarrollo y administración de programas en paralelo y cuenta con su proprio sistema de archivos distribuidos llamado HDFS, una forma de manejar la distribución de tales programas en varios nodos de un cluster y una manera de aceptar la salida de todos los nodos para juntarlos en una única respuesta para el usuario[31]. Hadoop sigue el el paradigma de MapReduce tal como se presentó al c [8] y su arquitectura al momento de la implementación principio por Google se describe como sigue : Se tiene un nodo en el cluster que se designó como Master y se tienen varios Slaves se designa el Master como JobTracker y cada uno de los Slaves se llama TaskTracker. El JobTracker es el punto de entrada y se encarga de recibir las tareas y de distribuirlas, mientras que los 9 TaskTrackers se encargan de realizar el trabajo ya sea en la fase de Map ó en la de Reduce. En conjunto con Hadoop trabaja el sistema de archivos distribuido HDFS el cual está diseñado para almacenar archivos grandes, con frecuencia vistos en el entorno de Big Data, a lo largo de múltiples nodos en un cluster. Similar a Hadoop, HDFS tiene una arquitectura de Master /Slave. Se denomina el nodo Master Namenode y los Slaves se llaman Datanodes. Todas las tareas referentes al manejo de los archivos son controladas por el Namenode y se coordina con el resto de los nodos al usar una interface de Remote Call Procedure la cual le permite ejecutar funciones remotas en cada uno de los demás nodos. La lista de empresas privadas e instituciones de todo tipo que implementan soluciones basadas en Hadoop para obtener benecios al procesar Big Data sigue en crecimiento se contabilizan hasta 157 en el registro que se lleva en el sitio de Hadoop[1] y que incluye a las dos principales y más grandes c y Twitter c . Ésta lista es una prueba redes sociales como son Facebook más del éxito del modelo en el tratamiento de la naturaleza y volúmen de los datos en la actualidad. 1.5.2. Cloudera c Cuando Hadoop surge bajo el esquema de Open Source éste también heredó las características inherentes a todo proyecto que se declara como tal, sin embargo dichos proyectos son desarrollados en ocasiones por equipos de voluntarios y aunque están organizados y tienen un modelo sistemático de desarrollo de software mediante el cual publican cambios y mejoras de forma constante, en general quien decide usar un proyecto Open Source debe estar consciente del nivel de soporte que se encuentra, el cual se limita en ocasiones a un blog en línea ó a lo que se obtiene al escribir correos de manera directa a los desarrolladores. Ésto por supuesto no es aceptable en ambientes de grandes empresas que no necesariamente tienen un departamento de Investigación y Desarrollo que se dedica a construir soluciones basadas en proyectos Open Source. Es aquí donde se genera un nicho de oportunidad c las cuales se dedican a implementar solupara empresas como Cloudera ciones basadas en Hadoop para empresas y no sólo se entregan programas o sistemas que aprovechan la paralelización si no también se diseña toda una estructura de soporte que se construye alrededor de dicha solución para estar c publica de a la altura de las necesidades de categoría Enterprise. Cloudera 10 manera periódica paquetes de Hadoop los cuales son instalables y capaces de proveer todas las capacidades del mismo, además proveen de documentación, educación, videos y en general un nivel de soporte incluso para usuarios no Enterprise lo cual la convierte en una de las distribuciones Hadoop con mayor popularidad. 1.6. Smart Trac c lanzó la iniciativa global llamada Smarter Planet la En el 2008 IBM cual tiene como objetivo hacer más inteligentes los sistemas y procesos que hacen funcionar al mundo y los hace más automatizados, instrumentados e interconectados al tomar ventaja de las fuentes de datos ya disponibles hoy en día. Como parte de dicha iniciativa, en el 2011 Guadalajara se eligió junto con otras 24 ciudades en el mundo para formar parte del desafío Smarter Cities c donó servicios de consultoría a lo largo de tres semmediante el cual IBM anas por parte de seis expertos para trabajar en las estrategias que permitan convertir a Guadalajara en una ciudad más inteligente. Smarter Trac es sólo uno de los proyectos que busca tal objetivo al optimizar uno de 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 todos los actores que intervienen en el sistema se toman mejores decisiones e incluso hacer predicciones basadas en los datos obtenidos en tiempo real y así obtener el mejor benecio de los recursos con los que cuenta la ciudad de Guadalajara. Para lograr el objetivo anterior se requiere del desarrollo de multiples sistemas los cuales trabajarán en conjunto recolectando, almacenando, procesando y sintetizando los datos que se generan desde diversas fuentes como redes sociales, dispositivos moviles, GPS, etc.. todo se realizará en tiempos razonables y a su vez permitirá generar simulaciones y predicciones que exploten la base de datos almacenados. 2. Planteamiento y delimitación del problema El fenómeno que se observa en la creciente tendencia a analizar con mayor nivel de detalle los datos obtenidos mediante las ahora abundantes fuentes 11 dejó en evidencia las deciencias de los sistemas tradicionales y de forma profunda arraigados en los sistemas de negocios de las empresas y como parte de la respuesta a dicha necesidad surgió Map Reduce y su contraparte Open Source Hadoop, sin embargo ésta no es la única alternativa cuando de procesar Big Data se habla. En la actualidad existe otro nicho de mercado Figura 4: Comparación del ujo de efectivo obtenido con un proyecto de big data contra un proyecto tradicional [15] el cual se encarga de satisfacer la necesidad de procesamiento masivo pero con el mínimo esfuerzo de instalación y conguración, éstos son los llamados Big Data Appliances los cuales a grandes rasgos son sistemas completos que se entregan pre-congurados y pre-optimizados listos para ser puestos en c e IBM c y HP c ofrecen hoy en día funcionamiento. Empresas como Oracle soluciones similares. Dicho lo anterior se observan tres grandes grupos que toman como punto de referencia la adopción de tecnologías de procesamiento de Big Data : Se tiene en primer lugar el grupo de empresas o proyectos los cuales no estan dispuestos a adoptar éste enfoque y que seguirán utilizando y manteniendo sistemas tradicionales con el costo que implica el tener Hardware especializado, modelos rígidos y Software que requiere constantes cambios para sobrellevar la demanda del poder de procesamiento. Se considera un segundo grupo que decide implementar medidas para sacar provecho 12 de su Big Data pero opta por implementar una solución que sea lo menos invasiva posible a su entorno actual y que le represente el menor costo inicial (tanto en instalación, conguración, entrenamiento y capacitación para los administradores y tiempo de inicialización), dichas necesidades son cubiertas por los llamados Big Data Appliances. Luego se dene un tercer grupo el cual adopta un enfoque de sistemas abiertos (a veces apoyandose de compañías dedicadas a la implementación de dichos c ) pero siempre con la característica de que los blosistemas como Cloudera ques de construcción de la solución son servidores standard en el mercado y el resto del Hardware no se diferencía del que se encuentra en cualquier Data Center. La implementación y optimización de dicho sistema toma tiempo porque al aplicarse un proyecto Open Source se requiere de análisis del entorno con el cual se interactúa, los benecios que se obtienen son que no se denen modelos ni estructuras de datos rígidos y la escalabilidad en términos de poder de procesamiento (con más nodos) y en términos de capacidad de almacenamiento son mayores que con una solución de tipo Appliance. Es en este tercer grupo en donde se observa que las empresas que adoptan dicha solución son en su mayoría empresas del ramo de la tecnología así como Universidades quienes tienen la motivación y los recursos para hacer dicha instalación y conguración. Figura 5: Gasto de las empresas clasicadas por tamaño. Fuente: Select, modelo de la demanda TIC, October 2011 En México no se identicó algún proyecto implementado o algún cluster instalado con Hadoop son las razones por las que es factible pensar que al 13 estar la mayoría de las empresas clasicadas como PYMES y que de dichas empresas las micro y pequeñas dedican un porcentaje bajo de su inversión al area de Tecnologías de Información y por lo tanto no hay la motivación para el desarrollo de metodologías que permitan la implementación de una solucion de procesamiento de Big Data, cuya base sea Hadoop en ambientes académicos e industriales convirtiendo ésta area en un área con oportunidad de innovación en la cual los avances obtenidos son punta de lanza al estar a la vanguardia en el entorno antes mencionado. Después de plantear las ideas anteriores, se presentan las siguientes preguntas: ¾Cómo se generar una solución que incorpore los elementos que satisfacen las necesidades de un proyecto como Smarter Trac y que a su vez sea genérica para replicarla en otros proyectos similares? c con respecto a una solución con ¾Qué ventajas ofrece Hadoop/Cloudera bases de datos tradicionales al trabajar con datos como los que se espera recibir en el proyecto de Smarter Trac? Con la documentación adecuada y una exposición de un caso de éxito,¾Cómo c en proyectos desarrollados en incentivar la adopción de Hadoop/Cloudera México? 3. Hipótesis La implementación de un sistema basado en una arquitectura de cómputo paralelo y distribuido proveé las características necesarias para el procesamiento de los volúmenes de datos generados por las fuentes como las que se tienen en un proyecto como Smarter Cities lo cual es necesario para proveer respuestas en un tiempo razonable comparado con una solución basada en sistemas de bases de datos SQL tradicionales. El número publicado de proyectos basados en Hadoop está relacionado con la dicultad de implementación y la variedad de alternativas de herramientas auxiliares Open Source por lo que el desarrollo de un sistema automatizado de instalación y conguración de un cluster basado en Hadoop fomentará la creación de clusters basados en dicha tecnología y su aplicación en diferentes tipos de proyectos. 14 4. Ob jetivo Realizar un estudio, integración y desarrollo para la puesta a punto de una arquitectura la cual dé respuesta a la necesidad de procesamiento paralelo y distribuido de conjuntos masivos de datos no estructurados para ser utilizado como base del manejo de información del proyecto Smart Trac de CUCEA e IBM. 5. Método El método elegido para la realización de esta investigación es el llamado estudio de caso porque dada la naturaleza del proyecto mismo se requiere poner foco en los detalles del diseño y de la implementación así como obtener un profundo entendimiento de cada uno de los componentes y de las etapas necesarias para lograr una instalación exitosa. De forma adicional se requiere que la especicación de requerimientos sea realizada con detalle y que el entorno utilizado se describa de forma exhaustiva. Al tomar en cuenta las necesidades antes mencionadas podemos ir a la dención dada por [23] y observar que en efecto un estudio de caso se ajusta al tipo de proyecto que se pretende realizar y se pueden usar los resultados obtenidos de la profunda comprensión y análisis de los elementos que lo componen para proveer las respuestas a las preguntas que se plantean. c se Plataforma de prueba: Utilizando la plataforma Elastic Cloud de Amazon creará un cluster compuesto de varios servidores virtuales los cuales se usarán para formar un cluster de Hadoop utilizando el Hadoop Distributed Filesystem como sistema de archivos distribuido. Una vez realizada la conguración c se inicial, se instalará Ganglia como sistema de monitoreo. KarmaSphere usará como entorno de trabajo para ejecutar y depurar el código que se usará para vericar la funcionalidad del cluster y tomar mediciones. (ver gura 6) 6. Cronograma de Actividades Para la realización de este trabajo de tesis propongo la siguiente tabla donde se ilustra el período de duración de cada actividad en secuencia cronológica. Las actividades consisten en: 15 Figura 6: Diagrama de procedimiento de implementación de la solución 1. Búsqueda de bibliografía 2. Síntesis de la información adquirida 3. Estructura del plan de trabajo de la implementación 4. Instalación del cluster 5. Pruebas con karmasphere sobre el cluster 6. Automatización de la instalación y conguración 7. Obtención de resultados y análisis de los mismo 8. Conclusiones y perspectivas 9. Redacción en inglés 16 Actividades Ene F eb 1 2 3 4 5 6 7 8 9 * * * M ar Abr M ay * * * * * * * Jun Jul * * Ago Sep * * * * * Oct * * * * * Cuadro 1: Cronograma de actividades Referencias [1] Powered by hadoop. http://wiki.apache.org/hadoop/PoweredBy. [2] Smarter planet overview. http://www.ibm.com/smarterplanet/us/en/overview/ideas/index.ht [3] Abbott, M. R. A new path for science? 6. [4] Barga, J. R. D. R. S. [5] Barney, B. [6] Byers, J. M. M. C. B. B. J. B. R. D. C. R. A. H. [7] Corp., I. [8] Dean, J., and Ghemawat, S. [9] deRoos Thomas Deutsch George Lapis, P. C. Z. C. E. D. A 2020 vision for ocean science. 11. Introduction to parallel computing, February 2012. Big data: The next frontier for innovation, competition, and productivity. http://www.mckinsey.com/Insights/MGI/Research/Technology_and_Innovation/Big_data_ May 2011. Ibm infosphere biginsights enterprise edition for turning complex, internet-scale information into insight, costeectively. 3. on large clusters. 13. Mapreduce: Simplied data processing Understanding Big Data Analytics for Enterprise Class Hadoop and Streaming Data. Mc Graw Hill, 2012. 17 [10] Dumbill, What is big http://radar.oreilly.com/2012/01/what-is-big-data.html, 2012. [11] Gannon, J. L. D. [12] Glover, A. [13] in Tolle, T. H. S. T. K. [14] Jenkin, N. [15] Kelly, [16] Murthy, A. C. [17] Pacheco, P. [18] Parastatidis, [19] Reed, D. G. D. [20] Schreiner, [21] Shankar, [22] Srikanth, S. S. C. H. N. L. V. [23] Stake, R. E. E. data? January Multicore computing and scientic discovery. 4. Java development 2.0: Big data analysis with hadoop mapreduce. http://www.ibm.com/developerworks/java/library/jjavadev2-15/, January 2011. , Ed. The Fourth Paradigm Data-Intensive Scientic Discovery. Microsoft Research, 2009. Distributed machine learning with hadoop. 41. J. Oracle: Big data partner or big data boat anchor? http://wikibon.org/blog/oracle-big-data-partner-or-big-databoat-anchor/, October 2011. The next generation of apache hadoop mapreduce. http://developer.yahoo.com/blogs/hadoop/posts/2011/02/mapreducenextgen/, February 2011. An Introduction to Parallel Programming. Elsevier, 2011. A platform for all that we know: Creating a knowledge- driven research infrastructure. 8. S. Parallelism and the cloud. 6. Parallel and distributed computing. http://www.risc.jku.at/research/parallel/description/, 2006. W. R., and Narendra, G. Mapreduce programming with apache hadoop process massive data sets in parallel on large clusters. http://www.javaworld.com/javaworld/jw-09-2008/jw-09hadoop.html, 09 2008. Smarter cities series: Understanding the ibm approach to trac management. Investigación con estudio de casos. Morata, 1999. 18 [24] Taft, Apache launches hadoop http://www.eweek.com/c/a/Linux-and-Open-Source/ApacheLaunches-Hadoop-10-415446/, January 2012. [25] Tylman, C. C. S. J. [26] University, G. C. [27] van [28] Weglarz, G. [29] Wilson, G. V. [30] Wong, A. A. G. C. G. [31] Woods, [32] Yelick, K. A. R. B. B. C. C. J. J. G. P. H. K. K. D. A. P. W. L. D. K. Lynch, 1998. 1.0. Enterprise information portals. Tech. rep., Merril Introduction to parallel programming and mapreduce. http://code.google.com/edu/parallel/mapreduce-tutorial.html. Steen, A. S. Paradigms. 2002. T. M. Distributed Systems: Principles and Two worlds of data â unstructured and structured. http://www.information-management.com/issues/20040901/10091611.html, September 2004. The history of the development of parallel computing. http://ei.cs.vt.edu/ history/Parallel.html, September 1994. the data deluge. 5. Bringing the night sky closer: Discoveries in Explaining hadoop to your http://www.forbes.com/sites/danwoods/2011/11/03/explaininghadoop-to-your-ceo/, March 2011. D. ceo. The landscape of parallel computing research: A view from berkeley. Tech. rep., Electrical Engineering and Computer Sciences University of California at Berkeley, 2006. P. J. S. S. W. W. K. A. [33] Hadoop for business: Interview with mike olson, chief executive ocer at cloudera. http://www.odbms.org/blog/2011/04/hadoop-for-business-interviewwith-mike-olson-chief-executive-ocer-at-cloudera/, April 2011. Zicari, R. V. 19