Resultados 1 al 6 de 6

Tema: Sistemas Distribuidos

  1. #1 Sistemas Distribuidos 
    Iniciado
    Fecha de ingreso
    Sep 2012
    Mensajes
    9
    Descargas
    0
    Uploads
    0
    Otra cuestión que tengo... alguien conoce alguna tecnología para trabajar con sistemas distribuidos?

    Un ejemplo muy sencillo de lo que quiero hacer sería tener por ejemplo 3 PC conectados en una LAN, pongamos a través de un switch. Uno de ellos será el servidor, y los otros 2 serán clientes. El servidor manda a ejecutar una tarea que será por ejemplo, contar los números primos del 1 al 100... El sistema deberá repartir la carga de trabajo entre todos los clientes, de forma equitativa, de forma que un cliente calcule los primos del 1 al 50 y el otro del 51 al 100.

    ¿Alguien sabe si existe algún software o tecnología que me permita llevar a cabo este tipo de sistema?

    Gracias.
    Citar  
     

  2. #2  
    Iniciado
    Fecha de ingreso
    Sep 2012
    Mensajes
    9
    Descargas
    0
    Uploads
    0
    Y otra cosa, en el caso de que los clientes necesiten acceder a una base de datos, ¿cómo controlo los accesos simultáneos? Es que en Access cuando hay alguien ya conectado a la base de datos, otro no puede acceder hasta que el primero cierre la conexión.
    Citar  
     

  3. #3  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.596
    Descargas
    58
    Uploads
    0
    Esto te encantará: MapReduce

    Básicamente la idea es el divide y vencerás, donde la función Map() juega el rol de "dividir el problema", y la función reduce() juega el rol de "resolver problema chiquitito".

    Si observas las referencias en la wikipedia, mira las tecnologías que implementan el "MapReduce". En concreto y personalmente he utilizado hadoop, de Apache, con magníficos resultados.

    Hadoop además permite 3 modos de funcionamiento, basados en el tipo de clúster que tengas (el clúster es el sistema distribuido formado por cada uno de los nodos maestros y esclavos):

    1º Standalone: El clúster está formado por un sólo PC, la tarea se divide en un único hilo. También conocido como modo "monoprogramado".

    2º Pseudo Distributed: El clúster está formado por un sólo PC, pero la tarea se divide en varios hilos. Equivale a si el algoritmo de resolución fuera diseñado en modo "multiprogramado" o "multihilo" (multithread). En donde cada hilo simula un nodo esclavo. Un hilo juega el rol de maestro y el resto como nodos esclavos. Tiene sentido, o es eficiente si el procesador tiene varios núcleos (procesadores multicore, como por ejemplo los Core-i de Intel).

    3º Fully Distributed: Es el modo real. El clúster está formado por varios PC, cada uno desempeña el rol que le corresponde. Un nodo es el maestro y el resto son esclavos.

    Otro detalle importante de hadoop es que para no saturar el ancho de banda limitado por la red, es especificar el número de réplicas del sistema de ficheros (HDFS). Cada nodo tendrá una copia de ese sistema de ficheros distribuido de forma que cada nodo trabaja sobre él, y cuando no haya "overbooking" en la red, se procede con la actualización en cada copia.

    Aunque lo más bueno de hadoop es que es software libre.

    Un saludo.
    Última edición por hystd; 22-09-2012 a las 12:39
    El optimista tiene ideas, el pesimista... excusas

    Citar  
     

  4. #4  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.596
    Descargas
    58
    Uploads
    0
    En cuanto a lo de acceder a una base de datos de forma simultánea, pues simplemente utiliza un sistema gestor de base de datos (SGDB) que implemente concurrencia.

    MS Access no implementa ningún mecanismo de concurrencia, por lo que si puedes migrar a otra base de datos, mejor. MySQL es muy potente y versátil si sabes elegir bien el tipo de tablas con el que trabajas... por ejemplo si se va a realizar muchas operaciones de inserción y actualización (INSERT's y UPDATE's), la elección debería ser InnoDB, o si lo que se van a hacer son más consultas (SELECT's), pues MyISAM, etc... pero si vas a utilizar grandes cantidades de datos, lo mejor es Oracle.

    Si no es posible migrar, la única alternativa es crearte un mecanismo de control de transacciones en tu algoritmo, basado por ejemplo en semáforos o señales. De forma que las peticiones son encoladas (FIFO), y atendidas lo más pronto posible.

    Un saludo.
    Última edición por hystd; 22-09-2012 a las 12:47
    El optimista tiene ideas, el pesimista... excusas

    Citar  
     

  5. #5  
    Iniciado
    Fecha de ingreso
    Sep 2012
    Mensajes
    9
    Descargas
    0
    Uploads
    0
    woooouu hystd muchas gracias por toda la información. ¿De dónde has aprendido todo esto?. Yo quisiera montarme un cluster, pero no logro entender bien como se hace. He visto si mal no lo he entendido, que haddop solo funciona para linux y yo estoy trabajando con windows, aunque dicen por ahi que existe una forma que es con cygwin. Yo no entiendo bien como se configura todo el sistema distribuido. Si pudieras orientarme mas o decirme alguna guia o tutorial te lo agradeceria un monton o si existe alguno otro que sea un poco más para principiantes mejor.

    Y lo de la base de datos no hay restricciones y se puede migrar sin problemas. Probaré mysql que me han dicho que es mas sencillo que oracle.

    Gracias amigo.
    Citar  
     

  6. #6  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.596
    Descargas
    58
    Uploads
    0
    De nada, para eso estamos!. Por cierto es *hadoop, no haddop .

    Efectivamente Hadoop está preparado para funcionar en linux, pero si necesitas montarlo en windows, sólo te bastará emular un terminal, por ejemplo, con cygwin como bien dices.

    En cualquier caso, deberás instalar previamente:

    1º JDK 1.5 o superior, y asignar las variables de entorno JAVA_HOME y PATH, para que apunten al directorio raiz de la JDK instalada en ese nodo. Esto lo debes hacer en cada nodo de tu clúster, sea maestro o esclavo.

    2º Un cliente-servidor SSH, pues hadoop utiliza este protocolo para su funcionamiento... deberás configurarlo para que la conexión SSH se haga mediante claves públicas/privadas, sin requerir por tanto credenciales de acceso. Esto es fundamental, pues si no, hadoop no logrará montar el HDFS correctamente.


    Suponiendo que ya tengas configurado todo, (y si no es así, dímelo), lo siguiente es instalar y configurar Hadoop en cada nodo.

    Básicamente dispones de 3 ficheros XML:

    core-site.xml: En este fichero especificas la dirección del NameNode, es decir, la dirección del nodo maestro. Para ello debes asignarla a la propiedad "fs.default.name":

    hdfs-site.xml: En este fichero indicas las réplicas que habrá del HDFS (sistema de ficheros distribuido de Hadoop), para cada nodo. Lo normal es asignar a lo sumo 1, 2 ó 3 réplicas (aunque puedes asignar más si quieres), y debes especificarlo mediante la propiedad "dfs.replication".

    mapred-site.xml: En este fichero indicas qué nodo será el JobTracker o maestro. Para ello debes indicar la dirección del nodo maestro en la propiedad "mapred.job.tracker".

    Configurando estos 3 ficheros, con las propiedades que te acabo de indicar, tu clúster debería quedar listo, pues estas propiedades es lo mínimo que se despacha para configurar un clúster con Hadoop. Nota que el valor que tome cada propiedad depende de si el nodo es maestro o esclavo, y del modo en que vayas a configurar Hadoop (Standalone, Pseudo Distributed o Fully Distributed).

    Lo último es iniciar tu cluster mediante el comando:

    Código:
     $> sh start-all.sh
    Si vas a las direcciones:

    http://localhost:50030
    http://localhost:50070

    Deberás ver la configuración del NameNode y el JobTracker.

    En este punto, ya tienes tu clúster en funcionamiento, y verás el número de nodos esclavos disponibles.

    Si necesitas ayuda en algo más concreto, dilo.

    Un saludo.
    El optimista tiene ideas, el pesimista... excusas

    Citar  
     

Temas similares

  1. Respuestas: 0
    Último mensaje: 05-03-2009, 08:59
  2. Gestion o Sistemas ?¿
    Por LooKoo en el foro OFF-TOPIC
    Respuestas: 12
    Último mensaje: 03-06-2007, 23:36
  3. Información de sistemas.
    Por jaimeucm en el foro LINUX - MAC - OTROS
    Respuestas: 1
    Último mensaje: 16-09-2006, 10:16
  4. Informatica de sistemas....
    Por MaRaYo en el foro OFF-TOPIC
    Respuestas: 4
    Último mensaje: 26-07-2003, 20:14
  5. sistemas de archivo
    Por ferichillo en el foro LINUX - MAC - OTROS
    Respuestas: 7
    Último mensaje: 30-04-2003, 14:02

Etiquetas para este tema

Marcadores

Marcadores

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •