Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistemas Distribuidos
Integrantes:
Docente:
Cloud Computing
2020 - B
Sistemas Distribuidos 2
Resumen
Los sistemas distribuidos son una serie de computadoras conectadas entre sí para que
tecnológicos, tales como el hardware, redes y protocolos de comunicación, hoy día estamos
sumergidos en la tecnología y cada vez salen innovaciones que no te imaginas cómo pueden
suceder estas cosas, para eso llegaron estos métodos para ir avanzando en el día a día pero no nos
pueden sorprender por que este es la tecnología y en realidad no se saben cuáles son sus
Los sistemas distribuidos presentan una serie de características que nos permite estar
seguro o confiable de lo que nos pueden ofrecer para la realización de los procesos que se desean
ejecutar de manera idónea, cabe resaltar que la información que se maneja es muy difícil que
pueda fallar, porque esté sistemas trabaja con varios nodos y si la información que está en uno de
ellos falla no hay de qué alarmarse debido a que esa información o los datos se encuentran están
replicados en todos los nodos esta es la seguridad de dicho sistemas. También podemos
Seguridad, QoS (Quality of service), failover, switchover, Cluster, Grid, NAS (Network
Attached Storage), SAN (Storage Area Network), Big Data, Data lake, Sandbox, HDFS (Hadoop
Sistemas Distribuidos
Está más que claro que hoy en día la informática se ha impuesto en la sociedad de forma
considerable. Cada vez son más los dispositivos y los avances tecnológicos que requieren de esta
ciencia y a la misma vez esta se nutre de todas las novedades que asiduamente se presentan en el
mercado.
Sin embargo, aunque todo ello se ha asentado entre nosotros aún somos grandes
desconocedores de muchos sistemas y técnicas que hacen posible lo que conocemos como
que ponernos manos a la obra para aumentar nuestros conocimientos. Por ejemplo, es
fundamental dominar el concepto de los sistemas distribuidos. Seguro que lo has utilizado en
multitud de ocasiones, aunque no seas consciente de ello, dado que forma parte de la informática
de varias computadoras. Estos ordenadores están físicamente separados, cada uno contiene su
software y su hardware individual, pero tienen en común una red de comunicaciones que conecta
a todos ellos a la vez. Así el programador los analiza como un sistema único, pero con múltiples
destinatarios.
Este tipo de sistemas es muy tolerante a fallos, esto significa que al ser una misma red
con muchos computadores (nodos), si alguno de estos falla los otros pueden seguir realizando la
función de forma correcta, mientras el fallo se soluciona, lo que permite que el sistema siga
funcionando aun con un nodo caído. Estos sistemas son más confiables, ya que es muy seguro
puesto que las tareas no radican en un solo equipo, sino que varios. Esto facilita que se tengan
varias copias de seguridad, por lo general se genera una por ordenador; usualmente los
diferentes.
Para entender los sistemas distribuidos hay que comentar que se trata de un sistema de
“tolerancia a fallos”. ¿Qué queremos decir con esto? Pues que al ser una única red pero con
muchas computadoras si alguno de los elementos falla, los otros podrán seguir realizando la
función correctamente, por lo que los errores se complementan y evitan rápidamente. Por este
motivo los sistemas distribuidos suelen otorgar bastante confianza a la hora de trabajar con ellos,
También hay que tener en cuenta que esta confianza hace que el sistema sea muy seguro,
puesto que las tareas no sólo radican en un aparato, sino en varios equipos. Esto además facilita
que se hagan varias copias de seguridad, existiendo normalmente una por cada ordenador. En
ocasiones incluso estos dispositivos pueden trabajar con sistemas operativos diferentes, lo que no
evita que siempre vayan a poder ofrecer a los usuarios los mismos servicios. Por este motivo
todos los dispositivos que están conectados son compatibles entre ellos. Se evita así obtener
errores a la hora de realizar las labores pertinentes y se consigue que el ambiente de trabajo sea
mucho más cómodo, ya que todos pueden realizar sus tareas con los mismos servicios y
programas. En este sentido el diseño del software es otro punto fundamental, puesto que este es
también compatible con todos los usuarios y sistemas que se presentan en cada computadora.
posibilidad de la interacción entre todos los equipos, pudiendo conectarse el usuario desde
cualquier ordenador a otros. Es mucho más rápido el acceso a la información, además de otorgar
transparencia al sistema.
Aunque hemos comentado que los sistemas distribuidos se centran en una única red
sentido el estado principal de esta clasificación es el conocido como XML. Son los llamados
Sistemas Distribuidos 6
servicios web, a través de los cuales podemos acceder a un gran número de aplicaciones y
programas dentro de una red de mallas, como las existentes en los sistemas distribuidos.
Teniendo en cuenta todo esto cabe destacar que este tipo de sistemas se pusieron en
funcionamiento a partir de 1970 con un objetivo principal: resolver grandes problemas de los
comienzo, aunque siguen siendo una herramienta de gran utilidad para organizar todos los
recursos que las nuevas tecnologías de la información nos ofrecen. Por este motivo en la
actualidad los sistemas distribuidos son los más utilizados en cuanto a las redes se refiere,
teniendo sus redes varios tamaños, las locales, las metropolitanas y la más grande entre las
tendencias o reglas que expliquen el comportamiento de los datos en un contexto específico, esto
genera que se usen sistemas distribuidos, para minar estos datos de una forma rápida y eficiente.
Sistemas Distribuidos 7
● Mayor eficacia.
procesamientos se dividen entre todos los nodos que forman el sistema distribuido, en
lugar de enviarlos a un único nodo y que el mismo tenga que hacer todo el trabajo.
● Escalabilidad: si, por ejemplo, se necesita más procesamiento o añadir más disco duro, en
lugar de que los equipos crezcan de forma vertical añadiendo más almacenamiento, RAM
Consta de un sistema de “tolerancia a fallos” puesto que al ser una única red pero con
muchas computadoras si alguno de los elementos falla, los otros podrán seguir realizando la
función correctamente, por lo que los errores se complementan y evitan rápidamente. Por esta
razón los sistemas distribuidos suelen otorgar bastante confianza a la hora de su puesta en
marcha, debido a la improbabilidad de una falla del sistema completo. También hay que tener en
cuenta que esta confianza hace que el sistema sea muy seguro, puesto que las tareas no sólo
Sistemas Distribuidos 8
radican solo en un aparato, sino en varios equipos. Esto además facilita que se hagan varias
diferentes, lo que no evita que siempre vayan a poder ofrecer a los usuarios los mismos servicios.
Por este motivo todos los dispositivos que están conectados son compatibles entre ellos.
posibilidad de la interacción entre todos los equipos, pudiendo conectarse el usuario desde
cualquier ordenador a otros. Es mucho más rápido el acceso a la información, además de otorgar
transparencia al sistema.
sistemas distribuidos se centran en una única red conectada a varias computadoras, en cuanto a la
función de los mismos la red de mallas distribuidas puede clasificarse en dos: las
mensajes.
distribuidos:
Sistemas Distribuidos 9
Síncrono: Existen límites conocidos para los tiempos de ejecución de las etapas de los
procesos, en el tiempo necesario al transmitir mensajes o en las tasas de deriva de los relojes. Es
decir, se pueden establecer límites para aproximarse al comportamiento real del sistema, pero en
Heterogeneidad
en los elementos que componen una red de computadoras sobre la que se ejecuta un sistema
computadoras, sino también a los sistemas operativos, los lenguajes de programación y las
Herramientas:
● Protocolos de comunicación
● Sistemas abiertos
Seguridad
conexiones y equipos físicamente distribuidos. Las técnicas de encriptación pueden ser utilizadas
Escalabilidad
aportación de recursos, siempre y cuando el coste de añadir un usuario sea constante. Los
algoritmos utilizados para acceder a datos compartidos deben evitar cuellos de botella de
rendimiento y los datos deben estar jerarquizados para proporcionar los mejores tiempos de
Herramientas:
etc.
Manejo De Fallas
Técnicas comunes:
● Detección de fallos.
● Enmascaramiento de fallos.
● Tolerancia a fallos.
● Redundancia.
de mensajes auténticos).
Modelos de seguridad: La
modelos proporcionan la base para construir un sistema seguro atendiendo a recursos de todo
tipo. Para ello, es clave postular un enemigo que es capaz de enviar cualquier mensaje a
cualquier proceso y leer o copiar cualquier mensaje enviado entre un par de procesos.
Por lo tanto, para que pueda afirmarse que existe una comunicación fiable entre dos
Concurrencia
Un sistema permite la concurrencia cuando provee recursos que pueden ser compartidos
por varios clientes al mismo tiempo. El control de concurrencia trata con los problemas de
sistema distribuido asegura que la consistencia de los datos que se almacenan y que se procesan
Las técnicas habituales para asegurar un control de la concurrencia son semáforos, hilos,
locks, etc. Herramientas como el uso de cachés, consistencia eventual, replicación, balanceo de
Transparencia
ante los usuarios y las aplicaciones como si fuese un sistema que corre en una sola computadora,
conocimiento de su localización
Sistemas Distribuidos 14
utilizando objetos de información compartidos y de forma que no exista interferencia entre ellos.
información para incrementar la fiabilidad y las prestaciones sin que los usuarios o los programas
Las dos más importantes son las transparencias de acceso y de localización; su presencia
QoS (Quality of service): No es suficiente con proporcionar acceso a los servicios, es
importante también que este se ofrezca con unas garantías con respecto a las cualidades
asociadas con dicho acceso al servicio. Dichas cualidades incluyen parámetros como
los mainframe.
● Datos Compartidos: Los usuarios tienen acceso a una base de datos común.
menos controlable.
Sistemas Distribuidos 16
Tipo Cluster
alto rendimiento, así como la creciente necesidad de potencia computacional para aplicaciones
que la requieran.
La Alta Disponibilidad
prestación del servicio en todo momento. Esto representa una situación ideal, sería necesario que
hardware como en software. Realmente no hay sistemas que puedan asumir este tipo de
disponibilidad. En este caso nos centraremos en los clústeres de este tipo que utilizan
Sistemas Distribuidos 17
enmascarar los fallos de manera que los servicios ofrecidos al usuario no sean interrumpidos.
que el concepto de alta disponibilidad de servicios implica directamente una solución mediante
nodo derive en que las aplicaciones que se ejecutaban en él sean migradas a otro nodo del
Failover Clustering
continua. Si uno de los servidores deja de funcionar, otro nodo del clúster puede asumir su carga
de trabajo con un tiempo de inactividad mínimo o nulo. Algunos clústeres de conmutación por
error utilizan solo servidores físicos, mientras que otros involucran máquinas virtuales, El
dos perspectivas: una continua, y otra alta, para aplicaciones y servicios. Los clústeres de
disponibilidad continua permiten a los usuarios finales seguir utilizando aplicaciones y servicios
sin experimentar tiempos de espera si un servidor falla. Con los clústeres de alta disponibilidad,
por otro lado, un usuario puede sufrir una breve interrupción en el servicio, pero el sistema se
recuperará automáticamente sin pérdida de datos y con un tiempo de inactividad mínimo, si bien
los clústeres de conmutación por error de disponibilidad continua están diseñados para una
Sistemas Distribuidos 18
disponibilidad del 100%, los clústeres de alta disponibilidad intentan tener una disponibilidad del
99.999% (también conocida como "cinco nueves"). Como compensación por su menor
disponibilidad, los clústeres de alta disponibilidad son menos costosos de implementar que los de
Switchover
computadora redundante o en espera tras la falla o la terminación anormal del servidor, sistema o
red previamente activo, o para realizar el mantenimiento del sistema, como la instalación de
error se utilizaría si la conmutación por error automática no está disponible, posiblemente porque
es decir, ofrecer un mejor uptime de servidores gracias a que si falla uno, el resto tomará
● Alta velocidad de despacho: se obtiene gracias al equilibrio de las cargas, haciendo que
los servidores que reciben las solicitudes de los clientes puedan despachar los datos de
una o varias peticiones se deriven a determinados hosts, mientras que otras irán
destinadas a otro grupo de servidores bajo el clúster. Esto hace que ningún servidor se
vea saturado.
horizontal, permitiendo agregar más servidores de forma masiva según se necesite debido
adicional de soportar mejor las cargas de sistema que se originan ante ataques DDOS
masivos, donde se suelen inundar los servidores con peticiones no deseadas. El uso de
múltiples servidores puede ayudar a resistir mejores diferentes tipos de ataque destinados
Desventajas De Un Clúster
Los clústeres, a pesar de estar tan idealizados en la industria, también tienen sus
● Altos costos: esta es una de las principales desventajas que tiene trabajar con un clúster
de servidores, y es que el setup y puesta a punto de tecnologías como este tipo cuesta
Sistemas Distribuidos 20
bastante más caro que trabajar con servidores dedicados tradicionales, o con servidores
en la nube. No solo es caro para montarlo, también se debe tener en cuenta que al
este tipo de soluciones. La alta complejidad a nivel técnico hace que montar un servidor
en clúster se logre hoy por hoy en muy pocos proveedores del mundo hispano.
puede tomar varias semanas, a varios meses, dependiendo de la complejidad del sistema,
espejo por ejemplo) usados en la arquitectura. Por lo que no suele ser una solución para
NASA, tarde o temprano la perfecta arquitectura del clúster puede fallar por errores de
red, software o hardware, siempre debes tenerlo en cuenta. Lo que si te pueden garantizar
Características de un Clúster
Conjunto de computadoras, que se comportan como si fuesen una sola. Son empleados
usualmente para mejorar el rendimiento y la disponibilidad, para que un clúster funcione como
Sistemas Distribuidos 21
tal, no basta solo con conectar entre sí los ordenadores, sino que es necesario proveer un sistema
de manejo del clúster, el cual se encargue de interactuar con el usuario y los procesos que corren
Componentes de un Clúster:
● Nodos
● Almacenamiento
● Sistemas operativos
● Conexiones de red
● Middleware
● Plicaciones
Beneficios de un Clúster
● Alto rendimiento
● Alta disponibilidad
● Balanceo de Carga
● Escalabilidad
Sistemas Distribuidos 22
(fija o removible), el material del medio (cinta, disco rígido, disco flexible) y la interfaz de
hardware (ATA, ATAPI, SCSI, USB, Firewire / IEEE 1394, Canal de Fibra) en forma conjunta
se puede acceder a él por medio de protocolos de sistema de archivos especiales (por ejemplo:
Sistema de Archivo de Red o Sistema de Archivo Común de Internet) o puede ser parte de un
magnético era muy costoso, era común colocar los archivos más utilizados en discos magnéticos
(acceso en línea), los archivos utilizados con menor frecuencia en medios ópticos menos
costosos (y más lentos) (almacenamiento casi en línea) y los archivos a los que se accedía muy
Sistemas Distribuidos 23
rara vez en cinta magnética (almacenamiento offline). Debido a que el precio del
NAS, en inglés 'Network Attached Storage', están diseñados para almacenar datos y
hacerlos accesibles a los equipos conectados a una red. Una forma sencilla de montar un sistema
NAS en una pequeña red local es utilizar los servicios de un servidor, ya sea con sistema
operativo Windows, Linux o Mac, y compartir archivos mediante programas que lo permiten,
Existen también distribuciones específicas para sistemas NAS, como FreeNAS, que
desde CD, USB o una de las particiones. Estos sistemas requieren un ordenador
permanentemente encendido, o al menos durante el horario en que se use alguno de los equipos
de la red.
Tipos De Almacenamiento
❖ Almacenamiento Departamental.
❖ Almacenamiento Corporativo.
alta velocidad, de tal forma que el conjunto es visto como un único ordenador, más potente que
de una red de área local de alta velocidad. Se usa frecuentemente para la programación en
computadoras. Cada clúster consiste de un conjunto de nodos de cómputo que son monitoreados
tecnología de red. La tendencia actual a tener una configuración específica de nodos para ciertas
tareas ha llevado a que haya una mayor diversidad, que es lo más frecuente en la computación en
red.
virtualizada para aprovechar una variedad de servicios en la nube. Para el usuario, pareciera que
Sistemas Distribuidos 25
está alquilando su propia computadora exclusiva. Sin embargo, en realidad es probable que la
esté compartiendo con otros clientes. Lo mismo se aplica al almacenamiento virtual. Estos
Tipo Grid
participantes.
elemento implicado en el grid, mediante un software distribuido en cada nodo, se puede definir
geográficamente para resolver problemas de gran escala. Los recursos compartidos pueden ser
todos aquellos que puedan aportar los elementos necesarios (procesador, memoria,
almacenamiento).
transparente entre diferentes dispositivos repartidos por todo el mundo. La infraestructura grid
integra un motor de búsqueda que no solo encontrará los datos que el usuario necesite, sino
también las herramientas para analizarlos y la potencia de cálculo necesaria para utilizarlas. Al
Sistemas Distribuidos 26
final del proceso, el grid distribuirá las tareas de computación a cualquier lugar de la red en la
El objetivo final del grid es poder utilizar recursos remotos que nos permitan realizar las
tareas que no podríamos abordar en nuestra máquina o centro de trabajo. La idea va más allá del
simple intercambio de ficheros, se trata del acceso directo a software, ordenadores y datos
remotos, así como el acceso y control de otros dispositivos (sensores, telescopios, etc.). Los
indispensable para poder exportar el grid a escala mundial y esto es algo que ahora por fin es
viable, gracias a la proliferación de las redes de banda ancha (xDSL, HFC, LMDS,
una gran cantidad de recursos, reduciendo las colas de espera de los distintos usuarios y ya que
todo se está ejecutando en ordenadores, podemos calcular cuál sería la asignación óptima de
recursos. Puesto que los recursos son compartidos y pertenecen a distintas personas, la seguridad
(procedimiento para averiguar si una determinada operación es consistente con las relaciones que
Arquitectura De Grid
cada una de ellas una determinada función. Las capas más altas son las más cercanas al usuario y
las inferiores las más próximas a las redes de computación, distinguiendo entre:
● Capa de aplicación: Formada por todas las aplicaciones de los usuarios, portales y
que proporciona el llamado serviceware, que recoge las funciones generales de gestión
tales como la contabilidad del uso del grid que hace cada usuario.
● Capa de recursos: Constituida por los recursos que son parte del grid: ordenadores,
● Capa de red: encargada de asegurar la conexión entre los recursos que forman el grid.
Para poder hacer todo lo anterior, las aplicaciones que se desarrollen para ser ejecutadas
en un ordenador concreto, tendrán que adaptarse para poder invocar los servicios adecuados y
utilizar los protocolos correctos. Sin embargo, una vez adaptadas al grid, miles de usuarios
podrán usar las mismas aplicaciones, utilizando las capas de middleware para adaptarse a los
Middleware
programas actúan como agentes(agents) y otros como intermediarios (brokers), negociando entre
sí de forma automática. Los agentes individuales presentan los metadatos referidos a los
usuarios, datos y recursos. Por otro lado, los intermediarios se encargan de las negociaciones
entre máquinas para la autenticación y autorización de los usuarios, de definir los acuerdos de
Nivel De La Infraestructura:
En este nivel se encuentran los recursos computacionales como son: las computadoras,
los clústeres, las supercomputadoras, medios de almacenamiento, la red, etc. En otras palabras,
en este nivel se encuentra la fabrica y suministra los componentes que serán compartidos.
SSL, etc. También los nuevos protocolos que están en fase de estudio y serán
control sobre el mismo, los protocolos tomados son: las características técnicas, la carga
actual, el precio, etc. También se encuentran los protocolos para controlar el recurso: el
● Nivel de Servicios: Aquí se engloba todos los servicios que van a permitir gestionar un
datos distribuidos.
Sistemas Distribuidos 30
las aplicaciones el acceso al Grid a través de sus distintos niveles o directamente a ellas,
en incluso a la infraestructura.
ubica entre los recursos finales y la aplicación de usuario. Esta herramienta ha surgido
Campos De Aplicación
❖ Supercomputación
Distribuida
❖ Simulaciones.
❖ Herramientas de cálculo
numérico.
❖ Procesos de análisis de
datos.
❖ Servicios Puntuales
Sistemas Distribuidos 31
❖ Este tipo de aplicaciones son aquellas que permiten acceder a hardware específico para la
❖ Tele inmersión.
Apache Hadoop
¿Qué es?
depender del hardware para ofrecer alta disponibilidad, la biblioteca está diseñada para detectar y
manejar fallas en la capa de aplicación, por lo que brinda un servicio de alta disponibilidad en la
parte superior de un grupo de computadoras, las cuales pueden ser propensas a fallas. Adicional
brinda una solución rentable para almacenar y procesar cantidades masivas de datos
Hadoop sea ideal para crear data lakes y para dar soporte a iniciativas de analítica de big data.
Historia
A medida que el World Wide Web creció a finales 1900 y principios 2000 los motores de
rastreadores web como proyectos de investigación universitarios, entre ellos encontramos Yahoo,
AltaVista, etc. En el 2002 uno de los proyectos desarrollados como motor de búsqueda fue
Nutch, creado por Doug Cutting y Mike Cafarella; el objetivo de ellos era devolver resultados de
búsqueda web más rápido distribuyendo los datos y cálculos entre diferentes computadoras, para
realizar las tareas de manera simultánea. Durante este tiempo ya se estaba desarrollando el
navegador de Google bajo el mismo concepto. en el año 2006 Doug Cutting se unió con Yahoo
para continuar con el desarrollo del proyecto Nutch, para lograr procesar y almacenar datos
partes:
abierto, en este mismo año se empezaron a incorporar con Cloudera y en el 2009 Doug Cutting
deja a Yahoo por Cloudera, ya en 2011 junto con MAPR Technologies se comienza a la
en 2013 con la empresa Greenplum. Actualmente Hadoop ofrece la versión más reciente 3.3
Importancia de Hadoop
variedades de datos.
● Poder de cómputo: El modelo de cómputo de Hadoop procesa Big Data a gran velocidad,
contra fallos de hardware. Si falla un nodos los procesos y tareas se redirigen a otro para
semiestructurados o no estructurados.
innovar, descubrir nuevas oportunidad y tener una ventaja competitiva, al poder ejecutar
● Data Lake (Lago de Datos): Permite almacenar datos en su formato original exacto y son
de federación para crear estructuras de datos lógicas y de esta manera proteger y gobernar
los datos.
● Internet de las cosas y Hadoop: Hadoop es utilizado a menudo como almacén de datos de
● Use Sqoop para importar datos estructurados de una base de datos relacional a HDFS,
Hive y HBase.
HDFS conforme van apareciendo. Esto es útil para realizar tareas como descargar correo
● La programación de MapReduce no es buena opción para todos los problemas: este tipo
que MapReduce necesita usar bastante los archivos, ya que de esta manera los nodos no
se comunican entre sí, los algoritmos iterativos necesitan que se completen múltiples
programadores que tengan habilidades suficientes en Java y que su vez sean productivo
tecnología relacionas (SQL), debido a que es mucho más fácil encontrar programadores
● Seguridad de datos: Este desafío se encuentra en los datos fragmentados, sin embargo el
protocolo de autenticación Kerberos ha logrado hacer que los entornos de Hadoop sean
más seguros.
● Gestión y gobierno de datos completo: Este reto se presenta debido a que Hadoop cuenta
con pocas herramientas de fácil uso para la correcta administración de datos, limpieza de
datos y metadatos.
Sistemas Distribuidos 36
Referencias
https://www.ibm.com/co-es/analytics/hadoop
2. SAS, Hadoop
https://www.sas.com/es_co/insights/big-data/hadoop.html
http://hadoop.apache.org/
https://expertoenbigdata.com/que-es-hadoop/
https://www.universidadviu.com/sistemas-distribuidos-caracteristicas-clasificacion/
https://openwebinars.net/blog/que-es-un-sistema-distribuido/
7. Parraga,J. A. CLUSTERS.
https://sites.google.com/site/sdistribuidoscluster/proceso/actividad-3
https://infotecs.mx/blog/failover.html
https://blog.infranetworking.com/servidor-en-cluster/
https://sistemasdistribuidos.foroactivo.com/t84-cluster-y-grid#549
Sistemas Distribuidos 37
https://www.ramonmillan.com/tutoriales/gridcomputing.php
https://sites.google.com/a/espe.edu.ec/desarrollo-de-software-de-altas-prestaciones/useful
-links
https://www.syloper.com/blog/recursos/para-que-sirve-la-mineria-de-datos/
http://www1.frm.utn.edu.ar/soperativos/Archivos/Sistemas_Distribuidos.pdf
http://www.sc.ehu.es/acwlaroa/SDI/Apuntes/Cap1.pdf
https://medium.com/@adr.rod87/qu%C3%A9-es-un-sistema-distribuido-442870a40bc4