martes, 25 de agosto de 2015

4-Lectura y escritura en HDFS

  • Escritura:

    • Cuando un cliente quiere escribir, se comunica con el NameNode y le indica el tamaño del que deben ser los bloques y el factor de replicación. (Por defecto, 64 Mb y 3 veces respectivamente)
    • El NameNode comprueba que el cliente tenga suficientes permisos para llevar a cabo la operación y que el fichero no existe. Si todo es correcto, busca en su jerarquía la mejor ubicación (según carga, distancia etc) para el bloque de datos a escribir e indica al cliente los dataNodes donde debe ser escrito el bloque.
    • El cliente trocea su información en bloques y  se conecta con los DataNodes implicados en la transacción, les indica que deben crear y lo que quiere escribir.
    • El NameNode también indica al cliente en qué DataNodes debe replicarse el bloque de información.
    • Los datanodes, una vez saben donde deben copiarse los bloques, de forma autónoma se encargan de replicarlos excluyendo de la operación al NameNode y así se evita cierta congestión en el sistema, ya que solo hay un NameNode por cluster. Cada DataNode pasa al siguiente la información a replicar hasta que se llega al factor de replicación correcto. (pipeline de replicación)
    • Cuando acaba la replicación, los DataNodes contactan con el NameNode para indicarles si la operación ha tenido éxito y este actualiza sus metadatos.


Si durante la escritura alguno de los DataNodes falla, se replica a un nuevo DataNode.

  • Lectura:

    • El cliente pide al NameNode un bloque de datos.
    • El NameNode intenta seleccionar la réplica de datos más cercana al cliente para producir el menor tráfico posible en la red y le devuelve una lista con los DataNodes que contienen los bloques.
    • El cliente pide los datos a los Data Nodes.
    • Estos le envían la información.
    • El cliente lee.



Siguiente entrada: MapReduce


Reacciones:

2 comentarios:

  1. Llegué a tu página by chance, te sigo parece interesante primo.

    ResponderEliminar