UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS

Tamaño: px
Comenzar la demostración a partir de la página:

Download "UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS"

Transcripción

1 UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN PARALELIZACIÓN DE UN ALGORITMO PARA LA DETECCIÓN DE CÚMULOS DE GALAXIAS MEMORIA PARA OPTAR AL TÍTULO DE INGENIERO CIVIL EN COMPUTACIÓN MARCEL ANDRE AUGSBURGER BECERRA PROFESOR GUIA: NANCY HITSCHFELD KAHLER MIEMBROS DE LA COMISION: LUIS CAMPUSANO BROWN JORGE PÉREZ ROJAS SANTIAGO DE CHILE ENERO 2012

2 Tabla de contenido Resumen Introducción La nueva astronomía La computación paralela Motivación Importancia del análisis de cúmulos de galaxias Importancia del análisis paralelo Otras aplicaciones del software Objetivos Contenido de la memoria Antecedentes Tipos de paralelismo Herramientas Algoritmo secuencial de detección de cúmulos de galaxias Análisis...17 Arquitectura de Hadoop Distribución de datos Procesamiento de datos Escalabilidad HDFS MapReduce Arquitectura de Vocludet Versión disponible de Vocludet Alternativas de implementación

3 MapReduce de Hadoop Pig Streaming Alternativa escogida Diseño e Implementación Diseño de la solución División de los datos Procesamiento de los datos Re ensamblaje de los resultados Diseño final Código Implementado Evaluación Datos de prueba Pruebas Particiones Ensamblaje Verificación de datos y procedimientos Desempeño Uso de recursos Desempeño comparativo Conclusiones Anexos...66 Tabla 3: Distribución de cúmulos por tamaño...66 Mapper Function 2 celdas 10% de overlap...67 Re Assembly Function Bibliografía

4 Resumen Dados los avances en la tecnología, la astronomía es capaz de recolectar del orden de terabytes de datos por noche. El análisis manual de ésta es prácticamente imposible, por lo que es constante la necesidad de nuevos y mejores algoritmos para realizar análisis automático. Por otro lado, la computación paralela provee herramientas para realizar análisis de datos masivos, las que incrementan la capacidad total de procesamiento y disminuyen el tiempo requerido. Existe un software para la búsqueda de cúmulos de galaxias, el cual funciona de forma secuencial. Hacer que este software funcione en forma paralela sería de gran utilidad, dada la cantidad de datos que existen y existirán para analizar. El objetivo de esta memoria es diseñar e implementar una solución computacional que permita efectuar la detección de cúmulos de galaxias en forma paralela. La paralelización del algoritmo se hizo sobre el framework Hadoop, utilizando la herramienta Streaming con el lenguaje Python para el desarrollo del software. Se construyó una aplicación que divide los datos de entrada de forma inteligente, ejecuta el algoritmo de detección de cúmulos de galaxias en varias máquinas de forma paralela, y re ensambla los resultados parciales obtenidos. Se estudiaron estrategias para el particionamiento de los datos, utilizando celdas con distintas geometrías. También se estudiaron e implementaron estrategias para el re ensamblado de los resultados. En base a conocimientos astronómicos y experimentación se determinó la utilidad, dado el contexto, de cada estrategia, y los valores límites para sus parámetros. Los resultados son los siguientes: (1) un software paralelo para la detección de cúmulos de galaxias; (2) al correr el programa paralelo con dos particiones, el tiempo de ejecución se reduce a la mitad; (3) el software secuencial de detección de cúmulos se observa altamente dependiente de las particiones utilizadas, encontrándose para una partición de 2 celdas sólo un 11% de los cúmulos que se detectaban en la versión secuencial. Como trabajo futuro se propone: (1) modificar el software secuencial de búsqueda de cúmulos de galaxias para que detecte cúmulos sin miembros repetidos; (2) ejecutar este software en un clúster de computadores o con cloud computing, para medir las mejoras en tiempo; (3) la ejecución de este software con sets de datos más grandes, para medir la escalabilidad de éste; (4) crear una partición adhoc al set de datos. 4

5 1. Introducción Desde la antigüedad, diferentes culturas y personas han creado catálogos de estrellas. Al principio se hacían observaciones a ojo desnudo, hasta que en 1610 Galileo Galilei apuntó su telescopio al cielo. Al irse mejorando las capacidades de los telescopios, la cantidad de información astronómica y por ende los catálogos estelares fueron creciendo en gran escala. Hoy en día las herramientas de observación permiten escanear el cielo y guardar los datos de manera automática, generando terabytes de información sólo de pequeñas áreas del cielo. Al haber tanta información, el análisis manual de ésta es prácticamente imposible, por lo que es constante la necesidad de nuevos y mejores algoritmos computacionales para realizar análisis automático. A pesar de ser mucho más eficiente, la gran cantidad de datos hace que el análisis computacional requiera de mucho tiempo de procesamiento. La computación paralela puede disminuir los costos en tiempo, ya que permite aumentar los recursos asignados a cada tarea. La computación paralela divide un problema en varios sub problemas, los que son resueltos de manera concurrente. De tal manera se puede resolver cada sub problema con distintos recursos, pudiendo distribuir la carga en equipos que pueden estar separados físicamente. Sin embargo, los programas paralelos agregan dificultad en los procesos de división del problema, en la concurrencia, y en el re ensamblado de la solución completa a partir de las soluciones parciales. Existe un software desarrollado por Daniel Pizarro et al, el cual aplica un algoritmo basado en el Voronoi Tessellation Technique (1) para la detección de cúmulos de galaxias. Este software lleva por nombre Vocludet. Uno de los componentes del Vocludet es el Voronoi Tessellation Maximum Likelihood Estimator, en adelante VTMLE, el cual lleva a cabo el proceso de búsqueda de cúmulos (2). Este software funciona de manera secuencial La nueva astronomía Gracias a los avances en la tecnología de los telescopios, algoritmos de detección, y hardware computacional, la recolección de datos astronómicos es actualmente del orden de terabytes por noche (4). Este incremento en la obtención de datos ha ocurrido en muchas áreas de la ciencia, cambiando la forma en que se hace la investigación y transformándola en análisis de datos sobre bases de datos con mucha información. En el área de la astronomía se habla del Observatorio Virtual, donde se puede acceder a la información de distintos centros de datos de manera relativamente fácil y transparente. Se 5

6 están aportando datos y relacionándolos entre sí a tasas cada vez mayores, lo cual ha tornado la obtención de datos por este medio en algo tan importante como la obtención de datos a través de telescopios. En los últimos años se han puesto a disposición resultados de numerosos estudios con distintos tipos de información astronómica. En particular existen datos e interés en la estructura a gran escala del universo, donde han jugado un rol importante las observaciones de cúmulos de galaxias, al servir para contrastarlas con las predicciones de diferentes modelos teóricos. Los cúmulos de galaxias, mencionados previamente, son sistemas que contienen desde 50 a 1000 galaxias unidas por atracción gravitacional mutua; las galaxias son sistemas de estrellas, las cuales poseen típicamente cientos de miles de millones de estrellas. Estos cúmulos han sido detectados históricamente en forma visual, y recientemente se han aplicado algoritmos para la detección automática de éstos. El sondeo 2dF Galaxy Redshift Survey (2dFGRS), llevado a cabo por el Observatorio Anglo-Australiano entre 1997 y 2002, generó variados tipos de información respecto a galaxias, incluyendo su distribución al determinar su posición en tres dimensiones (5). La estimación de distancias es posible gracias a la información del corrimiento al rojo, que es el aumento de la longitud de onda equivalente al Efecto Doppler en las ondas físicas La computación paralela La computación paralela es la utilización simultánea de múltiples recursos de computación para resolver problemas computacionales. Tradicionalmente, el software ha sido escrito para ser ejecutado en forma secuencial. Esto significa que para resolver un problema, el algoritmo que se implementa debe ser escrito como una secuencia de instrucciones. Como restricción se tiene que estas instrucciones deben ser ejecutadas una a la vez, y solamente en el orden especificado por el algoritmo. Cada una de estas instrucciones es ejecutada por una CPU (Central Processing Unit). El tiempo que demora la resolución del problema depende de la eficiencia del algoritmo y de la rapidez con la que la CPU realiza los cálculos, haciendo que este último factor haya sido y siga siendo sujeto de estudio. 6

7 Por décadas, la velocidad de procesamiento de los computadores ha ido incrementando según la Ley de Moore, esto es, duplicándose cada aproximadamente dos años (6). Este incremento se ha debido en gran medida al aumento de la frecuencia de reloj de los procesadores, sin embargo se está llegando a un límite conocido como power wall, debido al consumo exponencial de energía con el aumento en la frecuencia de operaciones, y el consiguiente aumento de temperatura. Existen también cuellos de botella como la rapidez de acceso a la memoria, por lo que el desarrollo de procesadores más rápidos no necesariamente va a significar un incremento en la eficiencia final de los computadores. En la búsqueda de cómo continuar incrementando la capacidad de procesamiento, y tomando en cuenta otros factores limitantes, se ha considerado el paralelismo como buena solución. La computación paralela se ha usado históricamente, mostrando buenos resultados en distintas áreas, como en computación de alto rendimiento, servidores, aceleración gráfica, y muchos sistemas embebidos (7). Así podemos encontrar actualmente diseños de procesadores con múltiples núcleos, los cuales permiten realizar varios cálculos por ciclo, para computadores multipropósito Motivación Existe un software para la búsqueda de cúmulos de galaxias, el cual funciona de forma secuencial. Hacer que este software funcione en forma paralela es de gran utilidad, dada la cantidad de datos que existen y existirán a futuro para analizar Importancia del análisis de cúmulos de galaxias Los cúmulos de galaxias son de gran interés para la astronomía. En las últimas décadas han tenido un importante rol en el estudio cosmológico: sirven para reconocer las estructuras en gran escala del universo, su densidad numérica se puede contrastar con predicciones de distintos modelos, y además sirven para monitorear la formación y evolución de las galaxias (9) Importancia del análisis paralelo Como se mencionó, hoy se cuenta con un observatorio virtual con grandes cantidades de datos. Futuros sondeos prometen aumentar el volumen de datos en órdenes de magnitud, produciendo una llamada avalancha de datos astronómicos. 7

8 La ciencia en general ha logrado producir más datos de los que se pueden analizar, y dada esta problemática, es de gran importancia primero lograr el análisis automático de los datos, e inmediatamente lograr paralelizarlo para aminorar los tiempos de procesamiento. Lo relevante de esta tarea para la astronomía, la aplicabilidad en otras ramas de la ciencia, y la conocida dificultad de paralelizar procesos, hacen de éste un tema interesante como memoria Otras aplicaciones del software El análisis de cúmulos es un problema recurrente en varias áreas, entre éstas el aprendizaje automático, reconocimiento de patrones, análisis de imágenes, recuperación de la información y bioinformática. Dado que el software desarrollado se creó de manera flexible, éste puede ser usado no sólo en el análisis de datos astronómicos, sino que también en cualquiera de las áreas recién mencionadas. Si bien la aplicación secuencial ya lo permitía, el desarrollo de este análisis en paralelo abre las puertas al procesamiento de órdenes de magnitud mayor de datos, pudiéndose atacar problemas que de otra manera hubiese sido imposible Objetivos El objetivo general es diseñar e implementar una solución computacional que permita detectar cúmulos de galaxias en forma paralela, utilizando un framework que permita distribuir la carga de procesamiento. Los objetivos específicos son: Construir una aplicación utilizando el framework Hadoop para llevar a cabo el análisis de datos en forma paralela. Lo anterior considera el diseño e implementación de un programa que realice una buena partición de los datos, resuelva el problema sobre cada partición, y calcule la solución completa re ensamblando los resultados parciales. Evaluar si se efectúa una mejora a la solución existente, lo que implica comparar la aplicación secuencial y la aplicación paralela en término de tiempos y consumo de recursos. Determinar las diferencias y similitudes entre los resultados obtenidos por el programa secuencial y el paralelo. 8

9 1.5. Contenido de la memoria En la sección 2 se presentan las tecnologías disponibles y el algoritmo que se quiere paralelizar. En la sección 3 se analizan las herramientas con las que se cuenta para el desarrollo del software, se comparan las diferentes alternativas y su estado, y se decide cuáles se van a utilizar y de qué forma. En la sección 4 se presentan las decisiones que se consideraron para el diseño del software, se propone un diseño final, y se muestra y explica el código implementado. En la sección 5 se presentan los experimentos realizados para probar el software y determinar su eficacia y eficiencia. Se incluye una descripción de los datos de prueba, las pruebas mismas, y el desempeño del software. Finalmente, en la sección 6 se presentan las conclusiones a las que se llegó con este trabajo, según los objetivos que se habían planteado, y se proponen acciones para continuarlo a futuro. 9

10 2. Antecedentes En este capítulo se presentan los antecedentes del problema, tales como las tecnologías disponibles y el algoritmo que se quiere paralelizar Tipos de paralelismo La computación paralela se puede llevar a cabo en varios niveles, desde la cantidad de bits que se pueden procesar por ciclo, la cantidad de instrucciones que se pueden procesar en forma paralela, la paralelización en procesamiento de datos, hasta la paralelización de tareas. De todos modos, sólo se pueden realizar ciertos cálculos en paralelo: algunos deben ser secuenciales pues dependen de resultados obtenidos por cálculos previos. Se puede hacer una clasificación de los computadores que trabajan en forma paralela según el nivel al cual el hardware provee el paralelismo. Para el paralelismo a nivel de núcleos de procesamiento, esta clasificación es a grandes rasgos análoga a la distancia entre los nodos básicos de computación, y no son mutuamente excluyentes. Computación Multinúcleo: Un procesador multinúcleo es aquel que posee múltiples unidades de ejecución (núcleos) en el mismo chip. Estos procesadores tienen la capacidad de ejecutar múltiples instrucciones por ciclo, provenientes de múltiples flujos de instrucciones. Multiprocesamiento Simétrico: Un multiprocesador simétrico es un computador que posee múltiples procesadores idénticos, los cuales comparten el acceso a la memoria a través de un único bus de datos. Esto permite asignar más de un procesador a una o varias tareas. Dado el diseño del acceso a datos, los multiprocesadores simétricos suelen no tener más de 32 procesadores. Computación Distribuida: La computación distribuida es un modelo de computación donde se usan múltiples computadores para la resolución de un problema. Estos se coordinan entre sí a través de un sistema distribuido, definido como: una colección de computadores separados físicamente y conectados entre sí por una red de comunicaciones distribuida, donde cada máquina posee sus componentes de hardware y software que el usuario percibe como un solo sistema. Se define como nodo a una unidad individual, típicamente una máquina, dentro de un sistema distribuido. El framework utilizado en el presente trabajo se construyó para que pudiese ser utilizado por cualquiera de las tres clases de computación paralela, abstrayéndose de este nivel y funcionando indiferente a la 10

11 clase de paralelismo y cantidad de núcleos utilizados. Sin embargo, presta su verdadera contribución al ser aplicada con computación distribuida, al crecer la capacidad de procesamiento de datos en paralelo en órdenes de magnitud. Para la cantidad de datos que genera la ciencia, y la astronomía en particular, se hace necesario que el procesamiento de información se haga con computación distribuida. La computación a gran escala presenta un gran número de dificultades. La mayoría de éstas derivan de la coordinación entre múltiples máquinas para la solución de un problema, y las consiguientes fallas que se pueden presentar, tanto de comunicación, como de los nodos en sí. En un ambiente distribuido, las fallas parciales son esperadas e incluso comunes: las redes pueden experimentar variados tipos de problemas derivados de fallas físicas o de congestión, los cuales impiden que los datos lleguen a destino en el momento que debían; los nodos pueden dejar de funcionar debido a problemas de hardware, software, o de capacidad; los datos pueden estar corrompidos por causas en la generación, transmisión o por ataques maliciosos; puede haber diferencias en el protocolo de transmisión de diferentes versiones del software; los relojes pueden desincronizarse; pueden ocurrir problemas de sincronización en el acceso a datos; etc. El resto del sistema distribuido debiese ser capaz de recuperarse en forma independiente del elemento fallido, para cada uno de los casos posibles de falla (8). Además de los problemas asociados con fallas en la red o en los nodos, también existe el problema de que los nodos poseen hardware con capacidad finita. Los elementos más importantes para estos efectos son el tiempo de procesador, la memoria, el espacio en disco y el ancho de banda de la red. Cada nodo tiene por lo general algunos gigabytes de memoria, lo que implica que si el set de datos es de algunos terabytes, se necesitarían del orden de miles de nodos para guardar la información en RAM. Los discos duros proveen un espacio de almacenamiento mucho mayor, que pueden ser del orden de terabytes. Sin embargo, los sets de datos que se generan al procesar la información pueden llegar a ocupar mucho más espacio que el input original, lo que podría llevar a sobrepasar la capacidad de almacenamiento de un nodo y recurrir a la de otro. El ancho de banda es un recurso escaso incluso en una red interna, y mucho más si los nodos están separados por medianas o grandes distancias. Es fácil que se saturen las redes al haber grandes cantidades de datos siendo transferidos, y que por ello se pierdan datos o no lleguen en el momento requerido. Un sistema distribuido de gran escala debe poder manejar los recursos previamente mencionados en forma eficiente, buscando un equilibrio entre el funcionamiento del sistema en forma íntegra y el procesamiento de datos. 11

12 El desafío más grande en el diseño de sistemas distribuidos es la sincronización entre los nodos. Si éstos tienen la capacidad de comunicarse entre sí de manera explícita, se enfrentan riesgos como producir más llamados a procedimientos remotos de los que soporta el sistema, bloqueos mutuos sobre los datos y otras condiciones de carrera. Además está la complejidad de diseñar un sistema que sea capaz de recuperarse ante el fallo de un nodo, con poca pérdida de recursos y redistribuyendo la carga de manera eficiente en el resto del sistema Herramientas La programación funcional utiliza frecuentemente las funciones map y reduce, las que sirvieron como base para que Google creara el framework MapReduce (10). Este modelo de programación tiene la ventaja de proveer automáticamente paralelización y distribución, además de ser tolerante a fallas. Éste fue utilizado por el framework Apache Hadoop, el cual permite crear programas paralelos. Map-reduce trabaja con pares de key/values (llave/valores): la función map recibe uno de estos pares, lo procesa y genera un set de pares intermedios; la función reduce procesa los pares intermedios para generar uno o varios valores finales. Esto se ve ilustrado en el siguiente ejemplo, donde se cuentan las palabras de un texto: int resultado=0 La función map recibe un texto, valorentrada, y emite un par por cada palabra, donde el key es la palabra y el value es 1. En este programa en particular no se utiliza el primer parámetro recibido, llaveentrada. La función reduce recibe entonces un key, llaveintermedia, y una lista con el valor 1 repetido tantas veces como apariciones del key haya habido en el texto original, valoresintermedios, y emite la suma de los valores de la lista. 12

13 Tanto la función map como reduce se pueden ejecutar en forma paralela. Los datos de entrada se pueden distribuir en tantos map como se estime conveniente, usualmente la misma cantidad que el número de procesadores disponibles. Luego se crean tantas funciones reduce como keys hayan, las cuales son procesadas en forma paralela por los procesadores que se asignen. El software se instaló y configuró en varios modos para evaluar la ejecución. También se investigaron herramientas disponibles y se escribieron programas básicos para evaluar la complejidad de desarrollar con este framework. También se buscó información para determinar si el framework es capaz de manejar la gran cantidad de datos que se requiere en la búsqueda de cúmulos de galaxias. Según los creadores, éste es capaz de manejar del orden de petabytes, lo cual es más que suficiente considerando que la cantidad de datos astronómicos que se quieren procesar es de alrededor de 6 terabytes. Además, ya se ha utilizado en el procesamiento de imágenes astronómicas en universidades como la Washington University (11). Respecto a dónde y cómo se debería ejecutar el software desarrollado para procesar la información: el framework está pensado para ser usado con cualquier cantidad de recursos, pero en particular funciona bien con cloud computing. El modelo de programación map-reduce tiene la ventaja de que la escalabilidad es directa, por lo que no es necesario esfuerzo alguno para ejecutarlo en una cantidad mayor de máquinas. Al utilizar cloud computing se pueden arrendar un número variable de recursos, por lo que se puede reducir el tiempo de procesamiento de forma proporcional a la cantidad de procesadores que se arrienden. En caso de aumentar la cantidad de datos a procesar, se pueden arrendar más recursos, pudiendo mantenerse el tiempo de procesamiento relativamente independiente de la cantidad de datos de entrada. Además existen proyectos de grandes compañías como The New York Times y famosas universidades como Stanford, que se han llevado a cabo con Apache Hadoop sobre la plataforma Amazon Elastic Compute Cloud (12). Haciendo una breve comparación con otros sistemas de computación paralela sobre grandes volúmenes de datos, existen otras alternativas como Condor, pero ésta no distribuye los datos automáticamente como Apache Hadoop. Esto significa que el control de datos se debe realizar de forma manual, y que la colaboración entre nodos se debe programar con sistemas de comunicación como MPI, lo cual conlleva un gran esfuerzo y aumenta la probabilidad de errores. Esto no es necesario en Apache Hadoop, pues son tareas automatizadas que constituyen parte del framework, y de las cuales el programador se puede abstraer. Si bien la eficiencia puede ser menor que al computarlo con otros sistemas, la ganancia en 13

14 facilidad para el programador, la escalabilidad directa, y los bajos costos de cloud computing hacen de este framework una buena opción para el proyecto Algoritmo secuencial de detección de cúmulos de galaxias Daniel Pizarro desarrolló un software llamado Vocludet para la detección de cúmulos de galaxias (2). Éste consta de dos partes, el algoritmo VTMLE y el DePropris, siendo el primero utilizado para la detección de cúmulos de galaxias. El algoritmo VTMLE recibe como entrada un set de puntos en un espacio de tres dimensiones, donde cada punto representa las coordenadas de una galaxia que hay en el espacio que se quiere analizar. Con esta información se calcula el diagrama de Voronoi que se construye a partir de los puntos, el cual entrega una estimación de la densidad local de galaxias para cada punto del set. Se itera sobre los datos de entrada para encontrar posibles cúmulos de galaxias, lo que consta de las siguientes fases: Detección de semilla: Para esto se busca el área de mayor densidad de galaxias, lo que equivale a buscar la celda de menor volumen en el diagrama. Se debe verificar que la semilla encontrada no sea parte de un cúmulo encontrado en una iteración previa. Detección de miembros del cúmulo (Algoritmo 1): Partiendo con la semilla como cúmulo base, se trata de aumentar el valor resultante de una función de probabilidad, el Estimador de Máxima Verosimilitud (EMV), agregando los puntos vecinos al cúmulo. Este proceso se lleva a cabo hasta que una de las siguientes dos condiciones deja de cumplirse: o No se puede incrementar el EMV del conjunto al agregar alguno de sus vecinos. En este caso se encontró un cúmulo y se guardan los datos. o El elemento agregado forma parte de otro cúmulo. En este caso se descarta la semilla que originó este cúmulo. El algoritmo recibe el diagrama de Voronoi previamente calculado con la herramienta Qhull. Este software es capaz de generar el diagramas de Voronoi en varias dimensiones. En particular sirve para generar el diagrama de Voronoi en tres dimensiones. A continuación, se presenta el pseudocódigo del algoritmo para el caso de la búsqueda de un cúmulo: 14

15 Algoritmo 1: Algoritmo VTMLE Este pseudocódigo debe enmarcarse dentro del algoritmo general, que busca todos los cúmulos de galaxias en una zona del espacio. En éste se deben hacer la búsqueda de la semilla y el conteo de las celdas usadas y cúmulos de galaxias encontrados, e invocar al algoritmo de búsqueda individual para encontrar posibles cúmulos de galaxias a partir de cada semilla. Se presenta el pseudocódigo del algoritmo general a continuación: 15

16 Algoritmo 2: Algoritmo de detección de cúmulos 16

17 3. Análisis En este capítulo se analizan las herramientas con las que se cuenta para el desarrollo del software, se comparan las diferentes alternativas y su estado, y se decide cuáles se van a utilizar de qué forma Arquitectura de Hadoop Hadoop es un framework que permite procesar datos usando el modelo de programación map-reduce. Está diseñado para procesar grandes volúmenes de información de manera eficiente a través de computación distribuida, conectando computadores y coordinándolos para trabajar juntos en paralelo. Permite trabajar con diferentes cantidades de nodos, permitiendo escalabilidad desde un servidor hasta miles de máquinas, cada una con capacidad de computación y almacenamiento locales. El sistema está diseñado para detectar y manejar fallas en el nivel de aplicación. Esto permite despreocuparse de contar con hardware de alta disponibilidad, ya que el sistema es capaz de soportar y manejar fallas en cualquiera de los nodos del cluster. Si bien existen otros sistemas que realizan procesamiento de grandes volúmenes de datos en sistemas distribuidos, Hadoop tiene la ventaja de proveer un modelo de programación simple, el cual permite escribir y testear sistemas distribuidos de forma rápida. Además provee un sistema eficiente de distribución automática de datos y trabajo en el conjunto de nodos, y también dentro de cada nodo con sus respectivos núcleos. El framework está constituido por las siguientes componentes, que en su totalidad permiten la creación y ejecución de programas distribuidos y en forma paralela: Hadoop Common: Un set de herramientas que sirven de base para otros componentes y proyectos de Hadoop. Esto incluye el sistema de archivos básico, manejo de llamadas a procedimientos remotos, y bibliotecas de serialización. Hadoop Distributed File System (HDFS): Un sistema de archivos distribuido, que provee un rápido acceso y alto flujo de datos. Es el sistema primario de almacenamiento de datos usado por las aplicaciones de Hadoop, el cual replica los bloques de datos y los distribuye en nodos del cluster. Es esta distribución y redundancia la que permite el acceso rápido y la tolerancia a fallos en los nodos del cluster. 17

18 Hadoop MapReduce: Un framework de software para el procesamiento distribuido de grandes cantidades de datos en clusters de computadores. Éste provee un modelo de programación que permite crear aplicaciones que procesan datos en forma paralela. Existen también proyectos que extienden las capacidades de Hadoop, agregando funcionalidades o usándolo como base para realizar tareas de más alto nivel. Entre éstos destacan lenguajes de alto nivel que facilitan el acceso y procesamiento de datos Distribución de datos En un cluster de Hadoop, los datos se distribuyen a todos los nodos a medida que éstos se van cargando en el sistema, como muestra la Figura 1. El HDFS se encarga de particionar los datos y distribuirlos en forma redundante, de tal manera que cada conjunto de datos se encuentre replicado en más de un nodo. Esto evita pérdida o inaccesibilidad a cualquier conjunto de datos, en caso de presentarse fallas en algún nodo o en las redes. Un sistema de monitoreo activo se encarga de replicar los datos en respuesta a fallas en el sistema. A pesar de su distribución en varios nodos, los conjuntos de datos forman parte del mismo espacio de nombres, por lo que son fácil y completamente accesibles. Al cargar la información al sistema, cada archivo se divide en líneas, o en algún otro formato específico para la lógica del programa en particular. A esto se le llama orientación a registros, donde cada registro es una línea o su símil. Cada proceso que esté corriendo en cada nodo procesa un subconjunto de estos registros, siendo el framework quien organiza los datos que se procesan, según la proximidad que éstos tengan a los datos. De esta forma, la mayoría de los datos son leídos directamente desde el disco duro local, aliviando la carga en las redes y evitando transferencias innecesarias. La estrategia utilizada para la organización tareas consiste en mover la capacidad de computación hacia los datos, en vez de mover los datos. Esto se traduce en una alta localización de los datos, que a su vez resulta en un alto desempeño. 18

19 Figura 1: Distribución de datos en Hadoop Procesamiento de datos Hadoop limita la cantidad de comunicación que puede ocurrir entre los procesos, ya que cada registro es procesado por una tarea aislada del resto. Aunque esto suena como una gran limitación en un principio, hace que el framework sea mucho más confiable. Hadoop no está diseñado para ejecutar cualquier programa y distribuirlo en un cluster, sino que los programas deben estar escritos en acuerdo a un modelo de programación en particular, llamado MapReduce. En MapReduce, los registros son procesados de forma aislada por tareas llamadas mappers, las que suelen utilizarse para clasificar datos. En caso de ser necesario, un proceso llamado shuffle toma los resultados obtenidos por todos los mappers, y los agrupa según estas clasificaciones. Finalmente los datos son procesados por tareas llamadas reducers, donde cada una recibe datos pertenecientes a una o más clasificaciones, y las procesa. La Figura 2 muestra el proceso recién descrito. 19

20 Figura 2: Procesos de map y reduce en Hadoop Los nodos de un cluster de Hadoop se comunican entre sí, pero a diferencia de otros sistemas distribuidos, donde los desarrolladores de la aplicación ordenan explícitamente los flujos de datos de nodo a nodo a través de buffers MPI, la comunicación en Hadoop se lleva a cabo de forma implícita. Los subconjuntos de datos pueden ser etiquetados, lo que es utilizado por Hadoop para saber cómo enviar la información a un nodo destinatario común. Hadoop maneja internamente todas las transferencias de datos y los asuntos referentes a la topología del cluster. Al restringir la comunicación entre los nodos, Hadoop hace que el sistema distribuido sea mucho más confiable. Las fallas individuales en los nodos pueden solucionarse reiniciando las tareas en otras máquinas. Dado que las tareas a nivel de usuario no se comunican explícitamente entre sí, no es necesario un intercambio de mensajes en los programas de usuario, ni tampoco definir puntos de retorno para retomar la ejecución en caso de fallas. Ante la falla en un nodo, el resto de los nodos continúan operando como si nada hubiese pasado, dejando las complicaciones del reinicio parcial del programa a la capa subyacente de Hadoop. 20

21 Escalabilidad Una de los grandes beneficios de Hadoop en comparación a otros sistemas distribuidos, es su curva plana de escalabilidad. El rendimiento de Hadoop puede no ser espectacular si es que se ejecuta con pocos datos bajo un pequeño número de nodos, ya que el sobrecosto asociado a iniciar programas de Hadoop es relativamente alto. Otros paradigmas de programación paralelos o distribuidos como MPI (Message Passing Interface) pueden presentar un mejor desempeño al ejecutarse con menos de diez máquinas. Aunque el esfuerzo de coordinación entre un pequeño número de máquinas puede ser mejor llevado por tales tipos de sistemas, el costo que se paga en rendimiento y esfuerzo por parte de los ingenieros al añadir más hardware como resultado del incremento en el volumen de datos, crece de forma no lineal. Un programa escrito en otros frameworks distribuidos, pueden requerir grandes cantidades de refactorización al escalar de diez a cien o a mil máquinas. Esto puede requerir que el programa se reescriba varias veces; elementos fundamentales de su diseño pueden también poner un tope a la escala de crecimiento de la aplicación. Hadoop, en contraste, está específicamente diseñado para tener una curva de escalabilidad muy plana. Luego de que un programa en Hadoop está escrito y funcionando en diez nodos, muy poco o nulo trabajo es requerido para correr el mismo programa sobre una cantidad mucho mayor de hardware. Se requiere muy poco trabajo extra sobre una aplicación para poder crecer en órdenes de magnitud. La plataforma de Hadoop subyacente maneja los recursos de datos y hardware, y provee un crecimiento en el rendimiento dependiente, proporcional al número de máquinas disponibles HDFS El sistema de archivos distribuidos de Hadoop, HDFS, es un sistema de archivos diseñado para guardar grandes cantidades de datos (terabytes e incluso petabytes), y proveer acceso de alto flujo de datos a esta información. Los archivos son almacenados de manera redundante a través de múltiples máquinas, para asegurar su resistencia a fallas y su alta disponibilidad a aplicaciones altamente paralelas, tal como se muestra en la Figura 3. 21

22 Figura 3: HDFS de Hadoop Un sistema de archivos distribuido está diseñado para almacenar grandes cantidades de datos y proveer acceso a estos datos a la mayor cantidad de clientes distribuidos a través de la red. Existen varios sistemas de archivos distribuidos que resuelven este problema de diferentes maneras, como el NFS (Network File System) de Linux. HDFS está diseñado para ser robusto frente a un gran número de problemas a los que otros sistemas de archivos distribuidos, como NFS son vulnerables. En particular: El HDFS está diseñado para almacenar una gran cantidad de información (terabytes o petabytes). Esto requiere distribuir los datos en un gran número de máquinas. También es capaz de manejar tamaños de archivo mucho mayores a los que puede manejar NFS. El HDFS almacena los datos de manera confiable. Si falla alguna máquina del cluster, los datos deberían seguir estando disponibles. El HDFS provee acceso rápido y escalable a esta información. Debiese ser posible proveer servicios a un número mayor de clientes sólo agregando más máquinas al cluster. El HDFS se integra bien con el Hadoop MapReduce, permitiendo que los datos sean leídos y computados localmente cuando sea posible. 22

4. Programación Paralela

4. Programación Paralela 4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios

Más detalles

Alessandro Chacón 05-38019. Ernesto Level 05-38402. Ricardo Santana 05-38928

Alessandro Chacón 05-38019. Ernesto Level 05-38402. Ricardo Santana 05-38928 Alessandro Chacón 05-38019 Ernesto Level 05-38402 Ricardo Santana 05-38928 CONTENIDO Universo Digital Hadoop HDFS: Hadoop Distributed File System MapReduce UNIVERSO DIGITAL 161 EB 2006 Fuente: International

Más detalles

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE PRUEBAS DE SOFTWARE La prueba del software es un elemento crítico para la garantía de la calidad del software. El objetivo de la etapa de pruebas es garantizar la calidad del producto desarrollado. Además,

Más detalles

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN Tabla de Contenidos LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN... 1 Tabla de Contenidos... 1 General... 2 Uso de los Lineamientos Estándares...

Más detalles

Capítulo 5. Cliente-Servidor.

Capítulo 5. Cliente-Servidor. Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor

Más detalles

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos. RAIDS MODO LINEAL Es un tipo de raid que muestra lógicamente un disco pero se compone de 2 o más discos. Solamente llena el disco 0 y cuando este está lleno sigue con el disco 1 y así sucesivamente. Este

Más detalles

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. UNIVERSIDAD DE CARABOBO FACULTAD DE CIENCIA Y TECNOLOGÍA DIRECCION DE EXTENSION COORDINACION DE PASANTIAS Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. Pasante:

Más detalles

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS 4 ARQUITECTURA DE DISTRIBUCIÓN DE DATOS Contenido: Arquitectura de Distribución de Datos 4.1. Transparencia 4.1.1 Transparencia de Localización 4.1.2 Transparencia de Fragmentación 4.1.3 Transparencia

Más detalles

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas: SISTEMAS DISTRIBUIDOS DE REDES 1. SISTEMAS DISTRIBUIDOS Introducción y generalidades La computación desde sus inicios ha sufrido muchos cambios, desde los grandes equipos que permitían realizar tareas

Más detalles

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)

Más detalles

LiLa Portal Guía para profesores

LiLa Portal Guía para profesores Library of Labs Lecturer s Guide LiLa Portal Guía para profesores Se espera que los profesores se encarguen de gestionar el aprendizaje de los alumnos, por lo que su objetivo es seleccionar de la lista

Más detalles

UNIVERSIDAD TECNOLOGICA ECOTEC DIEGO BARRAGAN MATERIA: Sistemas Operativos 1 ENSAYO: Servidores BLADE

UNIVERSIDAD TECNOLOGICA ECOTEC DIEGO BARRAGAN MATERIA: Sistemas Operativos 1 ENSAYO: Servidores BLADE UNIVERSIDAD TECNOLOGICA ECOTEC DIEGO BARRAGAN MATERIA: Sistemas Operativos 1 ENSAYO: Servidores BLADE AÑO: 2010 Qué es un servidor Blade? Blade Server es una arquitectura que ha conseguido integrar en

Más detalles

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia. DISCOS RAID Raid: redundant array of independent disks, quiere decir conjunto redundante de discos independientes. Es un sistema de almacenamiento de datos que utiliza varias unidades físicas para guardar

Más detalles

Descripción. Este Software cumple los siguientes hitos:

Descripción. Este Software cumple los siguientes hitos: WWWMONITORDBACOM Descripción Este Software cumple los siguientes hitos: a- Consola de Monitoreo b- Envío de Alertas (correo, SMS) c- Gestión de Eventos desatendidos (sea capaz ejecutar script de solución

Más detalles

Arquitectura de sistema de alta disponibilidad

Arquitectura de sistema de alta disponibilidad Mysql Introducción MySQL Cluster esta diseñado para tener una arquitectura distribuida de nodos sin punto único de fallo. MySQL Cluster consiste en 3 tipos de nodos: 1. Nodos de almacenamiento, son los

Más detalles

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente En este capítulo definimos los requisitos del modelo para un sistema centrado en la mejora de la calidad del código fuente.

Más detalles

CAPÍTULO I. Sistemas de Control Distribuido (SCD).

CAPÍTULO I. Sistemas de Control Distribuido (SCD). 1.1 Sistemas de Control. Un sistema es un ente cuya función es la de recibir acciones externas llamadas variables de entrada que a su vez provocan una o varias reacciones como respuesta llamadas variables

Más detalles

Hadoop. Cómo vender un cluster Hadoop?

Hadoop. Cómo vender un cluster Hadoop? Hadoop Cómo vender un cluster Hadoop? ÍNDICE Problema Big Data Qué es Hadoop? Descripción HDSF Map Reduce Componentes de Hadoop Hardware Software 3 EL PROBLEMA BIG DATA ANTES Los datos los generaban las

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

SISTEMAS DE INFORMACIÓN II TEORÍA

SISTEMAS DE INFORMACIÓN II TEORÍA CONTENIDO: EL PROCESO DE DISEÑO DE SISTEMAS DISTRIBUIDOS MANEJANDO LOS DATOS EN LOS SISTEMAS DISTRIBUIDOS DISEÑANDO SISTEMAS PARA REDES DE ÁREA LOCAL DISEÑANDO SISTEMAS PARA ARQUITECTURAS CLIENTE/SERVIDOR

Más detalles

Figura 4.1 Clasificación de los lenguajes de bases de datos

Figura 4.1 Clasificación de los lenguajes de bases de datos 1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto Este capítulo describen los distintos lenguajes para bases de datos, la forma en que se puede escribir un lenguaje

Más detalles

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1.1 Introducción Este método proporciona un soporte para el diseño creativo de productos de software, inclusive a escala industrial.

Más detalles

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl 1 Colección de Tesis Digitales Universidad de las Américas Puebla Morales Salcedo, Raúl En este último capitulo se hace un recuento de los logros alcanzados durante la elaboración de este proyecto de tesis,

Más detalles

CAPÍTULO 1 Instrumentación Virtual

CAPÍTULO 1 Instrumentación Virtual CAPÍTULO 1 Instrumentación Virtual 1.1 Qué es Instrumentación Virtual? En las últimas décadas se han incrementado de manera considerable las aplicaciones que corren a través de redes debido al surgimiento

Más detalles

Conclusiones. Particionado Consciente de los Datos

Conclusiones. Particionado Consciente de los Datos Capítulo 6 Conclusiones Una de las principales conclusiones que se extraen de esta tesis es que para que un algoritmo de ordenación sea el más rápido para cualquier conjunto de datos a ordenar, debe ser

Más detalles

Global File System (GFS)...

Global File System (GFS)... Global File System (GFS)... Diferente a los sistemas de ficheros en red que hemos visto, ya que permite que todos los nodos tengan acceso concurrente a los bloques de almacenamiento compartido (a través

Más detalles

Novedades en Q-flow 3.02

Novedades en Q-flow 3.02 Novedades en Q-flow 3.02 Introducción Uno de los objetivos principales de Q-flow 3.02 es adecuarse a las necesidades de grandes organizaciones. Por eso Q-flow 3.02 tiene una versión Enterprise que incluye

Más detalles

Arquitectura de red distribuida: escalabilidad y equilibrio de cargas en un entorno de seguridad

Arquitectura de red distribuida: escalabilidad y equilibrio de cargas en un entorno de seguridad Arquitectura de red distribuida: escalabilidad y equilibrio de cargas en un entorno de seguridad por Warren Brown Las compañías multinacionales y los hospitales, universidades o entidades gubernamentales

Más detalles

CURSO: APACHE SPARK CAPÍTULO 2: INTRODUCCIÓN A APACHE SPARK. www.formacionhadoop.com

CURSO: APACHE SPARK CAPÍTULO 2: INTRODUCCIÓN A APACHE SPARK. www.formacionhadoop.com CURSO: APACHE SPARK CAPÍTULO 2: INTRODUCCIÓN A APACHE SPARK www.formacionhadoop.com Índice 1 Qué es Big Data? 2 Problemas con los sistemas tradicionales 3 Qué es Spark? 3.1 Procesamiento de datos distribuido

Más detalles

FaceFinder MÓDULO DE BÚSQUEDA DE PERSONAS DENTRO DE UNA BASE DE DATOS DE ROSTROS

FaceFinder MÓDULO DE BÚSQUEDA DE PERSONAS DENTRO DE UNA BASE DE DATOS DE ROSTROS FaceFinder MÓDULO DE BÚSQUEDA DE PERSONAS DENTRO DE UNA BASE DE DATOS DE ROSTROS Introducción Los algoritmos utilizados para el procesamiento de imágenes son de complejidad computacional alta. Por esto

Más detalles

UNIVERSIDAD DE SALAMANCA

UNIVERSIDAD DE SALAMANCA UNIVERSIDAD DE SALAMANCA FACULTAD DE CIENCIAS INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Resumen del trabajo práctico realizado para la superación de la asignatura Proyecto Fin de Carrera. TÍTULO SISTEMA

Más detalles

ADMINISTRACIÓN CENTRALIZADA DELL POWERVAULT DL2000 CON TECNOLOGÍA SYMANTEC

ADMINISTRACIÓN CENTRALIZADA DELL POWERVAULT DL2000 CON TECNOLOGÍA SYMANTEC ADMINISTRACIÓN CENTRALIZADA DELL POWERVAULT DL2000 CON TECNOLOGÍA SYMANTEC RESUMEN EJECUTIVO Es un método ideal para que cualquier departamento de TI logre realizar respaldos y restauraciones más rápidas

Más detalles

18 y 19 Sistemas de Archivos Distribuidos y Tarea 05

18 y 19 Sistemas de Archivos Distribuidos y Tarea 05 18 y 19 Sistemas de Archivos Distribuidos y Tarea 05 Prof. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco efranco.docencia@gmail.com Estructuras de datos (Prof. Edgardo A. Franco)

Más detalles

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática Tema 1 Introducción. Arquitectura básica y Sistemas Operativos Fundamentos de Informática Índice Descripción de un ordenador Concepto básico de Sistema Operativo Codificación de la información 2 1 Descripción

Más detalles

App para realizar consultas al Sistema de Información Estadística de Castilla y León

App para realizar consultas al Sistema de Información Estadística de Castilla y León App para realizar consultas al Sistema de Información Estadística de Castilla y León Jesús M. Rodríguez Rodríguez rodrodje@jcyl.es Dirección General de Presupuestos y Estadística Consejería de Hacienda

Más detalles

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD Manual de usuario 1 - ÍNDICE 1 - ÍNDICE... 2 2 - INTRODUCCIÓN... 3 3 - SELECCIÓN CARPETA TRABAJO... 4 3.1 CÓMO CAMBIAR DE EMPRESA O DE CARPETA DE TRABAJO?...

Más detalles

Catoira Fernando Fullana Pablo Rodriguez Federico [MINERIA DE LA WEB] Proyecto Final - Informe Final

Catoira Fernando Fullana Pablo Rodriguez Federico [MINERIA DE LA WEB] Proyecto Final - Informe Final Catoira Fernando Fullana Pablo Rodriguez Federico [MINERIA DE LA WEB] Proyecto Final - Informe Final INTRODUCCION En principio surgió la idea de un buscador que brinde los resultados en agrupaciones de

Más detalles

BPMN Business Process Modeling Notation

BPMN Business Process Modeling Notation BPMN (BPMN) es una notación gráfica que describe la lógica de los pasos de un proceso de Negocio. Esta notación ha sido especialmente diseñada para coordinar la secuencia de los procesos y los mensajes

Más detalles

computadoras que tienen este servicio instalado se pueden publicar páginas web tanto local como remotamente.

computadoras que tienen este servicio instalado se pueden publicar páginas web tanto local como remotamente. Investigar Qué es un IIS? Internet Information Services o IIS es un servidor web y un conjunto de servicios para el sistema operativo Microsoft Windows. Originalmente era parte del Option Pack para Windows

Más detalles

Sistemas de Operación II

Sistemas de Operación II Sistemas de Operación II Sistemas de Archivos Distribuidos Prof. Carlos Figueira Basado en material de Yudith Cardinale (USB) Andrew Tanembaum y Marteen van Steen Contenido Introducción Requisitos Aspectos

Más detalles

CONCLUSIONES 155 A través de cada uno de los capítulos del presente documento se han enumerado una serie herramientas de seguridad que forman parte del sistema de defensa de una red y que, controlan su

Más detalles

Ingeniería de Software. Pruebas

Ingeniería de Software. Pruebas Ingeniería de Software Pruebas Niveles de prueba Pruebas unitarias Niveles Pruebas de integración Pruebas de sistema Pruebas de aceptación Alpha Beta Niveles de pruebas Pruebas unitarias Se enfocan en

Más detalles

APACHE HADOOP. Daniel Portela Paz Javier Villarreal García Luis Barroso Vázquez Álvaro Guzmán López

APACHE HADOOP. Daniel Portela Paz Javier Villarreal García Luis Barroso Vázquez Álvaro Guzmán López APACHE HADOOP Daniel Portela Paz Javier Villarreal García Luis Barroso Vázquez Álvaro Guzmán López Objetivos 1. Qué es Apache Hadoop? 2. Funcionalidad 2.1. Map/Reduce 2.2. HDFS 3. Casos prácticos 4. Hadoop

Más detalles

ADMINISTRACIÓN DE BASES DE DATOS DISTRIBUIDAS

ADMINISTRACIÓN DE BASES DE DATOS DISTRIBUIDAS 5 ADMINISTRACIÓN DE BASES DE DATOS DISTRIBUIDAS Contenido: 5.1 Conceptos Generales Administración de Bases de Datos Distribuidas 5.1.1 Administración la Estructura de la Base de Datos 5.1.2 Administración

Más detalles

Cómo las herramientas en línea están revolucionando la implementación de ITIL e ISO 20000

Cómo las herramientas en línea están revolucionando la implementación de ITIL e ISO 20000 Cómo las herramientas en línea están revolucionando la implementación de ITIL e ISO 20000 Informe 14 de marzo de 2014 Copyright 2014 20000Academy. Todos los derechos reservados. 1 Resumen ejecutivo Antes

Más detalles

Sistemas de archivos distribuidos. Alvaro Ospina Sanjuan alvaro.ospina@correo.upb.edu.co

Sistemas de archivos distribuidos. Alvaro Ospina Sanjuan alvaro.ospina@correo.upb.edu.co Sistemas de archivos distribuidos Alvaro Ospina Sanjuan alvaro.ospina@correo.upb.edu.co >Abstracción del sistema operativo para representar y organizar los recursos de almacenamiento >Se debe hacer la

Más detalles

Conceptos de redes. LAN (Local Area Network) WAN (Wide Area Network)

Conceptos de redes. LAN (Local Area Network) WAN (Wide Area Network) Conceptos de redes. Una red de ordenadores permite conectar a los mismos con la finalidad de compartir recursos e información. Hablando en términos de networking, lo importante es que todos los dispositivos

Más detalles

La Pirámide de Solución de TriActive TRICENTER

La Pirámide de Solución de TriActive TRICENTER Información sobre el Producto de TriActive: Página 1 Documento Informativo La Administración de Sistemas Hecha Simple La Pirámide de Solución de TriActive TRICENTER Información sobre las Soluciones de

Más detalles

Adelacu Ltda. www.adelacu.com Fono +562-218-4749. Graballo+ Agosto de 2007. Graballo+ - Descripción funcional - 1 -

Adelacu Ltda. www.adelacu.com Fono +562-218-4749. Graballo+ Agosto de 2007. Graballo+ - Descripción funcional - 1 - Graballo+ Agosto de 2007-1 - Índice Índice...2 Introducción...3 Características...4 DESCRIPCIÓN GENERAL...4 COMPONENTES Y CARACTERÍSTICAS DE LA SOLUCIÓN...5 Recepción de requerimientos...5 Atención de

Más detalles

CAPÍTULO 2 Sistemas De Base De Datos Multiusuarios

CAPÍTULO 2 Sistemas De Base De Datos Multiusuarios CAPÍTULO 2 Sistemas De De Multiusuarios Un sistema multiusuario es un sistema informático que da servicio, manera concurrente, a diferentes usuarios mediante la utilización compartida sus recursos. Con

Más detalles

GeneXus BPM Suite X. Última actualización: 01 de Setiembre de 2008

GeneXus BPM Suite X. Última actualización: 01 de Setiembre de 2008 Última actualización: 01 de Setiembre de 2008 Copyright Artech Consultores S. R. L. 1988-2008. Todos los derechos reservados. Este documento no puede ser reproducido en cualquier medio sin el consentimiento

Más detalles

Visión General de GXportal. Última actualización: 2009

Visión General de GXportal. Última actualización: 2009 Última actualización: 2009 Copyright Artech Consultores S. R. L. 1988-2009. Todos los derechos reservados. Este documento no puede ser reproducido en cualquier medio sin el consentimiento explícito de

Más detalles

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007 Enunciado Se desea efectuar el testing funcional de un programa que ejecuta transferencias entre cuentas bancarias. El programa recibe como parámetros la cuenta de origen, la de cuenta de destino y el

Más detalles

1.1.- Objetivos de los sistemas de bases de datos 1.2.- Administración de los datos y administración de bases de datos 1.3.- Niveles de Arquitectura

1.1.- Objetivos de los sistemas de bases de datos 1.2.- Administración de los datos y administración de bases de datos 1.3.- Niveles de Arquitectura 1. Conceptos Generales 2. Modelo Entidad / Relación 3. Modelo Relacional 4. Integridad de datos relacional 5. Diseño de bases de datos relacionales 6. Lenguaje de consulta estructurado (SQL) 1.1.- Objetivos

Más detalles

Workflows? Sí, cuántos quiere?

Workflows? Sí, cuántos quiere? Workflows? Sí, cuántos quiere? 12.11.2006 Servicios Profesionales Danysoft Son notables los beneficios que una organización puede obtener gracias al soporte de procesos de negocios que requieran la intervención

Más detalles

Motores de Búsqueda Web Tarea Tema 2

Motores de Búsqueda Web Tarea Tema 2 Motores de Búsqueda Web Tarea Tema 2 71454586A Motores de Búsqueda Web Máster en Lenguajes y Sistemas Informáticos - Tecnologías del Lenguaje en la Web UNED 30/01/2011 Tarea Tema 2 Enunciado del ejercicio

Más detalles

GlusterFS. Una visión rápida a uno de los más innovadores sistema de archivos distribuido

GlusterFS. Una visión rápida a uno de los más innovadores sistema de archivos distribuido GlusterFS Una visión rápida a uno de los más innovadores sistema de archivos distribuido Qué es GlusterFS? Es un sistema de archivos de alta disponibilidad y escalabilidad que puede brindar almacenamiento

Más detalles

Mejores prácticas para el éxito de un sistema de información. Uno de los problemas de información dentro de las empresas es contar con datos

Mejores prácticas para el éxito de un sistema de información. Uno de los problemas de información dentro de las empresas es contar con datos ANEXO VI. Mejores prácticas para el éxito de un sistema de información Uno de los problemas de información dentro de las empresas es contar con datos importantes del negocio y que éstos estén aislados

Más detalles

Capítulo 5: Pruebas y evaluación del sistema. A continuación se muestran una serie de pruebas propuestas para evaluar varias

Capítulo 5: Pruebas y evaluación del sistema. A continuación se muestran una serie de pruebas propuestas para evaluar varias Capítulo 5: Pruebas y evaluación del sistema 5.1 Definición de pruebas para la aplicación A continuación se muestran una serie de pruebas propuestas para evaluar varias características importantes del

Más detalles

Capítulo IV. Manejo de Problemas

Capítulo IV. Manejo de Problemas Manejo de Problemas Manejo de problemas Tabla de contenido 1.- En qué consiste el manejo de problemas?...57 1.1.- Ventajas...58 1.2.- Barreras...59 2.- Actividades...59 2.1.- Control de problemas...60

Más detalles

Introducción a la Firma Electrónica en MIDAS

Introducción a la Firma Electrónica en MIDAS Introducción a la Firma Electrónica en MIDAS Firma Digital Introducción. El Módulo para la Integración de Documentos y Acceso a los Sistemas(MIDAS) emplea la firma digital como método de aseguramiento

Más detalles

QUE ES COMLINE MENSAJES? QUE TIPO DE MENSAJES PROCESA COMLINE MENSAJES?

QUE ES COMLINE MENSAJES? QUE TIPO DE MENSAJES PROCESA COMLINE MENSAJES? QUE ES COMLINE MENSAJES? Comline Mensajes es una plataforma flexible, ágil y oportuna, que permite el envío MASIVO de MENSAJES DE TEXTO (SMS). Comline Mensajes integra su tecnología a los centros de recepción

Más detalles

Mesa de Ayuda Interna

Mesa de Ayuda Interna Mesa de Ayuda Interna Documento de Construcción Mesa de Ayuda Interna 1 Tabla de Contenido Proceso De Mesa De Ayuda Interna... 2 Diagrama Del Proceso... 3 Modelo De Datos... 4 Entidades Del Sistema...

Más detalles

LICITACIÓN N L13045 NUEVO SISTEMA LEY DE TRANSPARENCIA

LICITACIÓN N L13045 NUEVO SISTEMA LEY DE TRANSPARENCIA LICITACIÓN N L13045 NUEVO SISTEMA LEY DE TRANSPARENCIA ACLARACIONES Y RESPUESTAS A CONSULTAS SEGUNDA PARTE De acuerdo a lo señalado en el numeral 11 de las Bases de Licitación, a continuación se presenta

Más detalles

Bechtle Solutions Servicios Profesionales

Bechtle Solutions Servicios Profesionales Soluciones Tecnología Bechtle Solutions Servicios Profesionales Fin del servicio de soporte técnico de Windows Server 2003 No hacer nada puede ser un riesgo BECHTLE Su especialista en informática Ahora

Más detalles

Tema: INSTALACIÓN Y PARTICIONAMIENTO DE DISCOS DUROS.

Tema: INSTALACIÓN Y PARTICIONAMIENTO DE DISCOS DUROS. 1 Facultad: Ingeniería Escuela: Electrónica Asignatura: Arquitectura de computadoras Lugar de ejecución: Lab. de arquitectura de computadoras, edif. de electrónica. Tema: INSTALACIÓN Y PARTICIONAMIENTO

Más detalles

DE VIDA PARA EL DESARROLLO DE SISTEMAS

DE VIDA PARA EL DESARROLLO DE SISTEMAS MÉTODO DEL CICLO DE VIDA PARA EL DESARROLLO DE SISTEMAS 1. METODO DEL CICLO DE VIDA PARA EL DESARROLLO DE SISTEMAS CICLO DE VIDA CLÁSICO DEL DESARROLLO DE SISTEMAS. El desarrollo de Sistemas, un proceso

Más detalles

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3 UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3 INTRODUCCIÓN El elemento hardware de un sistema básico de proceso de datos se puede estructurar en tres partes claramente diferenciadas en cuanto a sus funciones:

Más detalles

CURSO COORDINADOR INNOVADOR

CURSO COORDINADOR INNOVADOR CURSO COORDINADOR INNOVADOR PRESENTACIÓN La tarea que el Ministerio de Educación se propone a través de Enlaces, en relación al aseguramiento del adecuado uso de los recursos, con el fin de lograr un impacto

Más detalles

Componentes de Integración entre Plataformas Información Detallada

Componentes de Integración entre Plataformas Información Detallada Componentes de Integración entre Plataformas Información Detallada Active Directory Integration Integración con el Directorio Activo Active Directory es el servicio de directorio para Windows 2000 Server.

Más detalles

Sistemas Operativos Windows 2000

Sistemas Operativos Windows 2000 Sistemas Operativos Contenido Descripción general 1 Funciones del sistema operativo 2 Características de 3 Versiones de 6 Sistemas Operativos i Notas para el instructor Este módulo proporciona a los estudiantes

Más detalles

TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA

TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA Programa: Algoritmo (secuencia no ambigua, finita y ordenada de instrucciones para la resolución de un determinado problema) traducido

Más detalles

Ventajas del almacenamiento de datos de nube

Ventajas del almacenamiento de datos de nube Ventajas del almacenamiento de datos de nube Almacenar grandes volúmenes de información en una red de área local (LAN) es caro. Dispositivos de almacenamiento electrónico de datos de alta capacidad como

Más detalles

Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi

Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi Gestión de Permisos Bizagi Suite Gestión de Permisos 1 Tabla de Contenido Gestión de Permisos... 3 Definiciones... 3 Rol... 3 Perfil... 3 Permiso... 3 Módulo... 3 Privilegio... 3 Elementos del Proceso...

Más detalles

En los últimos años, se ha presentado una enorme demanda por servicios portátiles,

En los últimos años, se ha presentado una enorme demanda por servicios portátiles, Capítulo 1 Introducción En los últimos años, se ha presentado una enorme demanda por servicios portátiles, a los que se les ha llamado tecnologías móviles, este repentino crecimiento de tecnologías ha

Más detalles

Entidad Formadora: Plan Local De Formación Convocatoria 2010

Entidad Formadora: Plan Local De Formación Convocatoria 2010 Entidad Formadora: Enterprise Architect Comenzando Puede iniciar Enterprise Architect desde el ícono que se creó en su escritorio de Windows durante la instalación, o alternativamente: 1. Abrir el menú

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

Análisis de aplicación: Virtual Machine Manager

Análisis de aplicación: Virtual Machine Manager Análisis de aplicación: Virtual Machine Manager Este documento ha sido elaborado por el Centro de Apoyo Tecnológico a Emprendedores bilib, www.bilib.es Copyright 2011, Junta de Comunidades de Castilla

Más detalles

RAID. Redundant Array of Independent Disks. Rafael Jurado Moreno (rafa.eqtt@gmail.com) Fuente: Wikipedia

RAID. Redundant Array of Independent Disks. Rafael Jurado Moreno (rafa.eqtt@gmail.com) Fuente: Wikipedia RAID Redundant Array of Independent Disks Rafael Jurado Moreno (rafa.eqtt@gmail.com) Fuente: Wikipedia I.E.S. María Moliner. Segovia 2010 1.Introducción. En informática, el acrónimo RAID (del inglés Redundant

Más detalles

Capitulo I. Introducción

Capitulo I. Introducción Capitulo I. Introducción 1.1 Descripción del trabajo El ser humano, como todos sabemos tiene la necesidad de comunicarse, de ser escuchado y sobretodo interactuar con los demás seres vivos que lo rodean.

Más detalles

4. METODOLOGÍA. 4.1 Materiales. 4.1.1 Equipo

4. METODOLOGÍA. 4.1 Materiales. 4.1.1 Equipo 4. METODOLOGÍA 4.1 Materiales 4.1.1 Equipo Equipo de cómputo. Para el empleo del la metodología HAZOP se requiere de un equipo de cómputo con interfase Windows 98 o más reciente con procesador Pentium

Más detalles

http://www.statum.biz http://www.statum.info http://www.statum.org

http://www.statum.biz http://www.statum.info http://www.statum.org ApiaMonitor Monitor de Infraestructura BPMS Por: Ing. Manuel Cabanelas Product Manager de Apia Manuel.Cabanelas@statum.biz http://www.statum.biz http://www.statum.info http://www.statum.org Abstract A

Más detalles

Capítulo III. Manejo de Incidentes

Capítulo III. Manejo de Incidentes Manejo de Incidentes Manejo de Incidentes Tabla de contenido 1.- En qué consiste el manejo de incidentes?...45 1.1.- Ventajas...47 1.2.- Barreras...47 2.- Requerimientos...48 3.- Clasificación de los incidentes...48

Más detalles

Nicolás Zarco Arquitectura Avanzada 2 Cuatrimestre 2011

Nicolás Zarco Arquitectura Avanzada 2 Cuatrimestre 2011 Clusters Nicolás Zarco Arquitectura Avanzada 2 Cuatrimestre 2011 Introducción Aplicaciones que requieren: Grandes capacidades de cómputo: Física de partículas, aerodinámica, genómica, etc. Tradicionalmente

Más detalles

Introducción a las redes de computadores

Introducción a las redes de computadores Introducción a las redes de computadores Contenido Descripción general 1 Beneficios de las redes 2 Papel de los equipos en una red 3 Tipos de redes 5 Sistemas operativos de red 7 Introducción a las redes

Más detalles

Pipelining o Segmentación de Instrucciones

Pipelining o Segmentación de Instrucciones Pipelining o Segmentación de Instrucciones La segmentación de instrucciones es similar al uso de una cadena de montaje en una fábrica de manufacturación. En las cadenas de montaje, el producto pasa a través

Más detalles

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto

Más detalles

Arquitectura de Aplicaciones

Arquitectura de Aplicaciones 1 Capítulo 13: Arquitectura de aplicaciones. - Sommerville Contenidos del capítulo 13.1 Sistemas de procesamiento de datos 13.2 Sistemas de procesamiento de transacciones 13.3 Sistemas de procesamiento

Más detalles

CAPÍTUL07 SISTEMAS DE FILOSOFÍA HÍBRIDA EN BIOMEDICINA. Alejandro Pazos, Nieves Pedreira, Ana B. Porto, María D. López-Seijo

CAPÍTUL07 SISTEMAS DE FILOSOFÍA HÍBRIDA EN BIOMEDICINA. Alejandro Pazos, Nieves Pedreira, Ana B. Porto, María D. López-Seijo CAPÍTUL07 SISTEMAS DE FILOSOFÍA HÍBRIDA EN BIOMEDICINA Alejandro Pazos, Nieves Pedreira, Ana B. Porto, María D. López-Seijo Laboratorio de Redes de Neuronas Artificiales y Sistemas Adaptativos Universidade

Más detalles

Versión final 8 de junio de 2009

Versión final 8 de junio de 2009 GRUPO DE EXPERTOS «PLATAFORMA PARA LA CONSERVACIÓN DE DATOS ELECTRÓNICOS PARA CON FINES DE INVESTIGACIÓN, DETECCIÓN Y ENJUICIAMIENTO DE DELITOS GRAVES» ESTABLECIDO POR LA DECISIÓN 2008/324/CE DE LA COMISIÓN

Más detalles

Introducción a Computación

Introducción a Computación Curso: Modelización y simulación matemática de sistemas Metodología para su implementación computacional Introducción a Computación Esteban E. Mocskos (emocskos@dc.uba.ar) Facultades de Ciencias Exactas

Más detalles

Base de datos en Excel

Base de datos en Excel Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de

Más detalles

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos. Apéndice C. Glosario A Actividades de coordinación entre grupos. Son dinámicas y canales de comunicación cuyo objetivo es facilitar el trabajo entre los distintos equipos del proyecto. Actividades integradas

Más detalles

pymegnu v2.0 PRESENTACIÓN DE PRODUCTOS

pymegnu v2.0 PRESENTACIÓN DE PRODUCTOS PRESENTACIÓN DE PRODUCTOS pymegnu v2.0 1 INTRODUCCIÓN Nuestros sistemas 100% web le permitirán poder obtener todas las ventajas competitivas que ofrece Internet, como la disponibilidad de tener sus sistemas

Más detalles

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO Introducción:...1 Service Oriented Architecture...2 Elementos de una Service Oriented Architecture...2 Application frontends...2 Servicios...2 Contrato:...3

Más detalles

SISTEMAS DE ARCHIVOS DISTRIBUIDOS

SISTEMAS DE ARCHIVOS DISTRIBUIDOS SISTEMAS DE ARCHIVOS DISTRIBUIDOS Tema # VII Sistemas de operación II Abril-Julio 2008 Yudith Cardinale Introducción Requisitos Aspectos de Diseño Servicios de archivos Servicios de directorios Módulo

Más detalles

Módulos: Módulo 1. Hardware & Arquitectura de sistemas - 20 Horas

Módulos: Módulo 1. Hardware & Arquitectura de sistemas - 20 Horas Módulos: Módulo 1 Hardware & Arquitectura de sistemas - 20 Horas Este módulo permite conocer y configurar los elementos básicos del hardware del sistema, como también otros componentes adicionales como

Más detalles

Soporte y mantenimiento de base de datos y aplicativos

Soporte y mantenimiento de base de datos y aplicativos Soporte y mantenimiento de base de datos y aplicativos Las bases de datos constituyen la fuente de información primaria a todos los servicios que el centro de información virtual ofrece a sus usuarios,

Más detalles

Introducción En los años 60 s y 70 s cuando se comenzaron a utilizar recursos de tecnología de información, no existía la computación personal, sino que en grandes centros de cómputo se realizaban todas

Más detalles

Intel Tera-Scale Computing Alumno: Roberto Rodriguez Alcala

Intel Tera-Scale Computing Alumno: Roberto Rodriguez Alcala Intel Tera-Scale Computing Alumno: Roberto Rodriguez Alcala 1. Introducción Los procesadores con dos núcleos existen actualmente, y los procesadores de cuatro están insertándose en el mercado lentamente,

Más detalles