Protocolo de Tesis:

Anuncio
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
Descargar