UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS
|
|
- Claudia Castilla Vázquez
- hace 8 años
- Vistas:
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 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 detallesAlessandro 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 detallesPRUEBAS 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 detallesLINEAMIENTOS 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 detallesCapí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 detallesNo 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 detallesModificació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 detallesARQUITECTURA 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 detallesLos 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 detallesPropuesta 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 detallesLiLa 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 detallesUNIVERSIDAD 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 detallesDISCOS 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 detallesDescripció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 detallesArquitectura 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 detallesCapí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 detallesCAPÍ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 detallesHadoop. 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 detallesCapí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 detallesSISTEMAS 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 detallesFigura 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 detalles3.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 detallesColecció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 detallesCAPÍ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 detallesConclusiones. 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 detallesGlobal 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 detallesNovedades 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 detallesArquitectura 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 detallesCURSO: 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 detallesFaceFinder 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 detallesUNIVERSIDAD 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 detallesADMINISTRACIÓ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 detalles18 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 detallesTema 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 detallesApp 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 detallesGESTIÓ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 detallesCatoira 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 detallesBPMN 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 detallescomputadoras 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 detallesSistemas 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 detallesCONCLUSIONES 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 detallesIngenierí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 detallesAPACHE 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 detallesADMINISTRACIÓ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 detallesCó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 detallesSistemas 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 detallesConceptos 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 detallesLa 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 detallesAdelacu 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 detallesCAPÍ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 detallesGeneXus 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 detallesVisió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 detallesIngenierí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 detalles1.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 detallesWorkflows? 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 detallesMotores 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 detallesGlusterFS. 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 detallesMejores 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 detallesCapí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 detallesCapí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 detallesIntroducció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 detallesQUE 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 detallesMesa 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 detallesLICITACIÓ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 detallesBechtle 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 detallesTema: 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 detallesDE 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 detallesUNIDADES 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 detallesCURSO 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 detallesComponentes 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 detallesSistemas 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 detallesTEMA 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 detallesVentajas 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 detallesGestió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 detallesEn 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 detallesEntidad 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 detallesElementos 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 detallesAná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 detallesRAID. 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 detallesCapitulo 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 detalles4. 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 detalleshttp://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 detallesCapí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 detallesNicolá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 detallesIntroducció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 detallesPipelining 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 detallesCiclo 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 detallesArquitectura 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 detallesCAPÍ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 detallesVersió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 detallesIntroducció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 detallesBase 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 detallesActividades 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 detallespymegnu 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 detallesSERVICE 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 detallesSISTEMAS 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 detallesMó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 detallesSoporte 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 detallesIntroducció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 detallesIntel 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