De acuerdo con la Hadoop : Definitive Guide
estrategia por defecto de Hadoop es colocar la primera réplica en el mismo nodo que el cliente (por clientes que ejecutan fuera del clúster, un nodo se elige al azar, aunque el sistema intenta no seleccionar los nodos que están demasiado llenos o demasiado ocupados). La segunda réplica se coloca en un rack diferente del primero (fuera de rack), elegido al azar. La tercera réplica se coloca en el el mismo bastidor que el segundo, pero en un nodo diferente elegido al azar. Las réplicas adicionales se colocan en nodos aleatorios en el clúster, aunque el sistema intenta evitar colocar demasiadas réplicas en el mismo bastidor.
Esta lógica tiene sentido ya que disminuye la vibración de red entre los diferentes nodos. Pero, el libro se publicó en 2009 y hubo muchos cambios en el marco de Hadoop.
Creo que depende de si el cliente es igual que un nodo de Hadoop o no. Si el cliente es un nodo Hadoop, todas las divisiones estarán en el mismo nodo. Esto no proporciona un rendimiento de lectura/escritura mejor a pesar de tener múltiples nodos en el clúster. Si el cliente no es el mismo que el nodo Hadoop, entonces el nodo se elige al azar para cada división, por lo que las divisiones se reparten entre los nodos de un clúster. Ahora, esto proporciona un mejor rendimiento de lectura/escritura.
Una de las ventajas de escribir en nodos múltiples es que incluso si uno de los nodos se cae, un par de divisiones pueden estar caídas, pero al menos algunos datos pueden recuperarse de alguna manera de las divisiones restantes.
Creo que su última declaración no es correcta. Si uno de los nodos está inactivo y tiene bloques de datos de entrada, no hay forma de que NameNode recupere el archivo o incluso distribuya los bloques restantes (suponiendo que el factor de replicación sea 1) –
#borin storm, tiene toda la razón. –
Bloque lugar la elección de la estrategia está documentado de manera diferente en los documentos de Hadoop, compruebe https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html#Replica_Placement:_The_First_Baby_Steps. –